mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-14 04:43:14 +00:00
123 lines
3.5 KiB
TypeScript
123 lines
3.5 KiB
TypeScript
/**
|
|
* 低代码引擎的出码模块,负责将编排产出的 Schema 转换成实际可执行的代码。
|
|
* 注意:为了保持 API 的稳定性, 这里所有导出的 API 均要显式命名方式导出
|
|
* (即用 export { xxx } from 'xx' 的方式,不要直接 export * from 'xxx')
|
|
* 而且所有导出的 API 务必在 tests/public 中编写单元测试
|
|
*/
|
|
import { createProjectBuilder } from './generator/ProjectBuilder';
|
|
import { createModuleBuilder } from './generator/ModuleBuilder';
|
|
import { createDiskPublisher } from './publisher/disk';
|
|
import { createZipPublisher } from './publisher/zip';
|
|
import createIceJsProjectBuilder, { plugins as reactPlugins } from './solutions/icejs';
|
|
import createRaxAppProjectBuilder, { plugins as raxPlugins } from './solutions/rax-app';
|
|
|
|
// 引入说明
|
|
import { REACT_CHUNK_NAME } from './plugins/component/react/const';
|
|
import { COMMON_CHUNK_NAME, CLASS_DEFINE_CHUNK_NAME, DEFAULT_LINK_AFTER } from './const/generator';
|
|
|
|
// 引入通用插件组
|
|
import esmodule from './plugins/common/esmodule';
|
|
import requireUtils from './plugins/common/requireUtils';
|
|
|
|
import css from './plugins/component/style/css';
|
|
import constants from './plugins/project/constants';
|
|
import i18n from './plugins/project/i18n';
|
|
import utils from './plugins/project/utils';
|
|
import prettier from './postprocessor/prettier';
|
|
|
|
// 引入常用工具
|
|
import * as utilsCommon from './utils/common';
|
|
import * as utilsCompositeType from './utils/compositeType';
|
|
import * as utilsJsExpression from './utils/jsExpression';
|
|
import * as utilsJsSlot from './utils/jsSlot';
|
|
import * as utilsNodeToJSX from './utils/nodeToJSX';
|
|
import * as utilsResultHelper from './utils/resultHelper';
|
|
import * as utilsTemplateHelper from './utils/templateHelper';
|
|
import * as utilsValidate from './utils/validate';
|
|
import * as utilsSchema from './utils/schema';
|
|
|
|
import * as CONSTANTS from './const';
|
|
|
|
// 引入内置解决方案模块
|
|
import icejs from './plugins/project/framework/icejs';
|
|
import rax from './plugins/project/framework/rax';
|
|
|
|
export default {
|
|
createProjectBuilder,
|
|
createModuleBuilder,
|
|
solutions: {
|
|
icejs: createIceJsProjectBuilder,
|
|
rax: createRaxAppProjectBuilder,
|
|
},
|
|
solutionParts: {
|
|
icejs,
|
|
rax,
|
|
},
|
|
publishers: {
|
|
disk: createDiskPublisher,
|
|
zip: createZipPublisher,
|
|
},
|
|
plugins: {
|
|
common: {
|
|
/**
|
|
* 处理 ES Module
|
|
* @deprecated please use esModule
|
|
*/
|
|
esmodule,
|
|
esModule: esmodule,
|
|
requireUtils,
|
|
},
|
|
react: {
|
|
...reactPlugins,
|
|
},
|
|
rax: {
|
|
...raxPlugins,
|
|
},
|
|
style: {
|
|
css,
|
|
},
|
|
project: {
|
|
constants,
|
|
i18n,
|
|
utils,
|
|
},
|
|
},
|
|
postprocessor: {
|
|
prettier,
|
|
},
|
|
utils: {
|
|
common: utilsCommon,
|
|
compositeType: utilsCompositeType,
|
|
jsExpression: utilsJsExpression,
|
|
jsSlot: utilsJsSlot,
|
|
nodeToJSX: utilsNodeToJSX,
|
|
resultHelper: utilsResultHelper,
|
|
templateHelper: utilsTemplateHelper,
|
|
validate: utilsValidate,
|
|
schema: utilsSchema,
|
|
},
|
|
chunkNames: {
|
|
COMMON_CHUNK_NAME,
|
|
CLASS_DEFINE_CHUNK_NAME,
|
|
REACT_CHUNK_NAME,
|
|
},
|
|
defaultLinkAfter: {
|
|
COMMON_DEFAULT_LINK_AFTER: DEFAULT_LINK_AFTER,
|
|
},
|
|
constants: CONSTANTS,
|
|
};
|
|
|
|
// 一些类型定义
|
|
export * from './types';
|
|
|
|
// 一些常量定义
|
|
export * from './const';
|
|
|
|
// 一些工具函数
|
|
export * from './analyzer/componentAnalyzer';
|
|
export * from './parser/SchemaParser';
|
|
export * from './generator/ChunkBuilder';
|
|
export * from './generator/CodeBuilder';
|
|
export * from './generator/ModuleBuilder';
|
|
export * from './generator/ProjectBuilder';
|