From 4705028ddd1b0b2ad3a971c2ee8579ebe58e001a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 5 Jan 2023 13:53:12 +0100 Subject: [PATCH] remove ManifestElementTypes use ManifestElement --- .../workspace-view-data-type-edit.element.ts | 3 +-- .../extension-slot/extension-slot.element.ts | 6 +++--- .../create-extension-element.function.ts | 4 ++-- .../is-manifest-element-name-type.function.ts | 4 ++-- .../is-manifest-elementable-type.function.ts | 4 ++-- .../is-manifest-js-type.function.ts | 4 ++-- .../is-manifest-loader-type.function.ts | 4 ++-- .../extensions-api/load-extension.function.ts | 8 ++++---- .../src/core/extensions-registry/models.ts | 19 +------------------ 9 files changed, 19 insertions(+), 37 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/workspace-view-data-type-edit.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/workspace-view-data-type-edit.element.ts index d0485a8d37..bcc2f02ab2 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/workspace-view-data-type-edit.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/settings/data-types/workspace/views/edit/workspace-view-data-type-edit.element.ts @@ -3,8 +3,7 @@ import { css, html, nothing } from 'lit'; import { customElement, state } from 'lit/decorators.js'; import { UmbModalService } from '../../../../../../core/modal'; import { UmbWorkspaceDataTypeContext } from '../../workspace-data-type.context'; -import { UmbDataTypeStoreItemType } from '../../../data-type.store'; -import type { DataTypeDetails, ManifestPropertyEditorUI } from '@umbraco-cms/models'; +import type { DataTypeDetails } from '@umbraco-cms/models'; import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; import '../../../../../shared/property-editors/shared/property-editor-config/property-editor-config.element'; diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.element.ts index 7b1e9dc401..c17dc74ded 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/shared/components/extension-slot/extension-slot.element.ts @@ -2,7 +2,7 @@ import { nothing } from 'lit'; import { customElement, property, state } from 'lit/decorators.js'; import { map } from 'rxjs'; import { repeat } from 'lit/directives/repeat.js'; -import { ManifestBase, ManifestTypes, umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; +import { umbExtensionsRegistry } from '@umbraco-cms/extensions-registry'; import { createExtensionElement } from '@umbraco-cms/extensions-api'; import { isManifestElementableType } from 'src/core/extensions-api/is-manifest-elementable-type.function'; import { UmbLitElement } from '@umbraco-cms/element'; @@ -40,7 +40,7 @@ export class UmbExtensionSlotElement extends UmbLitElement { umbExtensionsRegistry ?.extensionsOfType(this.type) .pipe(map((extensions) => extensions.filter(this.filter))), - async (extensions: ManifestTypes[]) => { + async (extensions) => { const oldLength = this._extensions.length; this._extensions = this._extensions.filter(current => extensions.find(incoming => incoming.alias === current.alias)); @@ -48,7 +48,7 @@ export class UmbExtensionSlotElement extends UmbLitElement { this.requestUpdate('_extensions'); } - extensions.forEach(async (extension: ManifestTypes) => { + extensions.forEach(async (extension) => { const hasExt = this._extensions.find(x => x.alias === extension.alias); if(!hasExt) { diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-api/create-extension-element.function.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-api/create-extension-element.function.ts index ba7d6c4c49..9bdf96dc5c 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-api/create-extension-element.function.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-api/create-extension-element.function.ts @@ -1,9 +1,9 @@ -import type { ManifestElementType } from '../models'; +import type { ManifestElement } from '../models'; import { hasDefaultExport } from './has-default-export.function'; import { isManifestElementNameType } from './is-manifest-element-name-type.function'; import { loadExtension } from './load-extension.function'; -export async function createExtensionElement(manifest: ManifestElementType): Promise { +export async function createExtensionElement(manifest: ManifestElement): Promise { //TODO: Write tests for these extension options: const js = await loadExtension(manifest); diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-element-name-type.function.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-element-name-type.function.ts index ccc3ae245c..a5176b90c8 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-element-name-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-element-name-type.function.ts @@ -1,7 +1,7 @@ -import type { ManifestElementType, ManifestElementWithElementName } from '../models'; +import type { ManifestElement, ManifestElementWithElementName } from '../models'; export function isManifestElementNameType(manifest: unknown): manifest is ManifestElementWithElementName { return ( - typeof manifest === 'object' && manifest !== null && (manifest as ManifestElementType).elementName !== undefined + typeof manifest === 'object' && manifest !== null && (manifest as ManifestElement).elementName !== undefined ); } diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-elementable-type.function.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-elementable-type.function.ts index ada5464619..84454a5e57 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-elementable-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-elementable-type.function.ts @@ -1,8 +1,8 @@ -import type { ManifestElementType, ManifestTypes } from "../extensions-registry/models"; +import type { ManifestElement, ManifestBase } from "../extensions-registry/models"; import { isManifestElementNameType } from "./is-manifest-element-name-type.function"; import { isManifestJSType } from "./is-manifest-js-type.function"; import { isManifestLoaderType } from "./is-manifest-loader-type.function"; -export function isManifestElementableType(manifest: ManifestTypes): manifest is ManifestElementType { +export function isManifestElementableType(manifest: ManifestBase): manifest is ManifestElement { return isManifestElementNameType(manifest) || isManifestLoaderType(manifest) || isManifestJSType(manifest); } diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-js-type.function.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-js-type.function.ts index ee56fff0b8..f49e604547 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-js-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-js-type.function.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from "../extensions-registry/models"; +import type { ManifestBase } from "../extensions-registry/models"; import { ManifestJSType } from "./load-extension.function"; -export function isManifestJSType(manifest: ManifestTypes): manifest is ManifestJSType { +export function isManifestJSType(manifest: ManifestBase): manifest is ManifestJSType { return (manifest as ManifestJSType).js !== undefined; } \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-loader-type.function.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-loader-type.function.ts index 27ad690c4d..8303cb7e55 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-loader-type.function.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-api/is-manifest-loader-type.function.ts @@ -1,6 +1,6 @@ -import type { ManifestTypes } from "../extensions-registry/models"; +import type { ManifestBase } from "../extensions-registry/models"; import { ManifestLoaderType } from "./load-extension.function"; -export function isManifestLoaderType(manifest: ManifestTypes): manifest is ManifestLoaderType { +export function isManifestLoaderType(manifest: ManifestBase): manifest is ManifestLoaderType { return typeof (manifest as ManifestLoaderType).loader === 'function'; } diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-api/load-extension.function.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-api/load-extension.function.ts index c26d441c12..f1ebdbbe88 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-api/load-extension.function.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-api/load-extension.function.ts @@ -1,11 +1,11 @@ -import type { ManifestTypes } from '../models'; +import type { ManifestElement } from '../models'; import { isManifestJSType } from './is-manifest-js-type.function'; import { isManifestLoaderType } from './is-manifest-loader-type.function'; -export type ManifestLoaderType = ManifestTypes & { loader: () => Promise }; -export type ManifestJSType = ManifestTypes & { js: string }; +export type ManifestLoaderType = ManifestElement & { loader: () => Promise }; +export type ManifestJSType = ManifestElement & { js: string }; -export async function loadExtension(manifest: ManifestTypes): Promise { +export async function loadExtension(manifest: ManifestElement): Promise { try { if (isManifestLoaderType(manifest)) { return manifest.loader(); diff --git a/src/Umbraco.Web.UI.Client/src/core/extensions-registry/models.ts b/src/Umbraco.Web.UI.Client/src/core/extensions-registry/models.ts index fa6723f387..7be0281f1a 100644 --- a/src/Umbraco.Web.UI.Client/src/core/extensions-registry/models.ts +++ b/src/Umbraco.Web.UI.Client/src/core/extensions-registry/models.ts @@ -37,6 +37,7 @@ export * from './collection-bulk-action.models'; export * from './collection-view.models'; export type ManifestTypes = + | ManifestCustom | ManifestHeaderApp | ManifestSection | ManifestSectionView @@ -55,7 +56,6 @@ export type ManifestTypes = | ManifestPackageView | ManifestExternalLoginProvider | ManifestEntrypoint - | ManifestCustom | ManifestCollectionBulkAction | ManifestCollectionView; @@ -65,23 +65,6 @@ export type ManifestTypeMap = { [Manifest in ManifestTypes as Manifest['type']]: Manifest; }; -export type ManifestElementType = - | ManifestSection - | ManifestSectionView - | ManifestTree - | ManifestTreeItemAction - | ManifestWorkspace - | ManifestWorkspaceView - | ManifestPropertyAction - | ManifestPropertyEditorUI - | ManifestDashboard - | ManifestUserDashboard - | ManifestWorkspaceAction - | ManifestPackageView - | ManifestExternalLoginProvider - | ManifestCollectionBulkAction - | ManifestCollectionView; - export interface ManifestBase {