From 13d6d834ac5949738682bdafbc6831d872d9f9a4 Mon Sep 17 00:00:00 2001 From: eternalsky Date: Thu, 13 Jul 2023 15:29:11 +0800 Subject: [PATCH] feat(codegen): add new option exclude for plugin containerLifeCycle --- .../plugins/component/react/containerLifeCycle.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/code-generator/src/plugins/component/react/containerLifeCycle.ts b/modules/code-generator/src/plugins/component/react/containerLifeCycle.ts index 75dcada63..5f7d6d22a 100644 --- a/modules/code-generator/src/plugins/component/react/containerLifeCycle.ts +++ b/modules/code-generator/src/plugins/component/react/containerLifeCycle.ts @@ -16,13 +16,14 @@ import { isJSFunction, isJSExpression } from '@alilc/lowcode-types'; import { isJSExpressionFn } from '../../../utils/common'; export interface PluginConfig { - fileType: string; - exportNameMapping: Record; - normalizeNameMapping: Record; + fileType?: string; + exportNameMapping?: Record; + normalizeNameMapping?: Record; + exclude?: string[]; } const pluginFactory: BuilderComponentPluginFactory = (config?) => { - const cfg: PluginConfig = { + const cfg = { fileType: FileType.JSX, exportNameMapping: {}, normalizeNameMapping: {}, @@ -56,6 +57,10 @@ const pluginFactory: BuilderComponentPluginFactory = (config?) => normalizeName = cfg.normalizeNameMapping[lifeCycleName] || lifeCycleName; } + if (cfg?.exclude?.includes(normalizeName)) { + return null; + } + const exportName = cfg.exportNameMapping[lifeCycleName] || lifeCycleName; if (normalizeName === 'constructor') { return { @@ -97,7 +102,7 @@ const pluginFactory: BuilderComponentPluginFactory = (config?) => }), linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsMethod]], }; - }); + }).filter((i) => !!i); next.chunks.push(...chunks.filter((x): x is ICodeChunk => x !== null)); }