From b4af716fa649558cd28645c15b6ea2c535230614 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Wed, 2 Aug 2023 10:59:05 +0200 Subject: [PATCH] adjusting types for registry --- .../registry/translation.registry.ts | 16 ++++++++++------ .../core/extension-registry/models/index.ts | 1 + .../models/translations.model.ts | 7 ++++--- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/localization-api/registry/translation.registry.ts b/src/Umbraco.Web.UI.Client/src/libs/localization-api/registry/translation.registry.ts index bb9d8550e1..906e00734a 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/localization-api/registry/translation.registry.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/localization-api/registry/translation.registry.ts @@ -1,9 +1,13 @@ import { Translation, registerTranslation } from '../manager.js'; import { hasDefaultExport, loadExtension } from '@umbraco-cms/backoffice/extension-api'; -import { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extension-registry'; +import { + UmbBackofficeExtensionRegistry, + UmbTranslationEntry, + UmbTranslationsDictionary, +} from '@umbraco-cms/backoffice/extension-registry'; import { Subject, combineLatest } from '@umbraco-cms/backoffice/external/rxjs'; -export type UmbTranslationDictionary = Record; +export type UmbTranslationsSquashedDictionary = Record; export class UmbTranslationRegistry { #registry; @@ -18,7 +22,7 @@ export class UmbTranslationRegistry { extensions .filter((x) => x.meta.culture.toLowerCase() === userCulture) .map(async (extension) => { - const innerDictionary: UmbTranslationDictionary = {}; + const innerDictionary: UmbTranslationsSquashedDictionary = {}; // If extension contains a dictionary, add it to the inner dictionary. if (extension.meta.translations) { @@ -30,7 +34,7 @@ export class UmbTranslationRegistry { // If extension contains a js file, load it and add the default dictionary to the inner dictionary. const loadedExtension = await loadExtension(extension); - if (loadedExtension && hasDefaultExport(loadedExtension)) { + if (loadedExtension && hasDefaultExport(loadedExtension)) { for (const [dictionaryName, dictionary] of Object.entries(loadedExtension.default)) { this.#addOrUpdateDictionary(innerDictionary, dictionaryName, dictionary); } @@ -58,9 +62,9 @@ export class UmbTranslationRegistry { } #addOrUpdateDictionary( - innerDictionary: UmbTranslationDictionary, + innerDictionary: UmbTranslationsSquashedDictionary, dictionaryName: string, - dictionary: UmbTranslationDictionary + dictionary: UmbTranslationsDictionary['value'] ) { for (const [key, value] of Object.entries(dictionary)) { innerDictionary[`${dictionaryName}_${key}`] = value; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts index fd0f09fc1f..78b6e6d310 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/index.ts @@ -52,6 +52,7 @@ export * from './section.model.js'; export * from './store.model.js'; export * from './theme.model.js'; export * from './tinymce-plugin.model.js'; +export * from './translations.model.js'; export * from './tree-item.model.js'; export * from './tree.model.js'; export * from './user-profile-app.model.js'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/translations.model.ts b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/translations.model.ts index 929421d740..974c6ff2e2 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/translations.model.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/models/translations.model.ts @@ -1,8 +1,9 @@ -import type { ManifestWithLoaderDefaultExport } from '@umbraco-cms/backoffice/extension-api'; +import type { ManifestWithLoaderIncludingDefaultExport } from '@umbraco-cms/backoffice/extension-api'; -export type UmbTranslationsDictionary = Record>; +export type UmbTranslationEntry = string; +export type UmbTranslationsDictionary = Record>; -export interface ManifestTranslations extends ManifestWithLoaderDefaultExport { +export interface ManifestTranslations extends ManifestWithLoaderIncludingDefaultExport { type: 'translations'; meta: MetaTranslations; }