@dckj-npm/lowcode-code-generator 1.2.23 → 1.2.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/CHANGELOG.md +280 -280
  2. package/CONTRIBUTING.md +40 -40
  3. package/README.md +123 -123
  4. package/bin/lowcode-code-generator.js +53 -53
  5. package/dist/cli.js.map +1 -1
  6. package/dist/standalone-loader.esm.js +1 -1
  7. package/dist/standalone-loader.esm.js.map +1 -1
  8. package/dist/standalone-loader.js +1 -1
  9. package/dist/standalone-loader.js.map +1 -1
  10. package/dist/standalone-worker.js.map +1 -1
  11. package/dist/standalone.js.map +1 -1
  12. package/es/index.js.map +1 -1
  13. package/lib/index.js.map +1 -1
  14. package/package.json +156 -156
  15. package/standalone/index.js +6 -6
  16. package/standalone/package.json +5 -5
  17. package/standalone-loader/index.js +2 -2
  18. package/standalone-loader/package.json +6 -6
  19. package/standalone-worker/index.js +6 -6
  20. package/standalone-worker/package.json +5 -5
  21. package/types/analyzer/componentAnalyzer.d.ts +2 -2
  22. package/types/cli/index.d.ts +2 -2
  23. package/types/cli/init-solution.d.ts +4 -4
  24. package/types/cli/run.d.ts +15 -15
  25. package/types/cli/solutions/example-solution.d.ts +4 -4
  26. package/types/config/env.d.ts +1 -1
  27. package/types/const/file.d.ts +2 -2
  28. package/types/const/generator.d.ts +58 -58
  29. package/types/const/index.d.ts +11 -11
  30. package/types/core/jsx/handlers/transformJsExpression.d.ts +5 -5
  31. package/types/core/jsx/handlers/transformThis2Context.d.ts +9 -9
  32. package/types/core/jsx/util/isLiteralAtomicExpr.d.ts +4 -4
  33. package/types/core/jsx/util/isSimpleStraightLiteral.d.ts +3 -3
  34. package/types/core/vue/handlers/transformJsExpression.d.ts +5 -5
  35. package/types/core/vue/handlers/transformThis2Context.d.ts +9 -9
  36. package/types/core/vue/util/isLiteralAtomicExpr.d.ts +4 -4
  37. package/types/core/vue/util/isSimpleStraightLiteral.d.ts +3 -3
  38. package/types/generator/ChunkBuilder.d.ts +23 -23
  39. package/types/generator/CodeBuilder.d.ts +17 -17
  40. package/types/generator/ModuleBuilder.d.ts +7 -7
  41. package/types/generator/ProjectBuilder.d.ts +62 -62
  42. package/types/index.d.ts +260 -260
  43. package/types/parser/SchemaParser.d.ts +25 -25
  44. package/types/plugins/common/esmodule.d.ts +8 -8
  45. package/types/plugins/common/requireUtils.d.ts +3 -3
  46. package/types/plugins/common/styleImport.d.ts +3 -3
  47. package/types/plugins/component/rax/commonDeps.d.ts +3 -3
  48. package/types/plugins/component/rax/const.d.ts +18 -18
  49. package/types/plugins/component/rax/containerClass.d.ts +3 -3
  50. package/types/plugins/component/rax/containerInitState.d.ts +7 -7
  51. package/types/plugins/component/rax/containerInjectContext.d.ts +6 -6
  52. package/types/plugins/component/rax/containerInjectDataSourceEngine.d.ts +12 -12
  53. package/types/plugins/component/rax/containerInjectUtils.d.ts +6 -6
  54. package/types/plugins/component/rax/containerLifeCycle.d.ts +8 -8
  55. package/types/plugins/component/rax/containerMethods.d.ts +6 -6
  56. package/types/plugins/component/rax/jsx.d.ts +8 -8
  57. package/types/plugins/component/react/const.d.ts +9 -9
  58. package/types/plugins/component/react/containerClass.d.ts +3 -3
  59. package/types/plugins/component/react/containerInitState.d.ts +7 -7
  60. package/types/plugins/component/react/containerInjectConstants.d.ts +6 -6
  61. package/types/plugins/component/react/containerInjectContext.d.ts +6 -6
  62. package/types/plugins/component/react/containerInjectDataSourceEngine.d.ts +23 -23
  63. package/types/plugins/component/react/containerInjectI18n.d.ts +6 -6
  64. package/types/plugins/component/react/containerInjectUtils.d.ts +8 -8
  65. package/types/plugins/component/react/containerLifeCycle.d.ts +9 -9
  66. package/types/plugins/component/react/containerMethod.d.ts +6 -6
  67. package/types/plugins/component/react/jsx.d.ts +7 -7
  68. package/types/plugins/component/react/reactCommonDeps.d.ts +3 -3
  69. package/types/plugins/component/style/css.d.ts +7 -7
  70. package/types/plugins/component/vue/apiImport.d.ts +23 -23
  71. package/types/plugins/component/vue/containerInitVariable.d.ts +7 -7
  72. package/types/plugins/component/vue/containerInjectDataSourceEngine.d.ts +23 -23
  73. package/types/plugins/component/vue/containerLifeCycle.d.ts +9 -9
  74. package/types/plugins/component/vue/containerMethod.d.ts +6 -6
  75. package/types/plugins/component/vue/containerVue.d.ts +3 -3
  76. package/types/plugins/component/vue/convert/convert-function.d.ts +6 -6
  77. package/types/plugins/component/vue/convert/convert-variable.d.ts +11 -11
  78. package/types/plugins/component/vue/dataSourceMap.d.ts +7 -7
  79. package/types/plugins/component/vue/esmodule.d.ts +8 -8
  80. package/types/plugins/component/vue/routerSecond.d.ts +3 -3
  81. package/types/plugins/component/vue/template.d.ts +7 -7
  82. package/types/plugins/component/vue/vueCommonDeps.d.ts +3 -3
  83. package/types/plugins/project/constants.d.ts +3 -3
  84. package/types/plugins/project/framework/icejs/index.d.ts +11 -11
  85. package/types/plugins/project/framework/icejs/plugins/entry.d.ts +3 -3
  86. package/types/plugins/project/framework/icejs/plugins/entryHtml.d.ts +3 -3
  87. package/types/plugins/project/framework/icejs/plugins/globalStyle.d.ts +3 -3
  88. package/types/plugins/project/framework/icejs/plugins/packageJSON.d.ts +26 -26
  89. package/types/plugins/project/framework/icejs/plugins/router.d.ts +3 -3
  90. package/types/plugins/project/framework/icejs/template/files/README.md.d.ts +2 -2
  91. package/types/plugins/project/framework/icejs/template/files/abc.json.d.ts +2 -2
  92. package/types/plugins/project/framework/icejs/template/files/build.json.d.ts +2 -2
  93. package/types/plugins/project/framework/icejs/template/files/editorconfig.d.ts +2 -2
  94. package/types/plugins/project/framework/icejs/template/files/eslintignore.d.ts +2 -2
  95. package/types/plugins/project/framework/icejs/template/files/eslintrc.js.d.ts +2 -2
  96. package/types/plugins/project/framework/icejs/template/files/gitignore.d.ts +2 -2
  97. package/types/plugins/project/framework/icejs/template/files/jsconfig.json.d.ts +2 -2
  98. package/types/plugins/project/framework/icejs/template/files/prettierignore.d.ts +2 -2
  99. package/types/plugins/project/framework/icejs/template/files/prettierrc.js.d.ts +2 -2
  100. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Footer/index.jsx.d.ts +2 -2
  101. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Footer/index.style.d.ts +2 -2
  102. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Logo/index.jsx.d.ts +2 -2
  103. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/Logo/index.style.d.ts +2 -2
  104. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/components/PageNav/index.jsx.d.ts +2 -2
  105. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/index.jsx.d.ts +2 -2
  106. package/types/plugins/project/framework/icejs/template/files/src/layouts/BasicLayout/menuConfig.js.d.ts +2 -2
  107. package/types/plugins/project/framework/icejs/template/files/stylelintignore.d.ts +2 -2
  108. package/types/plugins/project/framework/icejs/template/files/stylelintrc.js.d.ts +2 -2
  109. package/types/plugins/project/framework/icejs/template/files/tsconfig.json.d.ts +2 -2
  110. package/types/plugins/project/framework/icejs/template/index.d.ts +3 -3
  111. package/types/plugins/project/framework/icejs/template/static-files.d.ts +2 -2
  112. package/types/plugins/project/framework/icejs3/index.d.ts +11 -11
  113. package/types/plugins/project/framework/icejs3/plugins/appConfig.d.ts +5 -5
  114. package/types/plugins/project/framework/icejs3/plugins/buildConfig.d.ts +7 -7
  115. package/types/plugins/project/framework/icejs3/plugins/globalStyle.d.ts +3 -3
  116. package/types/plugins/project/framework/icejs3/plugins/layout.d.ts +3 -3
  117. package/types/plugins/project/framework/icejs3/plugins/packageJSON.d.ts +26 -26
  118. package/types/plugins/project/framework/icejs3/template/files/README.md.d.ts +2 -2
  119. package/types/plugins/project/framework/icejs3/template/files/browserslistrc.d.ts +2 -2
  120. package/types/plugins/project/framework/icejs3/template/files/document.d.ts +2 -2
  121. package/types/plugins/project/framework/icejs3/template/files/gitignore.d.ts +2 -2
  122. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Footer/index.jsx.d.ts +2 -2
  123. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Footer/index.style.d.ts +2 -2
  124. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Logo/index.jsx.d.ts +2 -2
  125. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/Logo/index.style.d.ts +2 -2
  126. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/components/PageNav/index.jsx.d.ts +2 -2
  127. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/index.jsx.d.ts +2 -2
  128. package/types/plugins/project/framework/icejs3/template/files/src/layouts/BasicLayout/menuConfig.js.d.ts +2 -2
  129. package/types/plugins/project/framework/icejs3/template/files/tsconfig.d.ts +2 -2
  130. package/types/plugins/project/framework/icejs3/template/files/typings.d.ts +2 -2
  131. package/types/plugins/project/framework/icejs3/template/index.d.ts +3 -3
  132. package/types/plugins/project/framework/icejs3/template/static-files.d.ts +2 -2
  133. package/types/plugins/project/framework/rax/index.d.ts +12 -12
  134. package/types/plugins/project/framework/rax/plugins/appConfig.d.ts +4 -4
  135. package/types/plugins/project/framework/rax/plugins/buildConfig.d.ts +4 -4
  136. package/types/plugins/project/framework/rax/plugins/entry.d.ts +4 -4
  137. package/types/plugins/project/framework/rax/plugins/entryDocument.d.ts +7 -7
  138. package/types/plugins/project/framework/rax/plugins/globalStyle.d.ts +6 -6
  139. package/types/plugins/project/framework/rax/plugins/packageJSON.d.ts +4 -4
  140. package/types/plugins/project/framework/rax/template/files/.eslintignore.d.ts +2 -2
  141. package/types/plugins/project/framework/rax/template/files/.eslintrc.js.d.ts +2 -2
  142. package/types/plugins/project/framework/rax/template/files/.gitignore.d.ts +2 -2
  143. package/types/plugins/project/framework/rax/template/files/.prettierignore.d.ts +2 -2
  144. package/types/plugins/project/framework/rax/template/files/.prettierrc.js.d.ts +2 -2
  145. package/types/plugins/project/framework/rax/template/files/.stylelintignore.d.ts +2 -2
  146. package/types/plugins/project/framework/rax/template/files/.stylelintrc.js.d.ts +2 -2
  147. package/types/plugins/project/framework/rax/template/files/README.md.d.ts +2 -2
  148. package/types/plugins/project/framework/rax/template/files/jsconfig.json.d.ts +2 -2
  149. package/types/plugins/project/framework/rax/template/files/tsconfig.json.d.ts +2 -2
  150. package/types/plugins/project/framework/rax/template/index.d.ts +3 -3
  151. package/types/plugins/project/framework/rax/template/static-files.d.ts +2 -2
  152. package/types/plugins/project/framework/rax/types/RaxFrameworkOptions.d.ts +81 -81
  153. package/types/plugins/project/framework/vuejs3/index.d.ts +11 -11
  154. package/types/plugins/project/framework/vuejs3/plugins/form.d.ts +3 -3
  155. package/types/plugins/project/framework/vuejs3/plugins/hooks.d.ts +3 -3
  156. package/types/plugins/project/framework/vuejs3/plugins/main.d.ts +4 -4
  157. package/types/plugins/project/framework/vuejs3/plugins/packageJSON.d.ts +26 -26
  158. package/types/plugins/project/framework/vuejs3/plugins/router.d.ts +3 -3
  159. package/types/plugins/project/framework/vuejs3/template/files/css/global.scss.d.ts +2 -2
  160. package/types/plugins/project/framework/vuejs3/template/files/css/mixin.scss.d.ts +2 -2
  161. package/types/plugins/project/framework/vuejs3/template/files/css/theme.css.d.ts +2 -2
  162. package/types/plugins/project/framework/vuejs3/template/files/env.d.ts +2 -2
  163. package/types/plugins/project/framework/vuejs3/template/files/eslintignore.d.ts +2 -2
  164. package/types/plugins/project/framework/vuejs3/template/files/eslintrc.yml.d.ts +2 -2
  165. package/types/plugins/project/framework/vuejs3/template/files/gitignore.d.ts +2 -2
  166. package/types/plugins/project/framework/vuejs3/template/files/index.html.d.ts +2 -2
  167. package/types/plugins/project/framework/vuejs3/template/files/npmrc.d.ts +2 -2
  168. package/types/plugins/project/framework/vuejs3/template/files/postcss.config.cjs.d.ts +2 -2
  169. package/types/plugins/project/framework/vuejs3/template/files/prettierignore.d.ts +2 -2
  170. package/types/plugins/project/framework/vuejs3/template/files/prettierrc.yml.d.ts +2 -2
  171. package/types/plugins/project/framework/vuejs3/template/files/src/App.vue.d.ts +2 -2
  172. package/types/plugins/project/framework/vuejs3/template/files/src/main.d.ts +2 -2
  173. package/types/plugins/project/framework/vuejs3/template/files/src/utils/utils.d.ts +2 -2
  174. package/types/plugins/project/framework/vuejs3/template/files/src/views/baseIndexA/tabs.d.ts +2 -2
  175. package/types/plugins/project/framework/vuejs3/template/files/src/views/baseIndexA/welcome.vue.d.ts +2 -2
  176. package/types/plugins/project/framework/vuejs3/template/files/src/vite-env.d.ts +2 -2
  177. package/types/plugins/project/framework/vuejs3/template/files/tsconfig.json.d.ts +2 -2
  178. package/types/plugins/project/framework/vuejs3/template/files/tsconfig.node.json.d.ts +2 -2
  179. package/types/plugins/project/framework/vuejs3/template/files/vite.config.ts.d.ts +2 -2
  180. package/types/plugins/project/framework/vuejs3/template/index.d.ts +3 -3
  181. package/types/plugins/project/framework/vuejs3/template/static-files.d.ts +2 -2
  182. package/types/plugins/project/i18n.d.ts +3 -3
  183. package/types/plugins/project/utils.d.ts +3 -3
  184. package/types/polyfills/buffer.d.ts +1 -1
  185. package/types/postprocessor/index.d.ts +2 -2
  186. package/types/postprocessor/prettier/index.d.ts +8 -8
  187. package/types/publisher/disk/index.d.ts +13 -13
  188. package/types/publisher/disk/utils.d.ts +9 -9
  189. package/types/publisher/zip/index.d.ts +14 -14
  190. package/types/publisher/zip/utils.d.ts +5 -5
  191. package/types/solutions/icejs.d.ts +18 -18
  192. package/types/solutions/icejs3.d.ts +15 -15
  193. package/types/solutions/rax-app.d.ts +27 -27
  194. package/types/solutions/vuejs3.d.ts +22 -22
  195. package/types/standalone-loader.d.ts +17 -17
  196. package/types/standalone-worker.d.ts +1 -1
  197. package/types/standalone.d.ts +260 -260
  198. package/types/types/analyze.d.ts +5 -5
  199. package/types/types/column-type.d.ts +316 -316
  200. package/types/types/core.d.ts +197 -197
  201. package/types/types/datasource-extra-base.d.ts +32 -32
  202. package/types/types/datasource-page-helper.d.ts +30 -30
  203. package/types/types/deps.d.ts +36 -36
  204. package/types/types/error.d.ts +10 -10
  205. package/types/types/file.d.ts +14 -14
  206. package/types/types/index.d.ts +8 -8
  207. package/types/types/intermediate.d.ts +234 -234
  208. package/types/types/jsx.d.ts +34 -34
  209. package/types/types/publisher.d.ts +14 -14
  210. package/types/types/tab.d.ts +6 -6
  211. package/types/utils/OrderedSet.d.ts +9 -9
  212. package/types/utils/Scope.d.ts +12 -12
  213. package/types/utils/ScopeBindings.d.ts +20 -20
  214. package/types/utils/aopHelper.d.ts +2 -2
  215. package/types/utils/apiHandler.d.ts +4 -4
  216. package/types/utils/changeCase.d.ts +10 -10
  217. package/types/utils/columnType.d.ts +1 -1
  218. package/types/utils/common.d.ts +14 -14
  219. package/types/utils/compositeType.d.ts +3 -3
  220. package/types/utils/dataSource.d.ts +17 -17
  221. package/types/utils/debug.d.ts +2 -2
  222. package/types/utils/encodeJsxAttrString.d.ts +1 -1
  223. package/types/utils/errors.d.ts +4 -4
  224. package/types/utils/expressionParser.d.ts +16 -16
  225. package/types/utils/format.d.ts +1 -1
  226. package/types/utils/index.d.ts +15 -15
  227. package/types/utils/jsExpression.d.ts +50 -50
  228. package/types/utils/jsSlot.d.ts +2 -2
  229. package/types/utils/jsxHelpers.d.ts +5 -5
  230. package/types/utils/nodeToJSX.d.ts +32 -32
  231. package/types/utils/nodeToTemplate.d.ts +17 -17
  232. package/types/utils/pathHelper.d.ts +6 -6
  233. package/types/utils/requestHandle.d.ts +77 -77
  234. package/types/utils/resultHelper.d.ts +51 -51
  235. package/types/utils/routerHandle.d.ts +11 -11
  236. package/types/utils/schema.d.ts +24 -24
  237. package/types/utils/templateHelper.d.ts +11 -11
  238. package/types/utils/theme.d.ts +9 -9
  239. package/types/utils/validate.d.ts +8 -8
  240. package/types/utils/version.d.ts +1 -1
@@ -1,197 +1,197 @@
1
- import { IPublicTypeCompositeArray, IPublicTypeCompositeObject, IPublicTypeJSExpression, IPublicTypeJSFunction, IPublicTypeJSONArray, IPublicTypeJSONObject, IPublicTypeJSSlot, IPublicTypeNodeDataType, IPublicTypeProjectSchema, ResultDir, ResultFile } from '@alilc/lowcode-types';
2
- import type { ProjectBuilderInitOptions } from '../generator/ProjectBuilder';
3
- import { IScopeBindings } from '../utils/ScopeBindings';
4
- import { IParseResult } from './intermediate';
5
- export declare enum FileType {
6
- CSS = "css",
7
- SCSS = "scss",
8
- LESS = "less",
9
- HTML = "html",
10
- JS = "js",
11
- MJS = "mjs",
12
- JSX = "jsx",
13
- TS = "ts",
14
- MTS = "mts",
15
- TSX = "tsx",
16
- JSON = "json",
17
- MD = "md",
18
- VUE = "vue"
19
- }
20
- export declare enum ChunkType {
21
- AST = "ast",
22
- STRING = "string",
23
- JSON = "json"
24
- }
25
- export declare enum PluginType {
26
- COMPONENT = "component",
27
- UTILS = "utils",
28
- I18N = "i18n"
29
- }
30
- export type ChunkContent = string | any;
31
- export type CodeGeneratorFunction<T> = (content: T) => string;
32
- export interface ICodeChunk {
33
- type: ChunkType;
34
- fileType: string;
35
- name: string;
36
- subModule?: string;
37
- content: ChunkContent;
38
- linkAfter: string[];
39
- ext?: Record<string, unknown>;
40
- zIndex?: number;
41
- }
42
- export interface IBaseCodeStruct {
43
- chunks: ICodeChunk[];
44
- depNames: string[];
45
- }
46
- export interface ICodeStruct extends IBaseCodeStruct {
47
- ir: any;
48
- contextData: IContextData;
49
- }
50
- /** 上下文数据,用来在插件之间共享一些数据 */
51
- export interface IContextData extends IProjectBuilderOptions {
52
- /**
53
- * 其他自定义数据
54
- * (三方自定义插件也可以在此放一些数据,建议起个长一点的名称,用自己的插件名做前缀,以防冲突)
55
- */
56
- [key: string]: any;
57
- /**
58
- * 是否使用了 Ref 的 API (this.$/this.$$)
59
- * */
60
- useRefApi?: boolean;
61
- }
62
- export type BuilderComponentPlugin = (initStruct: ICodeStruct) => Promise<ICodeStruct>;
63
- export type BuilderComponentPluginFactory<T> = (config?: T) => BuilderComponentPlugin;
64
- export interface IChunkBuilder {
65
- run: (ir: any, initialStructure?: ICodeStruct) => Promise<{
66
- chunks: ICodeChunk[][];
67
- }>;
68
- getPlugins: () => BuilderComponentPlugin[];
69
- addPlugin: (plugin: BuilderComponentPlugin) => void;
70
- }
71
- export interface ICodeBuilder {
72
- link: (chunkDefinitions: ICodeChunk[]) => string;
73
- generateByType: (type: string, content: unknown) => string;
74
- }
75
- export interface ICompiledModule {
76
- files: ResultFile[];
77
- }
78
- export interface IModuleBuilder {
79
- generateModule: (input: unknown) => Promise<ICompiledModule>;
80
- generateModuleCode: (schema: IPublicTypeProjectSchema | string) => Promise<ResultDir>;
81
- linkCodeChunks: (chunks: Record<string, ICodeChunk[]>, fileName: string) => ResultFile[];
82
- addPlugin: (plugin: BuilderComponentPlugin) => void;
83
- }
84
- /**
85
- * 引擎对外接口
86
- *
87
- * @export
88
- * @interface ICodeGenerator
89
- */
90
- export interface ICodeGenerator {
91
- /**
92
- * 出码接口,把 Schema 转换成代码文件系统描述
93
- *
94
- * @param {(IPublicTypeProjectSchema)} schema 传入的 Schema
95
- * @returns {ResultDir}
96
- * @memberof ICodeGenerator
97
- */
98
- toCode: (schema: IPublicTypeProjectSchema) => Promise<ResultDir>;
99
- }
100
- export interface ISchemaParser {
101
- validate: (schema: IPublicTypeProjectSchema) => boolean;
102
- parse: (schema: IPublicTypeProjectSchema | string) => IParseResult;
103
- }
104
- export interface IProjectTemplate {
105
- slots: Record<string, IProjectSlot>;
106
- generateTemplate: (data: IParseResult) => ResultDir | Promise<ResultDir>;
107
- }
108
- export interface IProjectSlot {
109
- path: string[];
110
- fileName?: string;
111
- }
112
- export interface IProjectPlugins {
113
- [slotName: string]: BuilderComponentPlugin[];
114
- }
115
- export interface IProjectBuilderOptions {
116
- /** 是否处于严格模式 (默认:否) */
117
- inStrictMode?: boolean;
118
- /**
119
- * 是否要容忍对 JSExpression 求值时的异常
120
- * 默认:true
121
- * 注:如果容忍异常,则会在求值时包裹 try-catch 块,
122
- * catch 到异常时默认会抛出一个 CustomEvent 事件里面包含异常信息和求值的表达式
123
- */
124
- tolerateEvalErrors?: boolean;
125
- /**
126
- * 容忍异常的时候的的错误处理语句块
127
- * 默认:无
128
- * 您可以设置为一个语句块,比如:
129
- * window.dispatchEvent(new CustomEvent('lowcode-eval-error', { error, expr }))
130
- *
131
- * 一般可以结合埋点监控模块用来监控求值异常
132
- *
133
- * 其中:
134
- * - error: 异常信息
135
- * - expr: 求值的表达式
136
- */
137
- evalErrorsHandler?: string;
138
- /**
139
- * Hook which is used to customize original options, we can reorder/add/remove plugins/processors
140
- * of the existing solution.
141
- */
142
- customizeBuilderOptions?(originalOptions: ProjectBuilderInitOptions): ProjectBuilderInitOptions;
143
- }
144
- export interface IProjectBuilder {
145
- generateProject: (schema: IPublicTypeProjectSchema | string | IPublicTypeProjectSchema[], resourceList: ResourceListType[]) => Promise<ResultDir>;
146
- }
147
- /** 项目级别的前置处理器 */
148
- export type ProjectPreProcessor = (schema: IPublicTypeProjectSchema) => Promise<IPublicTypeProjectSchema> | IPublicTypeProjectSchema;
149
- export interface ProjectPostProcessorOptions {
150
- parseResult?: IParseResult;
151
- template?: IProjectTemplate;
152
- }
153
- /** 项目级别的后置处理器 */
154
- export type ProjectPostProcessor = (result: ResultDir, schema: IPublicTypeProjectSchema, originalSchema: IPublicTypeProjectSchema | string, options: ProjectPostProcessorOptions) => Promise<ResultDir> | ResultDir;
155
- /** 模块级别的后置处理器的工厂方法 */
156
- export type PostProcessorFactory<T> = (config?: T) => PostProcessor;
157
- /** 模块级别的后置处理器 */
158
- export type PostProcessor = (content: string, fileType: string, name?: string) => string;
159
- export interface IPluginOptions {
160
- fileDirDepth: number;
161
- }
162
- export type BaseGenerator<I, T, C> = (input: I, scope: IScope, config?: C, next?: BaseGenerator<I, T, C>) => T;
163
- type CompositeTypeGenerator<I, T> = BaseGenerator<I, T, CompositeValueGeneratorOptions> | Array<BaseGenerator<I, T, CompositeValueGeneratorOptions>>;
164
- export type NodeGenerator<T> = (nodeItem: IPublicTypeNodeDataType, scope: IScope) => T;
165
- export interface HandlerSet<T> {
166
- string?: CompositeTypeGenerator<string, T>;
167
- boolean?: CompositeTypeGenerator<boolean, T>;
168
- number?: CompositeTypeGenerator<number, T>;
169
- expression?: CompositeTypeGenerator<IPublicTypeJSExpression, T>;
170
- function?: CompositeTypeGenerator<IPublicTypeJSFunction, T>;
171
- slot?: CompositeTypeGenerator<IPublicTypeJSSlot, T>;
172
- array?: CompositeTypeGenerator<IPublicTypeJSONArray | IPublicTypeCompositeArray, T>;
173
- object?: CompositeTypeGenerator<IPublicTypeJSONObject | IPublicTypeCompositeObject, T>;
174
- }
175
- export interface CompositeValueGeneratorOptions {
176
- handlers?: HandlerSet<string>;
177
- nodeGenerator?: NodeGenerator<string>;
178
- tolerateEvalErrors?: boolean;
179
- }
180
- /**
181
- * 作用域定义,维护作用域内定义,支持作用域链上溯
182
- */
183
- export interface IScope {
184
- readonly parent: IScope | null;
185
- readonly bindings?: IScopeBindings;
186
- createSubScope: (ownIndentifiers: string[]) => IScope;
187
- }
188
- /**
189
- * 页面参数
190
- */
191
- export interface ResourceListType {
192
- title: string;
193
- slug: string;
194
- id: string;
195
- firstPage: 'true' | 'false';
196
- }
197
- export {};
1
+ import { IPublicTypeCompositeArray, IPublicTypeCompositeObject, IPublicTypeJSExpression, IPublicTypeJSFunction, IPublicTypeJSONArray, IPublicTypeJSONObject, IPublicTypeJSSlot, IPublicTypeNodeDataType, IPublicTypeProjectSchema, ResultDir, ResultFile } from '@alilc/lowcode-types';
2
+ import type { ProjectBuilderInitOptions } from '../generator/ProjectBuilder';
3
+ import { IScopeBindings } from '../utils/ScopeBindings';
4
+ import { IParseResult } from './intermediate';
5
+ export declare enum FileType {
6
+ CSS = "css",
7
+ SCSS = "scss",
8
+ LESS = "less",
9
+ HTML = "html",
10
+ JS = "js",
11
+ MJS = "mjs",
12
+ JSX = "jsx",
13
+ TS = "ts",
14
+ MTS = "mts",
15
+ TSX = "tsx",
16
+ JSON = "json",
17
+ MD = "md",
18
+ VUE = "vue"
19
+ }
20
+ export declare enum ChunkType {
21
+ AST = "ast",
22
+ STRING = "string",
23
+ JSON = "json"
24
+ }
25
+ export declare enum PluginType {
26
+ COMPONENT = "component",
27
+ UTILS = "utils",
28
+ I18N = "i18n"
29
+ }
30
+ export type ChunkContent = string | any;
31
+ export type CodeGeneratorFunction<T> = (content: T) => string;
32
+ export interface ICodeChunk {
33
+ type: ChunkType;
34
+ fileType: string;
35
+ name: string;
36
+ subModule?: string;
37
+ content: ChunkContent;
38
+ linkAfter: string[];
39
+ ext?: Record<string, unknown>;
40
+ zIndex?: number;
41
+ }
42
+ export interface IBaseCodeStruct {
43
+ chunks: ICodeChunk[];
44
+ depNames: string[];
45
+ }
46
+ export interface ICodeStruct extends IBaseCodeStruct {
47
+ ir: any;
48
+ contextData: IContextData;
49
+ }
50
+ /** 上下文数据,用来在插件之间共享一些数据 */
51
+ export interface IContextData extends IProjectBuilderOptions {
52
+ /**
53
+ * 其他自定义数据
54
+ * (三方自定义插件也可以在此放一些数据,建议起个长一点的名称,用自己的插件名做前缀,以防冲突)
55
+ */
56
+ [key: string]: any;
57
+ /**
58
+ * 是否使用了 Ref 的 API (this.$/this.$$)
59
+ * */
60
+ useRefApi?: boolean;
61
+ }
62
+ export type BuilderComponentPlugin = (initStruct: ICodeStruct) => Promise<ICodeStruct>;
63
+ export type BuilderComponentPluginFactory<T> = (config?: T) => BuilderComponentPlugin;
64
+ export interface IChunkBuilder {
65
+ run: (ir: any, initialStructure?: ICodeStruct) => Promise<{
66
+ chunks: ICodeChunk[][];
67
+ }>;
68
+ getPlugins: () => BuilderComponentPlugin[];
69
+ addPlugin: (plugin: BuilderComponentPlugin) => void;
70
+ }
71
+ export interface ICodeBuilder {
72
+ link: (chunkDefinitions: ICodeChunk[]) => string;
73
+ generateByType: (type: string, content: unknown) => string;
74
+ }
75
+ export interface ICompiledModule {
76
+ files: ResultFile[];
77
+ }
78
+ export interface IModuleBuilder {
79
+ generateModule: (input: unknown) => Promise<ICompiledModule>;
80
+ generateModuleCode: (schema: IPublicTypeProjectSchema | string) => Promise<ResultDir>;
81
+ linkCodeChunks: (chunks: Record<string, ICodeChunk[]>, fileName: string) => ResultFile[];
82
+ addPlugin: (plugin: BuilderComponentPlugin) => void;
83
+ }
84
+ /**
85
+ * 引擎对外接口
86
+ *
87
+ * @export
88
+ * @interface ICodeGenerator
89
+ */
90
+ export interface ICodeGenerator {
91
+ /**
92
+ * 出码接口,把 Schema 转换成代码文件系统描述
93
+ *
94
+ * @param {(IPublicTypeProjectSchema)} schema 传入的 Schema
95
+ * @returns {ResultDir}
96
+ * @memberof ICodeGenerator
97
+ */
98
+ toCode: (schema: IPublicTypeProjectSchema) => Promise<ResultDir>;
99
+ }
100
+ export interface ISchemaParser {
101
+ validate: (schema: IPublicTypeProjectSchema) => boolean;
102
+ parse: (schema: IPublicTypeProjectSchema | string) => IParseResult;
103
+ }
104
+ export interface IProjectTemplate {
105
+ slots: Record<string, IProjectSlot>;
106
+ generateTemplate: (data: IParseResult) => ResultDir | Promise<ResultDir>;
107
+ }
108
+ export interface IProjectSlot {
109
+ path: string[];
110
+ fileName?: string;
111
+ }
112
+ export interface IProjectPlugins {
113
+ [slotName: string]: BuilderComponentPlugin[];
114
+ }
115
+ export interface IProjectBuilderOptions {
116
+ /** 是否处于严格模式 (默认:否) */
117
+ inStrictMode?: boolean;
118
+ /**
119
+ * 是否要容忍对 JSExpression 求值时的异常
120
+ * 默认:true
121
+ * 注:如果容忍异常,则会在求值时包裹 try-catch 块,
122
+ * catch 到异常时默认会抛出一个 CustomEvent 事件里面包含异常信息和求值的表达式
123
+ */
124
+ tolerateEvalErrors?: boolean;
125
+ /**
126
+ * 容忍异常的时候的的错误处理语句块
127
+ * 默认:无
128
+ * 您可以设置为一个语句块,比如:
129
+ * window.dispatchEvent(new CustomEvent('lowcode-eval-error', { error, expr }))
130
+ *
131
+ * 一般可以结合埋点监控模块用来监控求值异常
132
+ *
133
+ * 其中:
134
+ * - error: 异常信息
135
+ * - expr: 求值的表达式
136
+ */
137
+ evalErrorsHandler?: string;
138
+ /**
139
+ * Hook which is used to customize original options, we can reorder/add/remove plugins/processors
140
+ * of the existing solution.
141
+ */
142
+ customizeBuilderOptions?(originalOptions: ProjectBuilderInitOptions): ProjectBuilderInitOptions;
143
+ }
144
+ export interface IProjectBuilder {
145
+ generateProject: (schema: IPublicTypeProjectSchema | string | IPublicTypeProjectSchema[], resourceList: ResourceListType[]) => Promise<ResultDir>;
146
+ }
147
+ /** 项目级别的前置处理器 */
148
+ export type ProjectPreProcessor = (schema: IPublicTypeProjectSchema) => Promise<IPublicTypeProjectSchema> | IPublicTypeProjectSchema;
149
+ export interface ProjectPostProcessorOptions {
150
+ parseResult?: IParseResult;
151
+ template?: IProjectTemplate;
152
+ }
153
+ /** 项目级别的后置处理器 */
154
+ export type ProjectPostProcessor = (result: ResultDir, schema: IPublicTypeProjectSchema, originalSchema: IPublicTypeProjectSchema | string, options: ProjectPostProcessorOptions) => Promise<ResultDir> | ResultDir;
155
+ /** 模块级别的后置处理器的工厂方法 */
156
+ export type PostProcessorFactory<T> = (config?: T) => PostProcessor;
157
+ /** 模块级别的后置处理器 */
158
+ export type PostProcessor = (content: string, fileType: string, name?: string) => string;
159
+ export interface IPluginOptions {
160
+ fileDirDepth: number;
161
+ }
162
+ export type BaseGenerator<I, T, C> = (input: I, scope: IScope, config?: C, next?: BaseGenerator<I, T, C>) => T;
163
+ type CompositeTypeGenerator<I, T> = BaseGenerator<I, T, CompositeValueGeneratorOptions> | Array<BaseGenerator<I, T, CompositeValueGeneratorOptions>>;
164
+ export type NodeGenerator<T> = (nodeItem: IPublicTypeNodeDataType, scope: IScope) => T;
165
+ export interface HandlerSet<T> {
166
+ string?: CompositeTypeGenerator<string, T>;
167
+ boolean?: CompositeTypeGenerator<boolean, T>;
168
+ number?: CompositeTypeGenerator<number, T>;
169
+ expression?: CompositeTypeGenerator<IPublicTypeJSExpression, T>;
170
+ function?: CompositeTypeGenerator<IPublicTypeJSFunction, T>;
171
+ slot?: CompositeTypeGenerator<IPublicTypeJSSlot, T>;
172
+ array?: CompositeTypeGenerator<IPublicTypeJSONArray | IPublicTypeCompositeArray, T>;
173
+ object?: CompositeTypeGenerator<IPublicTypeJSONObject | IPublicTypeCompositeObject, T>;
174
+ }
175
+ export interface CompositeValueGeneratorOptions {
176
+ handlers?: HandlerSet<string>;
177
+ nodeGenerator?: NodeGenerator<string>;
178
+ tolerateEvalErrors?: boolean;
179
+ }
180
+ /**
181
+ * 作用域定义,维护作用域内定义,支持作用域链上溯
182
+ */
183
+ export interface IScope {
184
+ readonly parent: IScope | null;
185
+ readonly bindings?: IScopeBindings;
186
+ createSubScope: (ownIndentifiers: string[]) => IScope;
187
+ }
188
+ /**
189
+ * 页面参数
190
+ */
191
+ export interface ResourceListType {
192
+ title: string;
193
+ slug: string;
194
+ id: string;
195
+ firstPage: 'true' | 'false';
196
+ }
197
+ export {};
@@ -1,32 +1,32 @@
1
- export interface DataSourceExtraBaseType {
2
- /**
3
- * 标题
4
- */
5
- title?: string;
6
- /**
7
- * 是否显示标题
8
- */
9
- showTitle?: boolean;
10
- /**
11
- * 是否显示
12
- */
13
- visible?: boolean;
14
- }
15
- export interface ComponentSettingResult {
16
- /**
17
- * 设置的字段
18
- */
19
- key: string;
20
- /**
21
- * 设置的值
22
- */
23
- value: string;
24
- }
25
- /**
26
- * 请求参数的itemList
27
- */
28
- export interface ItemList {
29
- columnName: string;
30
- orderBy?: 'desc' | 'asc';
31
- columnValue?: string;
32
- }
1
+ export interface DataSourceExtraBaseType {
2
+ /**
3
+ * 标题
4
+ */
5
+ title?: string;
6
+ /**
7
+ * 是否显示标题
8
+ */
9
+ showTitle?: boolean;
10
+ /**
11
+ * 是否显示
12
+ */
13
+ visible?: boolean;
14
+ }
15
+ export interface ComponentSettingResult {
16
+ /**
17
+ * 设置的字段
18
+ */
19
+ key: string;
20
+ /**
21
+ * 设置的值
22
+ */
23
+ value: string;
24
+ }
25
+ /**
26
+ * 请求参数的itemList
27
+ */
28
+ export interface ItemList {
29
+ columnName: string;
30
+ orderBy?: 'desc' | 'asc';
31
+ columnValue?: string;
32
+ }
@@ -1,30 +1,30 @@
1
- import { DataSourceExtraBaseType } from './datasource-extra-base';
2
- export interface DatasourcePageHelperProps extends DataSourceExtraBaseType {
3
- /**
4
- * 默认值
5
- */
6
- defaultValue?: DataSourcePageHelperType;
7
- }
8
- /**
9
- * 数据源分页参数子项类型
10
- */
11
- export interface DataSourcePageHelperTypeItem {
12
- /**
13
- * 字段名称
14
- */
15
- field: string;
16
- /**
17
- * 值
18
- */
19
- value: number;
20
- }
21
- export interface DataSourcePageHelperType {
22
- /**
23
- * 页数信息
24
- */
25
- page: DataSourcePageHelperTypeItem;
26
- /**
27
- * 行数信息
28
- */
29
- rows: DataSourcePageHelperTypeItem;
30
- }
1
+ import { DataSourceExtraBaseType } from './datasource-extra-base';
2
+ export interface DatasourcePageHelperProps extends DataSourceExtraBaseType {
3
+ /**
4
+ * 默认值
5
+ */
6
+ defaultValue?: DataSourcePageHelperType;
7
+ }
8
+ /**
9
+ * 数据源分页参数子项类型
10
+ */
11
+ export interface DataSourcePageHelperTypeItem {
12
+ /**
13
+ * 字段名称
14
+ */
15
+ field: string;
16
+ /**
17
+ * 值
18
+ */
19
+ value: number;
20
+ }
21
+ export interface DataSourcePageHelperType {
22
+ /**
23
+ * 页数信息
24
+ */
25
+ page: DataSourcePageHelperTypeItem;
26
+ /**
27
+ * 行数信息
28
+ */
29
+ rows: DataSourcePageHelperTypeItem;
30
+ }
@@ -1,36 +1,36 @@
1
- export interface INpmPackage {
2
- package: string;
3
- version: string;
4
- }
5
- /**
6
- * 外部依赖描述
7
- *
8
- * @export
9
- * @interface IExternalDependency
10
- */
11
- export interface IExternalDependency extends INpmPackage, IDependency {
12
- }
13
- export declare enum InternalDependencyType {
14
- PAGE = "pages",
15
- BLOCK = "components",
16
- COMPONENT = "components",
17
- UTILS = "utils"
18
- }
19
- export declare enum DependencyType {
20
- External = "External",
21
- Internal = "Internal"
22
- }
23
- export interface IInternalDependency extends IDependency {
24
- type: InternalDependencyType;
25
- moduleName: string;
26
- }
27
- export interface IDependency {
28
- destructuring: boolean;
29
- exportName: string;
30
- subName?: string;
31
- main?: string;
32
- dependencyType?: DependencyType;
33
- componentName?: string;
34
- package?: string;
35
- devMode: string;
36
- }
1
+ export interface INpmPackage {
2
+ package: string;
3
+ version: string;
4
+ }
5
+ /**
6
+ * 外部依赖描述
7
+ *
8
+ * @export
9
+ * @interface IExternalDependency
10
+ */
11
+ export interface IExternalDependency extends INpmPackage, IDependency {
12
+ }
13
+ export declare enum InternalDependencyType {
14
+ PAGE = "pages",
15
+ BLOCK = "components",
16
+ COMPONENT = "components",
17
+ UTILS = "utils"
18
+ }
19
+ export declare enum DependencyType {
20
+ External = "External",
21
+ Internal = "Internal"
22
+ }
23
+ export interface IInternalDependency extends IDependency {
24
+ type: InternalDependencyType;
25
+ moduleName: string;
26
+ }
27
+ export interface IDependency {
28
+ destructuring: boolean;
29
+ exportName: string;
30
+ subName?: string;
31
+ main?: string;
32
+ dependencyType?: DependencyType;
33
+ componentName?: string;
34
+ package?: string;
35
+ devMode: string;
36
+ }
@@ -1,10 +1,10 @@
1
- export declare class CodeGeneratorError extends Error {
2
- readonly detail?: unknown;
3
- constructor(message: string, detail?: unknown);
4
- }
5
- export declare class ComponentValidationError extends CodeGeneratorError {
6
- }
7
- export declare class CompatibilityError extends CodeGeneratorError {
8
- }
9
- export declare class PublisherError extends CodeGeneratorError {
10
- }
1
+ export declare class CodeGeneratorError extends Error {
2
+ readonly detail?: unknown;
3
+ constructor(message: string, detail?: unknown);
4
+ }
5
+ export declare class ComponentValidationError extends CodeGeneratorError {
6
+ }
7
+ export declare class CompatibilityError extends CodeGeneratorError {
8
+ }
9
+ export declare class PublisherError extends CodeGeneratorError {
10
+ }
@@ -1,14 +1,14 @@
1
- /// <reference types="node" />
2
- /**
3
- * 扁平文件信息(层级结构隐含在 pathName 中)
4
- */
5
- export interface FlattenFile {
6
- /**
7
- * 文件路径
8
- */
9
- pathName: string;
10
- /**
11
- * 文件内容
12
- */
13
- content: string | Buffer;
14
- }
1
+ /// <reference types="node" />
2
+ /**
3
+ * 扁平文件信息(层级结构隐含在 pathName 中)
4
+ */
5
+ export interface FlattenFile {
6
+ /**
7
+ * 文件路径
8
+ */
9
+ pathName: string;
10
+ /**
11
+ * 文件内容
12
+ */
13
+ content: string | Buffer;
14
+ }
@@ -1,8 +1,8 @@
1
- export * from './core';
2
- export * from './deps';
3
- export * from './error';
4
- export * from './analyze';
5
- export * from './intermediate';
6
- export * from './publisher';
7
- export * from './jsx';
8
- export * from './tab';
1
+ export * from './core';
2
+ export * from './deps';
3
+ export * from './error';
4
+ export * from './analyze';
5
+ export * from './intermediate';
6
+ export * from './publisher';
7
+ export * from './jsx';
8
+ export * from './tab';