update types

This commit is contained in:
Mads Rasmussen
2023-05-16 13:14:27 +02:00
parent 01553af750
commit 0ded8b1862
6 changed files with 21 additions and 15 deletions

View File

@@ -1,4 +1,4 @@
import type { ManifestEntrypoint } from './types';
import type { ManifestEntryPoint } from './types';
import { hasInitExport } from './has-init-export.function';
import { loadExtension } from './load-extension.function';
import { UmbExtensionRegistry } from './registry/extension.registry';
@@ -9,7 +9,7 @@ export class UmbEntryPointExtensionInitializer {
#extensionRegistry;
#entryPointMap = new Map();
constructor(host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry) {
constructor(host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry<ManifestEntryPoint>) {
this.#host = host;
this.#extensionRegistry = extensionRegistry;
extensionRegistry.extensionsOfType('entryPoint').subscribe((entryPoints) => {
@@ -21,7 +21,7 @@ export class UmbEntryPointExtensionInitializer {
});
}
async instantiateEntryPoint(manifest: ManifestEntrypoint) {
async instantiateEntryPoint(manifest: ManifestEntryPoint) {
const js = await loadExtension(manifest);
// If the extension has an onInit export, be sure to run that or else let the module handle itself
if (hasInitExport(js)) {

View File

@@ -1,10 +1,10 @@
import { expect } from '@open-wc/testing';
import type { ManifestKind } from '../types';
import type { ManifestElementWithElementName, ManifestKind, ManifestWithMeta } from '../types';
import { UmbExtensionRegistry } from './extension.registry';
import type { ManifestTypes } from '@umbraco-cms/backoffice/extensions-registry';
describe('UmbExtensionRegistry', () => {
let extensionRegistry: UmbExtensionRegistry;
let extensionRegistry: UmbExtensionRegistry<ManifestWithMeta>;
let manifests: Array<ManifestTypes>;
beforeEach(() => {
@@ -153,11 +153,13 @@ describe('UmbExtensionRegistry', () => {
});
describe('UmbExtensionRegistry with kinds', () => {
let extensionRegistry: UmbExtensionRegistry;
let manifests: Array<ManifestTypes | ManifestKind>;
let extensionRegistry: UmbExtensionRegistry<any>;
let manifests: Array<
ManifestElementWithElementName | ManifestWithMeta | ManifestKind<ManifestElementWithElementName>
>;
beforeEach(() => {
extensionRegistry = new UmbExtensionRegistry();
extensionRegistry = new UmbExtensionRegistry<any>();
manifests = [
{
type: 'kind',

View File

@@ -149,7 +149,7 @@ export interface ManifestWithMeta extends ManifestBase {
* This type of extension gives full control and will simply load the specified JS file
* You could have custom logic to decide which extensions to load/register by using extensionRegistry
*/
export interface ManifestEntrypoint extends ManifestBase {
export interface ManifestEntryPoint extends ManifestBase {
type: 'entryPoint';
/**

View File

@@ -1,7 +1,11 @@
import type { UmbExtensionRegistry } from './registry/extension.registry';
import { ManifestBase } from './types';
import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
export type UmbEntryPointOnInit = (host: UmbControllerHostElement, extensionRegistry: UmbExtensionRegistry) => void;
export type UmbEntryPointOnInit = (
host: UmbControllerHostElement,
extensionRegistry: UmbExtensionRegistry<ManifestBase>
) => void;
/**
* Interface containing supported life-cycle functions for ESModule entry points

View File

@@ -25,7 +25,7 @@ import type { ManifestWorkspace } from './workspace.model';
import type { ManifestWorkspaceAction } from './workspace-action.model';
import type { ManifestWorkspaceEditorView } from './workspace-editor-view.model';
import type { ManifestWorkspaceViewCollection } from './workspace-view-collection.model';
import type { ManifestBase, ManifestEntrypoint } from '@umbraco-cms/backoffice/extensions-api';
import type { ManifestBase, ManifestEntryPoint } from '@umbraco-cms/backoffice/extensions-api';
export * from './collection-view.model';
export * from './dashboard-collection.model';
@@ -61,7 +61,7 @@ export type ManifestTypes =
| ManifestDashboardCollection
| ManifestEntityAction
| ManifestEntityBulkAction
| ManifestEntrypoint
| ManifestEntryPoint
| ManifestExternalLoginProvider
| ManifestHeaderApp
| ManifestHeaderAppButtonKind

View File

@@ -1,18 +1,18 @@
import { Subject, takeUntil } from 'rxjs';
import { UmbPackageRepository } from './package.repository';
import { UmbController, UmbControllerHostElement } from '@umbraco-cms/backoffice/controller';
import { UmbExtensionRegistry } from '@umbraco-cms/backoffice/extensions-api';
import { UmbBackofficeExtensionRegistry } from '@umbraco-cms/backoffice/extensions-registry';
export class UmbExtensionInitializer extends UmbController {
#host: UmbControllerHostElement;
#extensionRegistry: UmbExtensionRegistry;
#extensionRegistry: UmbBackofficeExtensionRegistry;
#unobserve = new Subject<void>();
#repository: UmbPackageRepository;
#localPackages: Array<Promise<any>>;
constructor(
host: UmbControllerHostElement,
extensionRegistry: UmbExtensionRegistry,
extensionRegistry: UmbBackofficeExtensionRegistry,
localPackages: Array<Promise<any>>
) {
super(host, UmbExtensionInitializer.name);