diff --git a/packages/designer/src/plugin/index.ts b/packages/designer/src/plugin/index.ts index 4d1437e9e..40a5bb555 100644 --- a/packages/designer/src/plugin/index.ts +++ b/packages/designer/src/plugin/index.ts @@ -1,3 +1,4 @@ export * from './plugin-context'; export * from './plugin-manager'; +export * from './plugin-types'; export * from './plugin'; diff --git a/packages/designer/src/plugin/plugin-context.ts b/packages/designer/src/plugin/plugin-context.ts index 170b531d8..f624fbfea 100644 --- a/packages/designer/src/plugin/plugin-context.ts +++ b/packages/designer/src/plugin/plugin-context.ts @@ -1,6 +1,6 @@ import { Editor, Hotkey, hotkey } from '@ali/lowcode-editor-core'; import { Skeleton } from '@ali/lowcode-editor-skeleton'; -import { ILowCodePluginConfig, ILowCodePluginManager, ILowCodePluginContext, IDesignerCabin } from '@ali/lowcode-types'; +import { ILowCodePluginConfig, ILowCodePluginManager, ILowCodePluginContext, IDesignerCabin } from './plugin-types'; import { getLogger, Logger } from '../utils'; import { registerMetadataTransducer, diff --git a/packages/designer/src/plugin/plugin-manager.ts b/packages/designer/src/plugin/plugin-manager.ts index 824837e5a..33f278405 100644 --- a/packages/designer/src/plugin/plugin-manager.ts +++ b/packages/designer/src/plugin/plugin-manager.ts @@ -1,5 +1,5 @@ import { Editor } from '@ali/lowcode-editor-core'; -import { CompositeObject, ILowCodePlugin, ILowCodePluginConfig, ILowCodePluginManager, ILowCodePluginContext } from '@ali/lowcode-types'; +import { CompositeObject, ILowCodePlugin, ILowCodePluginConfig, ILowCodePluginManager, ILowCodePluginContext } from './plugin-types'; import { LowCodePlugin } from './plugin'; import LowCodePluginContext from './plugin-context'; import { getLogger, invariant } from '../utils'; @@ -23,8 +23,8 @@ export class LowCodePluginManager implements ILowCodePluginManager { } register( - pluginConfig: (ctx: ILowCodePluginContext, options: CompositeObject) => ILowCodePluginConfig, - options: CompositeObject = {}, + pluginConfig: (ctx: ILowCodePluginContext, options?: CompositeObject) => ILowCodePluginConfig, + options?: CompositeObject, ): void { const ctx = this._getLowCodePluginContext(); const config = pluginConfig(ctx, options); diff --git a/packages/types/src/plugin.ts b/packages/designer/src/plugin/plugin-types.ts similarity index 74% rename from packages/types/src/plugin.ts rename to packages/designer/src/plugin/plugin-types.ts index d7dfc1f8a..6d4dd7600 100644 --- a/packages/types/src/plugin.ts +++ b/packages/designer/src/plugin/plugin-types.ts @@ -15,7 +15,7 @@ export interface ILowCodePluginConfig { exports?(): CompositeObject; } -export interface ILowCodePlugin { +export interface ILowCodePluginCore { name: string; dep: string[]; disabled: boolean; @@ -31,6 +31,12 @@ export interface ILowCodePlugin { setDisabled(flag: boolean): void; } +interface ILowCodePluginExportsAccessor { + [propName: string]: any; +} + +export type ILowCodePlugin = ILowCodePluginCore & ILowCodePluginExportsAccessor; + export interface IDesignerCabin { registerMetadataTransducer: (transducer: MetadataTransducer, level: number, id?: string) => void; addBuiltinComponentAction: (action: ComponentAction) => void; @@ -50,10 +56,14 @@ export interface ILowCodePluginContext { */ } -export interface ILowCodePluginManager { +interface ILowCodePluginManagerPluginAccessor { + [pluginName: string]: ILowCodePlugin | any; +} + +export interface ILowCodePluginManagerCore { register( - pluginConfig: (ctx: ILowCodePluginContext, options: CompositeObject) => ILowCodePluginConfig, - options: CompositeObject, + pluginConfig: (ctx: ILowCodePluginContext, options?: CompositeObject) => ILowCodePluginConfig, + options?: CompositeObject, ): void; get(pluginName: string): ILowCodePlugin | undefined; getAll(): ILowCodePlugin[]; @@ -62,3 +72,5 @@ export interface ILowCodePluginManager { setDisabled(pluginName: string, flag: boolean): void; dispose(): void; } + +export type ILowCodePluginManager = ILowCodePluginManagerCore & ILowCodePluginManagerPluginAccessor; diff --git a/packages/engine/src/engine.ts b/packages/engine/src/engine.ts index 37ac10981..aa967f355 100644 --- a/packages/engine/src/engine.ts +++ b/packages/engine/src/engine.ts @@ -16,7 +16,7 @@ import './modules/live-editing'; export * from './modules/editor-types'; export * from './modules/skeleton-types'; export * from './modules/designer-types'; -export * from './modules/lowcode-types'; +// export * from './modules/lowcode-types'; const { hotkey, monitor, getSetter, registerSetter, getSettersMap } = editorCabin; registerDefaults(); diff --git a/packages/engine/src/modules/designer-types.ts b/packages/engine/src/modules/designer-types.ts index 1c10ed057..a715ea8da 100644 --- a/packages/engine/src/modules/designer-types.ts +++ b/packages/engine/src/modules/designer-types.ts @@ -1,5 +1,12 @@ import * as designerCabin from '@ali/lowcode-designer'; +export { + ILowCodePluginConfig, + ILowCodePluginManager, + ILowCodePluginContext, + IDesignerCabin, +} from '@ali/lowcode-designer'; + // 这样做的目的是为了去除 Node / DocumentModel 等的值属性,仅保留类型属性 export type Node = designerCabin.Node; export type ParentalNode = designerCabin.ParentalNode; diff --git a/packages/engine/src/modules/lowcode-types.ts b/packages/engine/src/modules/lowcode-types.ts index 688a97c12..e69de29bb 100644 --- a/packages/engine/src/modules/lowcode-types.ts +++ b/packages/engine/src/modules/lowcode-types.ts @@ -1,6 +0,0 @@ -export { - ILowCodePluginConfig, - ILowCodePluginManager, - ILowCodePluginContext, - IDesignerCabin, -} from '@ali/lowcode-types';