@mybricks/to-code-taro 1.0.2 → 1.0.3

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 (197) hide show
  1. package/README.md +58 -0
  2. package/dist/cjs/core/comlib/{Index.js → index.js} +4 -4
  3. package/dist/cjs/core/mybricks/index.js +47 -47
  4. package/dist/cjs/core/utils/ComContext.js +3 -0
  5. package/dist/cjs/core/utils/hooks.js +125 -0
  6. package/dist/cjs/core/utils/index.js +21 -57
  7. package/dist/cjs/core/utils/page.js +67 -0
  8. package/dist/cjs/core/utils/useContext.js +2 -1
  9. package/dist/cjs/generate/generateTaroProjectJson.d.ts +3 -14
  10. package/dist/cjs/generate/generateTaroProjectJson.js +9 -6
  11. package/dist/cjs/generate/utils/tabBarImages.d.ts +1 -1
  12. package/dist/cjs/handleCom.d.ts +1 -1
  13. package/dist/cjs/handleCom.js +91 -177
  14. package/dist/cjs/handleDom.js +7 -44
  15. package/dist/cjs/handleExtension.d.ts +2 -2
  16. package/dist/cjs/handleExtension.js +5 -5
  17. package/dist/cjs/handleGlobal.d.ts +2 -12
  18. package/dist/cjs/handleGlobal.js +23 -7
  19. package/dist/cjs/handleModule.js +3 -3
  20. package/dist/cjs/handleSlot.d.ts +2 -9
  21. package/dist/cjs/handleSlot.js +47 -150
  22. package/dist/cjs/processors/processComEvents.d.ts +9 -0
  23. package/dist/cjs/processors/processComEvents.js +122 -0
  24. package/dist/cjs/processors/processModule.d.ts +31 -0
  25. package/dist/cjs/processors/processModule.js +125 -0
  26. package/dist/cjs/processors/processScene.d.ts +32 -0
  27. package/dist/cjs/processors/processScene.js +124 -0
  28. package/dist/cjs/processors/processSceneLogic.d.ts +4 -0
  29. package/dist/cjs/processors/processSceneLogic.js +166 -0
  30. package/dist/cjs/taro-template.json +15 -7
  31. package/dist/cjs/toCodeTaro.d.ts +26 -5
  32. package/dist/cjs/toCodeTaro.js +59 -343
  33. package/dist/cjs/utils/builder/buildResult.d.ts +21 -0
  34. package/dist/cjs/utils/builder/buildResult.js +91 -0
  35. package/dist/cjs/utils/common/ImportManager.d.ts +19 -0
  36. package/dist/cjs/utils/common/ImportManager.js +105 -0
  37. package/dist/cjs/utils/common/helper.d.ts +2 -0
  38. package/dist/cjs/utils/common/helper.js +31 -0
  39. package/dist/cjs/utils/common/object.d.ts +5 -0
  40. package/dist/cjs/utils/common/object.js +58 -0
  41. package/dist/cjs/utils/common/string.d.ts +8 -0
  42. package/dist/cjs/utils/common/string.js +46 -0
  43. package/dist/cjs/utils/{pageConfig → config/content}/converter.js +1 -1
  44. package/dist/cjs/utils/{pageConfig → config/content}/index.js +9 -9
  45. package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.js +12 -22
  46. package/dist/{esm/utils/pageConfig → cjs/utils/config/content}/saveBase64Image.d.ts +1 -1
  47. package/dist/cjs/utils/{pageConfig → config/content}/saveBase64Image.js +8 -17
  48. package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.js +9 -32
  49. package/dist/cjs/utils/config/content/types.js +17 -0
  50. package/dist/cjs/utils/{pageConfig → config/content}/validator.js +1 -1
  51. package/dist/{esm/utils → cjs/utils/config}/handlePageConfig.d.ts +1 -1
  52. package/dist/cjs/utils/{handlePageConfig.js → config/handlePageConfig.js} +4 -4
  53. package/dist/cjs/utils/context/buildContext.d.ts +24 -0
  54. package/dist/cjs/utils/context/buildContext.js +65 -0
  55. package/dist/cjs/utils/context/buildFrameMap.d.ts +16 -0
  56. package/dist/cjs/utils/context/buildFrameMap.js +106 -0
  57. package/dist/cjs/utils/context/buildGlobalData.d.ts +13 -0
  58. package/dist/cjs/utils/context/buildGlobalData.js +58 -0
  59. package/dist/cjs/utils/context/collectJSModules.d.ts +37 -0
  60. package/dist/cjs/utils/context/collectJSModules.js +91 -0
  61. package/dist/cjs/utils/context/createEventQueries.d.ts +45 -0
  62. package/dist/cjs/utils/context/createEventQueries.js +99 -0
  63. package/dist/cjs/utils/context/createProvider.d.ts +21 -0
  64. package/dist/cjs/utils/context/createProvider.js +49 -0
  65. package/dist/cjs/utils/index.d.ts +10 -62
  66. package/dist/cjs/utils/index.js +21 -282
  67. package/dist/cjs/utils/{convertNamespace.js → logic/convertNamespace.js} +1 -1
  68. package/dist/cjs/utils/{genJSModules.js → logic/genJSModules.js} +1 -1
  69. package/dist/{esm/utils → cjs/utils/logic}/handleProcess.d.ts +2 -2
  70. package/dist/cjs/utils/{handleProcess.js → logic/handleProcess.js} +14 -11
  71. package/dist/cjs/utils/logic/processChildren.d.ts +12 -0
  72. package/dist/cjs/utils/logic/processChildren.js +82 -0
  73. package/dist/cjs/utils/style/color.d.ts +4 -0
  74. package/dist/cjs/utils/style/color.js +45 -0
  75. package/dist/cjs/utils/style/converter.d.ts +7 -0
  76. package/dist/cjs/utils/style/converter.js +181 -0
  77. package/dist/cjs/utils/{getComponentClassName.js → style/getComponentClassName.js} +1 -1
  78. package/dist/cjs/utils/{pxtransform.js → style/pxtransform.js} +1 -1
  79. package/dist/cjs/utils/style/types.d.ts +23 -0
  80. package/dist/cjs/utils/{pageConfig → style}/types.js +1 -1
  81. package/dist/cjs/utils/{code → templates}/component.js +1 -1
  82. package/dist/cjs/utils/{code → templates}/index.js +4 -4
  83. package/dist/cjs/utils/{code → templates}/renderManager.js +1 -1
  84. package/dist/cjs/utils/{code → templates}/scene.js +1 -1
  85. package/dist/esm/core/mybricks/index.js +1 -1
  86. package/dist/esm/core/utils/ComContext.js +1 -0
  87. package/dist/esm/core/utils/hooks.js +118 -0
  88. package/dist/esm/core/utils/index.js +6 -57
  89. package/dist/esm/core/utils/page.js +50 -0
  90. package/dist/esm/core/utils/useContext.js +2 -1
  91. package/dist/esm/generate/generateTaroProjectJson.d.ts +3 -14
  92. package/dist/esm/generate/generateTaroProjectJson.js +27 -23
  93. package/dist/esm/generate/utils/tabBarImages.d.ts +1 -1
  94. package/dist/esm/handleCom.d.ts +1 -1
  95. package/dist/esm/handleCom.js +159 -244
  96. package/dist/esm/handleDom.js +9 -48
  97. package/dist/esm/handleExtension.d.ts +2 -2
  98. package/dist/esm/handleExtension.js +5 -5
  99. package/dist/esm/handleGlobal.d.ts +2 -12
  100. package/dist/esm/handleGlobal.js +17 -3
  101. package/dist/esm/handleModule.js +3 -3
  102. package/dist/esm/handleSlot.d.ts +2 -9
  103. package/dist/esm/handleSlot.js +97 -174
  104. package/dist/esm/processors/processComEvents.d.ts +9 -0
  105. package/dist/esm/processors/processComEvents.js +110 -0
  106. package/dist/esm/processors/processModule.d.ts +31 -0
  107. package/dist/esm/processors/processModule.js +126 -0
  108. package/dist/esm/processors/processScene.d.ts +32 -0
  109. package/dist/esm/processors/processScene.js +126 -0
  110. package/dist/esm/processors/processSceneLogic.d.ts +4 -0
  111. package/dist/esm/processors/processSceneLogic.js +160 -0
  112. package/dist/esm/taro-template.json +15 -7
  113. package/dist/esm/toCodeTaro.d.ts +26 -5
  114. package/dist/esm/toCodeTaro.js +96 -396
  115. package/dist/esm/utils/builder/buildResult.d.ts +21 -0
  116. package/dist/esm/utils/builder/buildResult.js +61 -0
  117. package/dist/esm/utils/common/ImportManager.d.ts +19 -0
  118. package/dist/esm/utils/common/ImportManager.js +103 -0
  119. package/dist/esm/utils/common/helper.d.ts +2 -0
  120. package/dist/esm/utils/common/helper.js +4 -0
  121. package/dist/esm/utils/common/object.d.ts +5 -0
  122. package/dist/esm/utils/common/object.js +32 -0
  123. package/dist/esm/utils/common/string.d.ts +8 -0
  124. package/dist/esm/utils/common/string.js +21 -0
  125. package/dist/esm/utils/config/content/pageConfig.js +40 -0
  126. package/dist/{cjs/utils/pageConfig → esm/utils/config/content}/saveBase64Image.d.ts +1 -1
  127. package/dist/esm/utils/{pageConfig → config/content}/saveBase64Image.js +11 -30
  128. package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.js +12 -34
  129. package/dist/{cjs/utils → esm/utils/config}/handlePageConfig.d.ts +1 -1
  130. package/dist/esm/utils/{handlePageConfig.js → config/handlePageConfig.js} +1 -1
  131. package/dist/esm/utils/context/buildContext.d.ts +24 -0
  132. package/dist/esm/utils/context/buildContext.js +53 -0
  133. package/dist/esm/utils/context/buildFrameMap.d.ts +16 -0
  134. package/dist/esm/utils/context/buildFrameMap.js +131 -0
  135. package/dist/esm/utils/context/buildGlobalData.d.ts +13 -0
  136. package/dist/esm/utils/context/buildGlobalData.js +44 -0
  137. package/dist/esm/utils/context/collectJSModules.d.ts +37 -0
  138. package/dist/esm/utils/context/collectJSModules.js +87 -0
  139. package/dist/esm/utils/context/createEventQueries.d.ts +45 -0
  140. package/dist/esm/utils/context/createEventQueries.js +98 -0
  141. package/dist/esm/utils/context/createProvider.d.ts +21 -0
  142. package/dist/esm/utils/context/createProvider.js +33 -0
  143. package/dist/esm/utils/index.d.ts +10 -62
  144. package/dist/esm/utils/index.js +12 -345
  145. package/dist/{cjs/utils → esm/utils/logic}/handleProcess.d.ts +2 -2
  146. package/dist/esm/utils/{handleProcess.js → logic/handleProcess.js} +11 -5
  147. package/dist/esm/utils/logic/processChildren.d.ts +12 -0
  148. package/dist/esm/utils/logic/processChildren.js +48 -0
  149. package/dist/esm/utils/style/color.d.ts +4 -0
  150. package/dist/esm/utils/style/color.js +17 -0
  151. package/dist/esm/utils/style/converter.d.ts +7 -0
  152. package/dist/esm/utils/style/converter.js +176 -0
  153. package/dist/esm/utils/style/types.d.ts +23 -0
  154. package/dist/esm/utils/style/types.js +1 -0
  155. package/package.json +1 -1
  156. package/dist/esm/utils/pageConfig/pageConfig.js +0 -60
  157. /package/dist/cjs/utils/{pageConfig → config/content}/converter.d.ts +0 -0
  158. /package/dist/cjs/utils/{pageConfig → config/content}/index.d.ts +0 -0
  159. /package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
  160. /package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
  161. /package/dist/cjs/utils/{pageConfig → config/content}/types.d.ts +0 -0
  162. /package/dist/cjs/utils/{pageConfig → config/content}/validator.d.ts +0 -0
  163. /package/dist/cjs/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
  164. /package/dist/cjs/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
  165. /package/dist/cjs/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
  166. /package/dist/cjs/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
  167. /package/dist/cjs/utils/{code → templates}/component.d.ts +0 -0
  168. /package/dist/cjs/utils/{code → templates}/index.d.ts +0 -0
  169. /package/dist/cjs/utils/{code → templates}/renderManager.d.ts +0 -0
  170. /package/dist/cjs/utils/{code → templates}/scene.d.ts +0 -0
  171. /package/dist/esm/core/comlib/{Index.js → index.js} +0 -0
  172. /package/dist/esm/utils/{pageConfig → config/content}/converter.d.ts +0 -0
  173. /package/dist/esm/utils/{pageConfig → config/content}/converter.js +0 -0
  174. /package/dist/esm/utils/{pageConfig → config/content}/index.d.ts +0 -0
  175. /package/dist/esm/utils/{pageConfig → config/content}/index.js +0 -0
  176. /package/dist/esm/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
  177. /package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
  178. /package/dist/esm/utils/{pageConfig → config/content}/types.d.ts +0 -0
  179. /package/dist/esm/utils/{pageConfig → config/content}/types.js +0 -0
  180. /package/dist/esm/utils/{pageConfig → config/content}/validator.d.ts +0 -0
  181. /package/dist/esm/utils/{pageConfig → config/content}/validator.js +0 -0
  182. /package/dist/esm/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
  183. /package/dist/esm/utils/{convertNamespace.js → logic/convertNamespace.js} +0 -0
  184. /package/dist/esm/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
  185. /package/dist/esm/utils/{genJSModules.js → logic/genJSModules.js} +0 -0
  186. /package/dist/esm/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
  187. /package/dist/esm/utils/{getComponentClassName.js → style/getComponentClassName.js} +0 -0
  188. /package/dist/esm/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
  189. /package/dist/esm/utils/{pxtransform.js → style/pxtransform.js} +0 -0
  190. /package/dist/esm/utils/{code → templates}/component.d.ts +0 -0
  191. /package/dist/esm/utils/{code → templates}/component.js +0 -0
  192. /package/dist/esm/utils/{code → templates}/index.d.ts +0 -0
  193. /package/dist/esm/utils/{code → templates}/index.js +0 -0
  194. /package/dist/esm/utils/{code → templates}/renderManager.d.ts +0 -0
  195. /package/dist/esm/utils/{code → templates}/renderManager.js +0 -0
  196. /package/dist/esm/utils/{code → templates}/scene.d.ts +0 -0
  197. /package/dist/esm/utils/{code → templates}/scene.js +0 -0
@@ -1,8 +1,6 @@
1
- var __create = Object.create;
2
1
  var __defProp = Object.defineProperty;
3
2
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
5
  var __export = (target, all) => {
8
6
  for (var name in all)
@@ -16,14 +14,6 @@ var __copyProps = (to, from, except, desc) => {
16
14
  }
17
15
  return to;
18
16
  };
19
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
- // If the importer is in node compatibility mode or this is not an ESM
21
- // file that has been converted to a CommonJS file using a Babel-
22
- // compatible transform (i.e. "__esModule" has not been set), then set
23
- // "default" to the CommonJS "module.exports" for node compatibility.
24
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
- mod
26
- ));
27
17
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
18
 
29
19
  // src/handleSlot.ts
@@ -33,160 +23,38 @@ __export(handleSlot_exports, {
33
23
  });
34
24
  module.exports = __toCommonJS(handleSlot_exports);
35
25
  var import_utils = require("./utils");
36
- var import_handleCom = __toESM(require("./handleCom"));
37
- var import_handleProcess = require("./utils/handleProcess");
38
- var import_scene = require("./utils/code/scene");
39
- var import_renderManager = require("./utils/code/renderManager");
40
- var import_handleDom = __toESM(require("./handleDom"));
41
- var import_handleModule = __toESM(require("./handleModule"));
26
+ var import_scene = require("./utils/templates/scene");
27
+ var import_renderManager = require("./utils/templates/renderManager");
28
+ var import_processChildren = require("./utils/logic/processChildren");
29
+ var import_processSceneLogic = require("./processors/processSceneLogic");
42
30
  var handleSlot = (ui, config) => {
43
- var _a, _b, _c, _d, _e, _f;
31
+ var _a, _b;
44
32
  const importManager = new import_utils.ImportManager(config);
45
33
  const { props = {}, children = [] } = ui;
46
- let uiCode = "";
47
- let jsCode = "";
48
- let effectCode = "";
34
+ const isRoot = config.checkIsRoot();
49
35
  const slotId = ((_a = ui.meta) == null ? void 0 : _a.id) || ui.id;
50
- const renderManager = config.checkIsRoot() ? new import_renderManager.RenderManager() : config.renderManager || new import_renderManager.RenderManager();
51
- const currentProvider = config.getCurrentProvider();
52
36
  const addDependencyImport = config.addParentDependencyImport || importManager.addImport.bind(importManager);
37
+ setupImports(addDependencyImport, config, isRoot);
53
38
  const indent2 = (0, import_utils.indentation)(config.codeStyle.indent);
54
- let envDefineCode = "";
55
- if (config.checkIsRoot()) {
56
- addDependencyImport({
57
- packageName: "react",
58
- dependencyNames: ["useRef", "useEffect", "useState"],
59
- importType: "named"
60
- });
61
- addDependencyImport({
62
- packageName: "@tarojs/components",
63
- dependencyNames: ["View"],
64
- importType: "named"
65
- });
66
- const utilsPackageName = config.getUtilsPackageName();
67
- addDependencyImport({
68
- packageName: utilsPackageName,
69
- dependencyNames: ["WithCom", "WithWrapper"],
70
- importType: "named"
71
- });
72
- addDependencyImport({
73
- packageName: "./index.less",
74
- dependencyNames: [],
75
- importType: "module"
76
- });
77
- envDefineCode = (0, import_scene.genRootDefineCode)(indent2, utilsPackageName);
78
- addDependencyImport({
79
- packageName: config.getComponentPackageName(),
80
- dependencyNames: ["useAppContext"],
81
- importType: "named"
82
- });
83
- } else {
84
- envDefineCode = (0, import_scene.genSlotDefineCode)(indent2);
85
- addDependencyImport({
86
- packageName: config.getComponentPackageName(),
87
- dependencyNames: ["useAppContext"],
88
- importType: "named"
89
- });
90
- }
91
- let cssContent = (0, import_utils.convertStyleAryToCss)((_b = props.style) == null ? void 0 : _b.styleAry, slotId);
92
- const nextConfig = {
39
+ const envDefineCode = isRoot ? (0, import_scene.genRootDefineCode)(indent2, config.getUtilsPackageName()) : (0, import_scene.genSlotDefineCode)(indent2);
40
+ const renderManager = isRoot ? new import_renderManager.RenderManager() : config.renderManager || new import_renderManager.RenderManager();
41
+ const childResults = (0, import_processChildren.processChildren)(children, {
93
42
  ...config,
94
43
  depth: config.depth + 1,
95
44
  addParentDependencyImport: addDependencyImport,
96
45
  renderManager
97
- // 传递 renderManager
98
- };
99
- children.forEach((child) => {
100
- if (child.type === "com") {
101
- const { ui: ui2, js, cssContent: childCssContent } = (0, import_handleCom.default)(child, nextConfig);
102
- uiCode += uiCode ? "\n" + ui2 : ui2;
103
- jsCode += js;
104
- if (childCssContent) {
105
- cssContent += (cssContent ? "\n" : "") + childCssContent;
106
- }
107
- } else if (child.type === "module") {
108
- const { ui: ui2, cssContent: childCssContent } = (0, import_handleModule.default)(child, nextConfig);
109
- uiCode += uiCode ? "\n" + ui2 : ui2;
110
- if (childCssContent) {
111
- cssContent += (cssContent ? "\n" : "") + childCssContent;
112
- }
113
- } else {
114
- const { ui: ui2, js, cssContent: childCssContent } = (0, import_handleDom.default)(child, nextConfig);
115
- uiCode += uiCode ? "\n" + ui2 : ui2;
116
- jsCode += js;
117
- if (childCssContent) {
118
- cssContent += (cssContent ? "\n" : "") + childCssContent;
119
- }
120
- }
121
46
  });
122
- if (config.checkIsRoot()) {
123
- const scene2 = ((_c = ui.meta) == null ? void 0 : _c.scene) || ui.meta;
124
- const sceneEvents = (scene2 == null ? void 0 : scene2.events) || ui.events || [];
125
- if (Array.isArray(sceneEvents)) {
126
- sceneEvents.forEach((eventInfo) => {
127
- const { type, diagramId, active } = eventInfo;
128
- if (active !== false && type === "defined" && diagramId) {
129
- const event = config.getEventByDiagramId(diagramId);
130
- if (event) {
131
- const process = (0, import_handleProcess.handleProcess)(event, {
132
- ...config,
133
- target: "comRefs.current",
134
- depth: 2,
135
- addParentDependencyImport: addDependencyImport,
136
- getParams: () => ({})
137
- }).replace(/this\./g, "comRefs.current.").replace(/comRefs\.current\.([a-zA-Z0-9_]+)\.controller_/g, "comRefs.current.$1.").replace(/comRefs\.current\.slot_Index\./g, "comRefs.current.");
138
- if (process.trim()) {
139
- effectCode += `
140
- ${indent2} ${process.trim()}`;
141
- }
142
- }
143
- }
144
- });
145
- }
146
- }
147
- let renderCodeBlock = "";
148
- if (config.checkIsRoot() && renderManager) {
149
- const renderIndent = (0, import_utils.indentation)(config.codeStyle.indent);
150
- renderCodeBlock = renderManager.toCode(renderIndent);
151
- }
152
- const combinedJsCode = `${envDefineCode}${jsCode}${renderCodeBlock ? `
47
+ const effectCode = (0, import_processSceneLogic.processSceneLogic)(ui, config, addDependencyImport);
48
+ let cssContent = ((0, import_utils.convertStyleAryToCss)((_b = props.style) == null ? void 0 : _b.styleAry, slotId) || "") + (childResults.cssContent ? "\n" + childResults.cssContent : "");
49
+ let renderCodeBlock = isRoot && renderManager ? renderManager.toCode((0, import_utils.indentation)(config.codeStyle.indent)) : "";
50
+ const combinedJsCode = `${envDefineCode}${childResults.js}${renderCodeBlock ? `
153
51
  ${renderCodeBlock}` : ""}${(0, import_scene.wrapInEffect)(indent2, effectCode)}`;
154
- const indent = (0, import_utils.indentation)(config.codeStyle.indent * config.depth);
155
- const mergedStyle = {
156
- width: "100%",
157
- height: "100%",
158
- ...ui.style,
159
- ...props.style || {}
160
- };
161
- const styleCode = JSON.stringify((0, import_utils.convertRootStyle)({
162
- ...mergedStyle,
163
- layout: ui.layout || mergedStyle.layout
164
- }));
165
- const scene = config.getCurrentScene();
166
- const rootClassName = (0, import_utils.getRootComponentClassName)(scene, config.checkIsRoot());
167
- const classNameAttr = rootClassName ? ` className='${rootClassName}'` : "";
168
- const uiResult = `${indent}<View${classNameAttr} style={${styleCode}}>
169
- ${uiCode}
170
- ${indent}</View>`;
171
- if (config.checkIsRoot()) {
172
- const scene2 = config.getCurrentScene();
173
- const fileName = ((_d = config.getFileName) == null ? void 0 : _d.call(config, ui.meta.slotId)) || ui.meta.title || "index";
174
- const componentId = ((_e = ui.meta) == null ? void 0 : _e.id) || ui.id || ((_f = ui.meta) == null ? void 0 : _f.slotId) || "Index";
175
- const componentName = `I${String(componentId).replace(/[^a-zA-Z0-9]/g, "_")}`;
176
- const componentCode = (0, import_scene.genComponentTemplate)({
177
- componentName,
178
- combinedJsCode,
179
- uiResult
180
- });
181
- config.add({
182
- importManager,
183
- content: componentCode,
184
- cssContent,
185
- name: fileName
186
- });
52
+ const uiResult = generateSlotUi(ui, props, childResults.ui, config);
53
+ if (isRoot) {
54
+ finalizeRootComponent(ui, config, importManager, combinedJsCode, uiResult, cssContent);
187
55
  }
188
56
  return {
189
- js: jsCode,
57
+ js: childResults.js,
190
58
  combinedJsCode,
191
59
  ui: uiResult,
192
60
  cssContent,
@@ -194,4 +62,33 @@ ${indent}</View>`;
194
62
  scopeSlots: []
195
63
  };
196
64
  };
65
+ var setupImports = (addImport, config, isRoot) => {
66
+ const utilsPkg = config.getUtilsPackageName();
67
+ const comPkg = config.getComponentPackageName();
68
+ addImport({ packageName: "react", dependencyNames: ["useRef", "useEffect", "useState"], importType: "named" });
69
+ addImport({ packageName: "@tarojs/components", dependencyNames: ["View"], importType: "named" });
70
+ addImport({ packageName: utilsPkg, dependencyNames: ["WithCom", "WithWrapper"], importType: "named" });
71
+ addImport({ packageName: comPkg, dependencyNames: ["useAppContext"], importType: "named" });
72
+ if (isRoot) {
73
+ addImport({ packageName: "./index.less", dependencyNames: [], importType: "module" });
74
+ }
75
+ };
76
+ var generateSlotUi = (ui, props, childrenUi, config) => {
77
+ const indent = (0, import_utils.indentation)(config.codeStyle.indent * config.depth);
78
+ const mergedStyle = { width: "100%", height: "100%", ...ui.style || {}, ...props.style || {} };
79
+ const styleCode = JSON.stringify((0, import_utils.convertRootStyle)({ ...mergedStyle, layout: ui.layout || mergedStyle.layout }));
80
+ const rootClassName = (0, import_utils.getRootComponentClassName)(config.getCurrentScene(), config.checkIsRoot());
81
+ const classNameAttr = rootClassName ? ` className='${rootClassName}'` : "";
82
+ return `${indent}<View${classNameAttr} style={${styleCode}}>
83
+ ${childrenUi}
84
+ ${indent}</View>`;
85
+ };
86
+ var finalizeRootComponent = (ui, config, importManager, combinedJsCode, uiResult, cssContent) => {
87
+ var _a, _b, _c;
88
+ const fileName = ((_a = config.getFileName) == null ? void 0 : _a.call(config, ui.meta.slotId)) || ui.meta.title || "index";
89
+ const componentId = ((_b = ui.meta) == null ? void 0 : _b.id) || ui.id || ((_c = ui.meta) == null ? void 0 : _c.slotId) || "Index";
90
+ const componentName = `I${String(componentId).replace(/[^a-zA-Z0-9]/g, "_")}`;
91
+ const componentCode = (0, import_scene.genComponentTemplate)({ componentName, combinedJsCode, uiResult });
92
+ config.add({ importManager, content: componentCode, cssContent, name: fileName });
93
+ };
197
94
  var handleSlot_default = handleSlot;
@@ -0,0 +1,9 @@
1
+ import type { HandleComConfig, Com } from "../handleCom";
2
+ /**
3
+ * 处理组件事件
4
+ */
5
+ export declare const processComEvents: (com: Com, config: HandleComConfig) => {
6
+ comEventCode: string;
7
+ outputsConfig: Record<string, any>;
8
+ eventConfig: Record<string, any>;
9
+ };
@@ -0,0 +1,122 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/processors/processComEvents.ts
20
+ var processComEvents_exports = {};
21
+ __export(processComEvents_exports, {
22
+ processComEvents: () => processComEvents
23
+ });
24
+ module.exports = __toCommonJS(processComEvents_exports);
25
+ var import_utils = require("../utils");
26
+ var import_handleProcess = require("../utils/logic/handleProcess");
27
+ var processComEvents = (com, config) => {
28
+ const { meta, events } = com;
29
+ let comEventCode = "";
30
+ const outputsConfig = {};
31
+ const eventConfig = {};
32
+ const outputEvents = events || {};
33
+ Object.entries(outputEvents).forEach(([eventId, eventInfo]) => {
34
+ const { type, isAbstract, diagramId, schema, active } = eventInfo;
35
+ if (active === false)
36
+ return;
37
+ if (isAbstract) {
38
+ config.setAbstractEventTypeDefMap({
39
+ comId: com.meta.id,
40
+ eventId,
41
+ typeDef: config.getTypeDef(),
42
+ schema
43
+ });
44
+ return;
45
+ }
46
+ if (type === "fx") {
47
+ processFxEvent(eventId, com, config, (code) => {
48
+ comEventCode += code;
49
+ });
50
+ eventConfig[eventId] = { connected: true };
51
+ return;
52
+ }
53
+ if (type !== "defined" || !diagramId)
54
+ return;
55
+ const event = config.getEventByDiagramId(diagramId);
56
+ if (!event)
57
+ return;
58
+ const paramName = "value";
59
+ let process = (0, import_handleProcess.handleProcess)(event, {
60
+ ...config,
61
+ target: "comRefs.current",
62
+ depth: config.depth + 3,
63
+ addParentDependencyImport: config.addParentDependencyImport,
64
+ getParams: () => ({ [eventId]: paramName })
65
+ }).replace(/this\./g, "comRefs.current.").replace(
66
+ /comRefs\.current\.([a-zA-Z0-9_]+)\.controller_/g,
67
+ "comRefs.current.$1."
68
+ ).replace(/comRefs\.current\.slot_Index\./g, "comRefs.current.");
69
+ if (process.includes("pageParams")) {
70
+ config.addParentDependencyImport({
71
+ packageName: config.getComponentPackageName(),
72
+ dependencyNames: ["page", "SUBJECT_VALUE"],
73
+ importType: "named"
74
+ });
75
+ const indent = (0, import_utils.indentation)(config.codeStyle.indent * (config.depth + 3));
76
+ process = `${indent}const pageParams: any = page.getParams("${config.getCurrentScene().id}")[SUBJECT_VALUE];
77
+ ${process}`;
78
+ }
79
+ const handlerIndent = (0, import_utils.indentation)(config.codeStyle.indent * (config.depth + 2));
80
+ const handlerCode = `(${paramName}: any) => {
81
+ ${process}
82
+ ${handlerIndent}}`;
83
+ if (!outputsConfig[meta.id]) {
84
+ outputsConfig[meta.id] = {};
85
+ }
86
+ const onEventName = eventId.startsWith("on") ? eventId : `on${eventId.charAt(0).toUpperCase()}${eventId.slice(1)}`;
87
+ outputsConfig[meta.id][onEventName] = handlerCode;
88
+ eventConfig[eventId] = { connected: true };
89
+ });
90
+ return { comEventCode, outputsConfig, eventConfig };
91
+ };
92
+ var processFxEvent = (eventId, com, config, addCode) => {
93
+ const fxsMap = config.getFxsMap();
94
+ const currentProvider = config.getCurrentProvider();
95
+ const scene = config.getCurrentScene();
96
+ const pinProxy = scene.pinProxies[`${com.props.id}-${eventId}`];
97
+ if (!pinProxy)
98
+ return;
99
+ const fxProvider = fxsMap[pinProxy.frameId];
100
+ if (!fxProvider)
101
+ return;
102
+ const isGlobal = fxProvider.name === "global";
103
+ if (fxProvider.name !== currentProvider.name) {
104
+ if (isGlobal) {
105
+ config.addParentDependencyImport({
106
+ packageName: config.getComponentPackageName(),
107
+ dependencyNames: ["globalFxs"],
108
+ importType: "named"
109
+ });
110
+ } else {
111
+ config.addConsumer(fxProvider);
112
+ }
113
+ }
114
+ const indent = (0, import_utils.indentation)(config.codeStyle.indent * (config.depth + 2));
115
+ const code = `${indent}${eventId}: ${isGlobal ? "globalFxs" : `comRefs.current.${fxProvider.name}_Fxs`}.${pinProxy.frameId},
116
+ `;
117
+ addCode(code);
118
+ };
119
+ // Annotate the CommonJS export names for ESM import in node:
120
+ 0 && (module.exports = {
121
+ processComEvents
122
+ });
@@ -0,0 +1,31 @@
1
+ /**
2
+ * 处理模块(Module)
3
+ * 参考鸿蒙实现,将模块处理逻辑独立出来
4
+ */
5
+ import type { ToTaroCodeConfig, GeneratedFile } from "../toCodeTaro";
6
+ import toCode from "@mybricks/to-code-react/dist/cjs/toCode";
7
+ import { type Provider } from "../utils/context/createProvider";
8
+ import type { JSModulesMap } from "../utils/context/collectJSModules";
9
+ type ToCodeResult = ReturnType<typeof toCode>;
10
+ type Module = ToCodeResult["modules"][0];
11
+ interface ProcessModuleParams {
12
+ module: Module;
13
+ config: ToTaroCodeConfig;
14
+ globalVarTypeDef: Record<string, any>;
15
+ defaultFxsMap: Record<string, Provider>;
16
+ abstractEventTypeDefMap: Record<string, any>;
17
+ jsModulesMap: JSModulesMap;
18
+ getExtensionEventById: (id: string) => any;
19
+ getSceneById: (id: string) => any;
20
+ getFrameById?: (id: string) => any;
21
+ addResult: (result: GeneratedFile) => void;
22
+ }
23
+ /**
24
+ * 处理单个模块
25
+ */
26
+ export declare const processModule: (params: ProcessModuleParams) => void;
27
+ /**
28
+ * 处理所有模块
29
+ */
30
+ export declare const processModules: (modules: Module[], params: Omit<ProcessModuleParams, "module">) => void;
31
+ export {};
@@ -0,0 +1,125 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/processors/processModule.ts
30
+ var processModule_exports = {};
31
+ __export(processModule_exports, {
32
+ processModule: () => processModule,
33
+ processModules: () => processModules
34
+ });
35
+ module.exports = __toCommonJS(processModule_exports);
36
+ var import_handleSlot = __toESM(require("../handleSlot"));
37
+ var import_createProvider = require("../utils/context/createProvider");
38
+ var import_createEventQueries = require("../utils/context/createEventQueries");
39
+ var import_collectJSModules = require("../utils/context/collectJSModules");
40
+ var processModule = (params) => {
41
+ var _a;
42
+ const {
43
+ module: { scene, ui, event },
44
+ config,
45
+ globalVarTypeDef,
46
+ defaultFxsMap,
47
+ abstractEventTypeDefMap,
48
+ jsModulesMap,
49
+ getExtensionEventById,
50
+ getSceneById,
51
+ getFrameById,
52
+ addResult
53
+ } = params;
54
+ (0, import_collectJSModules.collectJSModulesFromScene)(scene, jsModulesMap);
55
+ const fileName = (_a = config.getFileName) == null ? void 0 : _a.call(config, ui.meta.slotId);
56
+ const currentProvider = (0, import_createProvider.createProvider)(fileName, true);
57
+ const providerMap = (0, import_createProvider.createProviderMap)(currentProvider);
58
+ const typeDef = {
59
+ vars: Object.assign({}, globalVarTypeDef),
60
+ inputs: {},
61
+ outputs: {}
62
+ };
63
+ const fxsMap = Object.assign({}, defaultFxsMap);
64
+ const eventQueries = (0, import_createEventQueries.createEventQueries)(event);
65
+ (0, import_handleSlot.default)(ui, {
66
+ ...config,
67
+ getCurrentScene: () => {
68
+ const originalScene = getSceneById(scene.id);
69
+ return { ...scene, ...originalScene, event };
70
+ },
71
+ add: (value) => {
72
+ addResult({
73
+ ...value,
74
+ type: scene.type,
75
+ meta: scene
76
+ });
77
+ },
78
+ addJSModule: (module2) => {
79
+ if (!jsModulesMap.has(module2.id)) {
80
+ jsModulesMap.set(module2.id, module2);
81
+ }
82
+ },
83
+ getEventByDiagramId: eventQueries.getEventByDiagramId,
84
+ getFrameInputEvent: eventQueries.getFrameInputEvent,
85
+ getVarEvents: eventQueries.getVarEvents,
86
+ getFxEvents: eventQueries.getFxEvents,
87
+ checkIsRoot: () => true,
88
+ getEffectEvent: eventQueries.getEffectEvent,
89
+ getCurrentProvider: () => currentProvider,
90
+ getRootProvider: () => currentProvider,
91
+ getProviderMap: () => providerMap,
92
+ getExtensionEventById,
93
+ getSceneById,
94
+ getFrameById,
95
+ depth: 0,
96
+ getTypeDef: () => typeDef,
97
+ getFxsMap: () => fxsMap,
98
+ setAbstractEventTypeDefMap: (params2) => {
99
+ const { comId, eventId, typeDef: typeDef2, schema } = params2;
100
+ if (!abstractEventTypeDefMap[comId]) {
101
+ abstractEventTypeDefMap[comId] = {
102
+ typeDef: typeDef2,
103
+ eventIdMap: {}
104
+ };
105
+ }
106
+ abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
107
+ },
108
+ getComponentController: ({ com }) => {
109
+ return com.id;
110
+ }
111
+ });
112
+ };
113
+ var processModules = (modules, params) => {
114
+ modules.forEach((module2) => {
115
+ processModule({
116
+ ...params,
117
+ module: module2
118
+ });
119
+ });
120
+ };
121
+ // Annotate the CommonJS export names for ESM import in node:
122
+ 0 && (module.exports = {
123
+ processModule,
124
+ processModules
125
+ });
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 处理场景(Scene)
3
+ * 参考鸿蒙实现,将场景处理逻辑独立出来
4
+ */
5
+ import type { ToTaroCodeConfig, GeneratedFile } from "../toCodeTaro";
6
+ import toCode from "@mybricks/to-code-react/dist/cjs/toCode";
7
+ import { type Provider } from "../utils/context/createProvider";
8
+ import type { JSModulesMap } from "../utils/context/collectJSModules";
9
+ type ToCodeResult = ReturnType<typeof toCode>;
10
+ type Scene = ToCodeResult["scenes"][0];
11
+ interface ProcessSceneParams {
12
+ scene: Scene;
13
+ config: ToTaroCodeConfig;
14
+ globalVarTypeDef: Record<string, any>;
15
+ defaultFxsMap: Record<string, Provider>;
16
+ abstractEventTypeDefMap: Record<string, any>;
17
+ jsModulesMap: JSModulesMap;
18
+ getExtensionEventById: (id: string) => any;
19
+ getSceneById: (id: string) => any;
20
+ getFrameById?: (id: string) => any;
21
+ pageConfigHandler: any;
22
+ addResult: (result: GeneratedFile) => void;
23
+ }
24
+ /**
25
+ * 处理单个场景
26
+ */
27
+ export declare const processScene: (params: ProcessSceneParams) => void;
28
+ /**
29
+ * 处理所有场景
30
+ */
31
+ export declare const processScenes: (scenes: Scene[], params: Omit<ProcessSceneParams, "scene">) => void;
32
+ export {};
@@ -0,0 +1,124 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/processors/processScene.ts
30
+ var processScene_exports = {};
31
+ __export(processScene_exports, {
32
+ processScene: () => processScene,
33
+ processScenes: () => processScenes
34
+ });
35
+ module.exports = __toCommonJS(processScene_exports);
36
+ var import_handleSlot = __toESM(require("../handleSlot"));
37
+ var import_createProvider = require("../utils/context/createProvider");
38
+ var import_createEventQueries = require("../utils/context/createEventQueries");
39
+ var import_collectJSModules = require("../utils/context/collectJSModules");
40
+ var processScene = (params) => {
41
+ var _a;
42
+ const {
43
+ scene: { scene, ui, event },
44
+ config,
45
+ globalVarTypeDef,
46
+ defaultFxsMap,
47
+ abstractEventTypeDefMap,
48
+ jsModulesMap,
49
+ getExtensionEventById,
50
+ getSceneById,
51
+ getFrameById,
52
+ pageConfigHandler
53
+ } = params;
54
+ (0, import_collectJSModules.collectJSModulesFromScene)(scene, jsModulesMap);
55
+ const fileName = (_a = config.getFileName) == null ? void 0 : _a.call(config, ui.meta.slotId);
56
+ const currentProvider = (0, import_createProvider.createProvider)(fileName, true);
57
+ const providerMap = (0, import_createProvider.createProviderMap)(currentProvider);
58
+ const typeDef = {
59
+ vars: Object.assign({}, globalVarTypeDef),
60
+ inputs: {},
61
+ outputs: {}
62
+ };
63
+ const fxsMap = Object.assign({}, defaultFxsMap);
64
+ const pageConfigContent = pageConfigHandler.handle(scene);
65
+ const eventQueries = (0, import_createEventQueries.createEventQueries)(event);
66
+ (0, import_handleSlot.default)(ui, {
67
+ ...config,
68
+ getCurrentScene: () => {
69
+ const originalScene = getSceneById(scene.id);
70
+ return { ...scene, ...originalScene, event };
71
+ },
72
+ add: (value) => {
73
+ params.addResult({
74
+ ...value,
75
+ type: scene.type ? scene.type : "normal",
76
+ meta: scene,
77
+ pageConfigContent
78
+ });
79
+ },
80
+ addJSModule: (module2) => {
81
+ if (!jsModulesMap.has(module2.id)) {
82
+ jsModulesMap.set(module2.id, module2);
83
+ }
84
+ },
85
+ getEventByDiagramId: eventQueries.getEventByDiagramId,
86
+ getFrameInputEvent: eventQueries.getFrameInputEvent,
87
+ getVarEvents: eventQueries.getVarEvents,
88
+ getFxEvents: eventQueries.getFxEvents,
89
+ checkIsRoot: () => true,
90
+ getEffectEvent: eventQueries.getEffectEvent,
91
+ getCurrentProvider: () => currentProvider,
92
+ getRootProvider: () => currentProvider,
93
+ getProviderMap: () => providerMap,
94
+ getExtensionEventById,
95
+ getSceneById,
96
+ getFrameById,
97
+ depth: 0,
98
+ getTypeDef: () => typeDef,
99
+ getFxsMap: () => fxsMap,
100
+ setAbstractEventTypeDefMap: (params2) => {
101
+ const { comId, eventId, typeDef: typeDef2, schema } = params2;
102
+ if (!abstractEventTypeDefMap[comId]) {
103
+ abstractEventTypeDefMap[comId] = {
104
+ typeDef: typeDef2,
105
+ eventIdMap: {}
106
+ };
107
+ }
108
+ abstractEventTypeDefMap[comId].eventIdMap[eventId] = schema;
109
+ }
110
+ });
111
+ };
112
+ var processScenes = (scenes, params) => {
113
+ scenes.forEach((scene) => {
114
+ processScene({
115
+ ...params,
116
+ scene
117
+ });
118
+ });
119
+ };
120
+ // Annotate the CommonJS export names for ESM import in node:
121
+ 0 && (module.exports = {
122
+ processScene,
123
+ processScenes
124
+ });