diff --git a/packages/web-runtime/src/container/api.ts b/packages/web-runtime/src/container/api.ts index 0392a41b7a4..1f8ef3fb514 100644 --- a/packages/web-runtime/src/container/api.ts +++ b/packages/web-runtime/src/container/api.ts @@ -1,10 +1,10 @@ import VueRouter, { RouteConfig } from 'vue-router' import clone from 'lodash-es/clone' import { - ClassicApplicationScript, RuntimeApi, ApplicationNavigationItem, - ApplicationQuickActions + ApplicationQuickActions, + ApplicationTranslations } from './types' import { ApiError } from './error' import { get, isEqual, isObject, isArray } from 'lodash-es' @@ -61,7 +61,7 @@ const announceRoutes = (applicationId: string, router: VueRouter, routes: RouteC const announceNavigationItems = ( applicationId: string, store: Store, - navigationItems: ClassicApplicationScript['navItems'] + navigationItems: ApplicationNavigationItem[] ): void => { if (!isObject(navigationItems)) { throw new ApiError("navigationItems can't be blank") @@ -98,8 +98,9 @@ const announceExtension = ( const announceTranslations = ( supportedLanguages: { [key: string]: string }, translations: unknown, - appTranslations: ClassicApplicationScript['translations'] + appTranslations: ApplicationTranslations ): void => { + console.log(appTranslations) if (!isObject(translations)) { throw new ApiError("translations can't be blank") } @@ -119,7 +120,7 @@ const announceTranslations = ( */ const announceQuickActions = ( store: Store, - quickActions: ClassicApplicationScript['quickActions'] + quickActions: ApplicationQuickActions ): void => { if (!isObject(quickActions)) { throw new ApiError("quickActions can't be blank") @@ -245,7 +246,7 @@ export const buildRuntimeApi = ({ announceRoutes: (routes: RouteConfig[]): void => announceRoutes(applicationId, router, routes), announceNavigationItems: (navigationItems: ApplicationNavigationItem[]): void => announceNavigationItems(applicationId, store, navigationItems), - announceTranslations: (appTranslations: unknown): void => + announceTranslations: (appTranslations: ApplicationTranslations): void => announceTranslations(supportedLanguages, translations, appTranslations), announceQuickActions: (quickActions: ApplicationQuickActions): void => announceQuickActions(store, quickActions), diff --git a/packages/web-runtime/src/container/types.ts b/packages/web-runtime/src/container/types.ts index a7c09dd48e1..8f3bc7cccdb 100644 --- a/packages/web-runtime/src/container/types.ts +++ b/packages/web-runtime/src/container/types.ts @@ -52,6 +52,15 @@ export interface ApplicationQuickActions { [key: string]: ApplicationQuickAction } +/** + * ApplicationTranslations is a map of language keys to translations + */ +export interface ApplicationTranslations { + [lang: string]: { + key: string + } +} + /** ClassicApplicationScript reflects classic application script structure */ export interface ClassicApplicationScript { appInfo?: ApplicationInformation @@ -59,7 +68,7 @@ export interface ClassicApplicationScript { routes?: RouteConfig[] navItems?: ApplicationNavigationItem[] quickActions?: ApplicationQuickActions - translations?: unknown + translations?: ApplicationTranslations ready?: () => void mounted?: () => void } @@ -68,7 +77,7 @@ export interface ClassicApplicationScript { export interface RuntimeApi { announceRoutes: (routes: RouteConfig[]) => void announceNavigationItems: (navigationItems: ApplicationNavigationItem[]) => void - announceTranslations: (appTranslations: unknown) => void + announceTranslations: (appTranslations: ApplicationTranslations) => void announceQuickActions: (quickActions: ApplicationQuickActions) => void announceStore: (applicationStore: Store) => void announceExtension: (extension: { [key: string]: unknown }) => void