diff --git a/modules/code-generator/.versionrc b/modules/code-generator/.versionrc new file mode 100644 index 000000000..a41c11e26 --- /dev/null +++ b/modules/code-generator/.versionrc @@ -0,0 +1,3 @@ +{ + "releaseCommitMessageFormat": "chore(release): code-generator - {{currentTag}}" +} \ No newline at end of file diff --git a/modules/code-generator/src/plugins/component/react/containerInjectConstants.ts b/modules/code-generator/src/plugins/component/react/containerInjectConstants.ts new file mode 100644 index 000000000..92cd4a392 --- /dev/null +++ b/modules/code-generator/src/plugins/component/react/containerInjectConstants.ts @@ -0,0 +1,55 @@ +import { + CLASS_DEFINE_CHUNK_NAME, + COMMON_CHUNK_NAME, + DEFAULT_LINK_AFTER, +} from '../../../const/generator'; + +import { + BuilderComponentPlugin, + BuilderComponentPluginFactory, + ChunkType, + FileType, + ICodeStruct, +} from '../../../types'; + +export interface PluginConfig { + fileType: string; +} + +const pluginFactory: BuilderComponentPluginFactory = (config?) => { + const cfg: PluginConfig = { + fileType: FileType.JSX, + ...config, + }; + + const plugin: BuilderComponentPlugin = async (pre: ICodeStruct) => { + const next: ICodeStruct = { + ...pre, + }; + + next.chunks.push({ + type: ChunkType.STRING, + fileType: cfg.fileType, + name: COMMON_CHUNK_NAME.InternalDepsImport, + content: "import __$$constants from '../../constants';", + linkAfter: [COMMON_CHUNK_NAME.ExternalDepsImport], + }); + + next.chunks.push({ + type: ChunkType.STRING, + fileType: cfg.fileType, + name: CLASS_DEFINE_CHUNK_NAME.InsVar, + content: ` + get constants() { + return __$$constants || {}; + } + `, + linkAfter: [...DEFAULT_LINK_AFTER[CLASS_DEFINE_CHUNK_NAME.InsVar]], + }); + + return next; + }; + return plugin; +}; + +export default pluginFactory; diff --git a/modules/code-generator/src/solutions/icejs.ts b/modules/code-generator/src/solutions/icejs.ts index 0a9d5c60d..85ce7c1f5 100644 --- a/modules/code-generator/src/solutions/icejs.ts +++ b/modules/code-generator/src/solutions/icejs.ts @@ -8,6 +8,7 @@ import containerInitState from '../plugins/component/react/containerInitState'; import containerInjectContext from '../plugins/component/react/containerInjectContext'; import containerInjectUtils from '../plugins/component/react/containerInjectUtils'; import containerInjectDataSourceEngine from '../plugins/component/react/containerInjectDataSourceEngine'; +import containerInjectConstants from '../plugins/component/react/containerInjectConstants'; import containerInjectI18n from '../plugins/component/react/containerInjectI18n'; import containerLifeCycle from '../plugins/component/react/containerLifeCycle'; import containerMethod from '../plugins/component/react/containerMethod'; @@ -22,7 +23,7 @@ import icejs from '../plugins/project/framework/icejs'; import { prettier } from '../postprocessor'; -export interface IceJsProjectBuilderOptions extends IProjectBuilderOptions {} +export type IceJsProjectBuilderOptions = IProjectBuilderOptions; export default function createIceJsProjectBuilder( options?: IceJsProjectBuilderOptions, @@ -65,6 +66,7 @@ export default function createIceJsProjectBuilder( containerInjectUtils(), containerInjectDataSourceEngine(), containerInjectI18n(), + containerInjectConstants(), containerInitState(), containerLifeCycle(), containerMethod(),