From 1caf9535b97c9e6fe1c24ec48310f6b2b9e43980 Mon Sep 17 00:00:00 2001 From: lv Date: Wed, 22 Jun 2022 08:31:30 +0800 Subject: [PATCH] feat: create plugin --- packages/dooringx-cli/bin/www | 0 packages/dooringx-lib/src/core/utils/index.ts | 14 ++++++++++++++ packages/dooringx-lib/src/core/utils/types.ts | 7 +++++++ 3 files changed, 21 insertions(+) mode change 100644 => 100755 packages/dooringx-cli/bin/www create mode 100644 packages/dooringx-lib/src/core/utils/types.ts diff --git a/packages/dooringx-cli/bin/www b/packages/dooringx-cli/bin/www old mode 100644 new mode 100755 diff --git a/packages/dooringx-lib/src/core/utils/index.ts b/packages/dooringx-lib/src/core/utils/index.ts index 80fe6c5..7d8e571 100644 --- a/packages/dooringx-lib/src/core/utils/index.ts +++ b/packages/dooringx-lib/src/core/utils/index.ts @@ -7,6 +7,20 @@ import { specialCoList } from './special'; import deepCopys from 'deepcopy'; import { FunctionDataMap } from '../functionCenter/config'; import UserConfig from '../../config'; +import { IPluginConfig } from './types'; +import { ComponentItemFactory } from '../components/abstract'; + +// 创建插件 +export const createPlugin = (config: IPluginConfig) => { + return new ComponentItemFactory( + config.key, + config.name, + {}, + config.attr, + config.render, + config.attr.resize + ); +}; export function deepCopy(obj: T): T { return deepCopys(obj); diff --git a/packages/dooringx-lib/src/core/utils/types.ts b/packages/dooringx-lib/src/core/utils/types.ts new file mode 100644 index 0000000..bbb4a80 --- /dev/null +++ b/packages/dooringx-lib/src/core/utils/types.ts @@ -0,0 +1,7 @@ +export interface IPluginConfig { + key: string; + name: string; + attr: any; + render: (props: any) => JSX.Element; + resize?: boolean; +}