mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-14 13:03:07 +00:00
118 lines
3.7 KiB
TypeScript
118 lines
3.7 KiB
TypeScript
import { IProjectBuilder, IProjectBuilderOptions } from '../types';
|
|
|
|
import { createProjectBuilder } from '../generator/ProjectBuilder';
|
|
|
|
import esmodule from '../plugins/common/esmodule';
|
|
import styleImport from '../plugins/common/styleImport';
|
|
import containerClass from '../plugins/component/react/containerClass';
|
|
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';
|
|
import jsx from '../plugins/component/react/jsx';
|
|
import reactCommonDeps from '../plugins/component/react/reactCommonDeps';
|
|
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 icejs from '../plugins/project/framework/icejs';
|
|
|
|
import { prettier } from '../postprocessor';
|
|
|
|
export type IceJsProjectBuilderOptions = IProjectBuilderOptions;
|
|
|
|
export default function createIceJsProjectBuilder(
|
|
options?: IceJsProjectBuilderOptions,
|
|
): IProjectBuilder {
|
|
return createProjectBuilder({
|
|
inStrictMode: options?.inStrictMode,
|
|
extraContextData: { ...options },
|
|
template: icejs.template,
|
|
plugins: {
|
|
components: [
|
|
reactCommonDeps(),
|
|
esmodule({
|
|
fileType: 'jsx',
|
|
}),
|
|
styleImport(),
|
|
containerClass(),
|
|
containerInjectContext(),
|
|
containerInjectUtils(),
|
|
containerInjectDataSourceEngine(),
|
|
containerInjectI18n(),
|
|
containerInjectConstants(),
|
|
containerInitState(),
|
|
containerLifeCycle(),
|
|
containerMethod(),
|
|
jsx({
|
|
nodeTypeMapping: {
|
|
Div: 'div',
|
|
Component: 'div',
|
|
Page: 'div',
|
|
Block: 'div',
|
|
},
|
|
}),
|
|
css(),
|
|
],
|
|
pages: [
|
|
reactCommonDeps(),
|
|
esmodule({
|
|
fileType: 'jsx',
|
|
}),
|
|
styleImport(),
|
|
containerClass(),
|
|
containerInjectContext(),
|
|
containerInjectUtils(),
|
|
containerInjectDataSourceEngine(),
|
|
containerInjectI18n(),
|
|
containerInjectConstants(),
|
|
containerInitState(),
|
|
containerLifeCycle(),
|
|
containerMethod(),
|
|
jsx({
|
|
nodeTypeMapping: {
|
|
Div: 'div',
|
|
Component: 'div',
|
|
Page: 'div',
|
|
Block: 'div',
|
|
// Box: 'div',
|
|
},
|
|
}),
|
|
css(),
|
|
],
|
|
router: [esmodule(), icejs.plugins.router()],
|
|
entry: [icejs.plugins.entry()],
|
|
constants: [constants()],
|
|
utils: [esmodule(), utils('react')],
|
|
i18n: [i18n()],
|
|
globalStyle: [icejs.plugins.globalStyle()],
|
|
htmlEntry: [icejs.plugins.entryHtml()],
|
|
packageJSON: [icejs.plugins.packageJSON()],
|
|
},
|
|
postProcessors: [prettier()],
|
|
customizeBuilderOptions: options?.customizeBuilderOptions,
|
|
});
|
|
}
|
|
|
|
export const plugins = {
|
|
containerClass,
|
|
containerInjectContext,
|
|
containerInjectUtils,
|
|
containerInjectDataSourceEngine,
|
|
containerInjectI18n,
|
|
containerInjectConstants,
|
|
containerInitState,
|
|
containerLifeCycle,
|
|
containerMethod,
|
|
jsx,
|
|
commonDeps: reactCommonDeps,
|
|
|
|
/** @deprecated Please use commonDeps */
|
|
reactCommonDeps,
|
|
};
|