@@ -13,11 +13,11 @@ sidebar_position: 4
1313#### 类型定义
1414``` typescript
1515async function register(
16- pluginConfigCreator : (ctx : ILowCodePluginContext ) => ILowCodePluginConfig ,
16+ pluginConfigCreator : (ctx : IPublicModelPluginContext ) => IPublicTypePluginConfig ,
1717 options ? : ILowCodeRegisterOptions ,
1818): Promise <void >
1919```
20- pluginConfigCreator 是一个 ILowCodePluginConfig 生成函数,ILowCodePluginConfig 中包含了该插件的 init / destroy 等钩子函数,以及 exports 函数用于返回插件对外暴露的值。
20+ pluginConfigCreator 是一个 IPublicTypePluginConfig 生成函数,IPublicTypePluginConfig 中包含了该插件的 init / destroy 等钩子函数,以及 exports 函数用于返回插件对外暴露的值。
2121
2222另外,pluginConfigCreator 还必须挂载 pluginName 字段,全局确保唯一,否则 register 时会报错,可以选择性挂载 meta 字段,用于描述插件的元数据信息,比如兼容的引擎版本、支持的参数配置、依赖插件声明等。
2323> 注:pluginConfigCreator 挂载 pluginName / meta 可以通过低代码工具链的插件脚手架生成,写如 package .json 后将会自动注入到代码中,具体见 [插件元数据工程化示例](#RO9YY )
@@ -26,8 +26,9 @@ pluginConfigCreator 是一个 ILowCodePluginConfig 生成函数,ILowCodePlugin
2626#### 简单示例
2727` ` ` typescript
2828import { plugins } from '@alilc/lowcode-engine';
29+ import { IPublicModelPluginContext } from '@alilc/lowcode-types';
2930
30- const builtinPluginRegistry = (ctx: ILowCodePluginContext ) => {
31+ const builtinPluginRegistry = (ctx: IPublicModelPluginContext ) => {
3132 return {
3233 async init() {
3334 const { skeleton } = ctx;
@@ -58,16 +59,17 @@ await plugins.register(builtinPluginRegistry);
5859#### 使用 exports 示例
5960` ` ` typescript
6061import { plugins } from '@alilc/lowcode-engine';
62+ import { IPublicModelPluginContext } from '@alilc/lowcode-types';
6163
62- const pluginA = (ctx: ILowCodePluginContext ) => {
64+ const pluginA = (ctx: IPublicModelPluginContext ) => {
6365 return {
6466 async init() {},
6567 exports() { return { x: 1, } },
6668 };
6769}
6870pluginA.pluginName = 'pluginA';
6971
70- const pluginB = (ctx: ILowCodePluginContext ) => {
72+ const pluginB = (ctx: IPublicModelPluginContext ) => {
7173 return {
7274 async init() {
7375 // 获取 pluginA 的导出值
@@ -83,14 +85,15 @@ pluginB.meta = {
8385await plugins.register(pluginA);
8486await plugins.register(pluginB);
8587` ` `
86- > 注:ctx 是在插件 creator 中获取引擎 API 的上下文,具体定义参见 [ILowCodePluginContext ](#qEhTb )
88+ > 注:ctx 是在插件 creator 中获取引擎 API 的上下文,具体定义参见 [IPublicModelPluginContext ](#qEhTb )
8789
8890####
8991#### 设置兼容引擎版本示例
9092` ` ` typescript
9193import { plugins } from '@alilc/lowcode-engine';
94+ import { IPublicModelPluginContext } from '@alilc/lowcode-types';
9295
93- const builtinPluginRegistry = (ctx: ILowCodePluginContext ) => {
96+ const builtinPluginRegistry = (ctx: IPublicModelPluginContext ) => {
9497 return {
9598 async init() {
9699 ...
@@ -108,8 +111,9 @@ await plugins.register(builtinPluginRegistry);
108111#### 设置插件参数版本示例
109112` ` ` typescript
110113import { plugins } from '@alilc/lowcode-engine';
114+ import { IPublicModelPluginContext } from '@alilc/lowcode-types';
111115
112- const builtinPluginRegistry = (ctx: ILowCodePluginContext , options: any) => {
116+ const builtinPluginRegistry = (ctx: IPublicModelPluginContext , options: any) => {
113117 return {
114118 async init() {
115119 // 1.0.4 之后的传值方式,通过 register(xxx, options)
@@ -219,27 +223,27 @@ plugins.delete('builtinPluginRegistry');
219223## 事件(events )
220224无
221225## 相关模块
222- ### ILowCodePluginContext
226+ ### IPublicModelPluginContext
223227** 类型定义**
224228` ` ` typescript
225- export interface ILowCodePluginContext {
226- skeleton: Skeleton; // 参考面板 API
227- hotkey: Hotkey; // 参考快捷键 API
228- setters: Setters; // 参考设置器 API
229- config: EngineConfig; // 参考配置 API
230- material: Material; // 参考物料 API
231- event: Event; // 参考事件 API
232- project: Project; // 参考模型 API
233- common: Common; // 参考模型 API
234- logger: Logger; // 参考日志 API
235- plugins: ILowCodePluginManager; // 即本文档描述内容
229+ export interface IPublicModelPluginContext {
230+ get skeleton(): IPublicApiSkeleton;
231+ get hotkey(): IPublicApiHotkey;
232+ get setters(): IPublicApiSetters;
233+ get config(): IEngineConfig;
234+ get material(): IPublicApiMaterial;
235+ get event(): IPublicApiEvent;
236+ get project(): IPublicApiProject;
237+ get common(): IPublicApiCommon;
238+ logger: IPublicApiLogger;
239+ plugins: IPublicApiPlugins;
236240 preference: IPluginPreferenceMananger;
237241}
238242` ` `
239- ### ILowCodePluginConfig
243+ ### IPublicTypePluginConfig
240244** 类型定义**
241245` ` ` typescript
242- export interface ILowCodePluginConfig {
246+ export interface IPublicTypePluginConfig {
243247 init?(): void;
244248 destroy?(): void;
245249 exports?(): any;
@@ -263,7 +267,7 @@ your-plugin/package.json
263267` ` `
264268转换后的结构:
265269` ` ` json
266- const debug = (ctx: ILowCodePluginContext , options: any) => {
270+ const debug = (ctx: IPublicModelPluginContext , options: any) => {
267271 return {};
268272}
269273
0 commit comments