@mybricks/to-code-taro 1.0.0

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 (181) hide show
  1. package/dist/cjs/abstractEventTypeDef.d.ts +11 -0
  2. package/dist/cjs/abstractEventTypeDef.js +93 -0
  3. package/dist/cjs/core/comlib/Index.js +45 -0
  4. package/dist/cjs/core/comlib/_ScanQrcode.js +60 -0
  5. package/dist/cjs/core/comlib/_SetStorage.js +76 -0
  6. package/dist/cjs/core/comlib/_ShowToast.js +96 -0
  7. package/dist/cjs/core/mybricks/MyBricksDescriptor.js +213 -0
  8. package/dist/cjs/core/mybricks/Subject.js +115 -0
  9. package/dist/cjs/core/mybricks/constant.js +70 -0
  10. package/dist/cjs/core/mybricks/context.js +33 -0
  11. package/dist/cjs/core/mybricks/createEnv.js +39 -0
  12. package/dist/cjs/core/mybricks/createJSHandle.js +150 -0
  13. package/dist/cjs/core/mybricks/createModuleEventsHandle.js +49 -0
  14. package/dist/cjs/core/mybricks/createReactiveInputHandler.js +63 -0
  15. package/dist/cjs/core/mybricks/event.js +70 -0
  16. package/dist/cjs/core/mybricks/index.js +871 -0
  17. package/dist/cjs/core/mybricks/log.js +38 -0
  18. package/dist/cjs/core/mybricks/utils.js +69 -0
  19. package/dist/cjs/core/mybricks/variables.js +217 -0
  20. package/dist/cjs/core/utils/ComContext.js +39 -0
  21. package/dist/cjs/core/utils/index.js +88 -0
  22. package/dist/cjs/core/utils/useContext.js +53 -0
  23. package/dist/cjs/core/utils/with.js +84 -0
  24. package/dist/cjs/generate/generateTaroProjectJson.d.ts +24 -0
  25. package/dist/cjs/generate/generateTaroProjectJson.js +101 -0
  26. package/dist/cjs/generate/generateTaroTempalteJson.d.ts +15 -0
  27. package/dist/cjs/generate/generateTaroTempalteJson.js +103 -0
  28. package/dist/cjs/generate/utils/appConfig.d.ts +21 -0
  29. package/dist/cjs/generate/utils/appConfig.js +47 -0
  30. package/dist/cjs/generate/utils/commonDir.d.ts +21 -0
  31. package/dist/cjs/generate/utils/commonDir.js +50 -0
  32. package/dist/cjs/generate/utils/fileNode.d.ts +17 -0
  33. package/dist/cjs/generate/utils/fileNode.js +57 -0
  34. package/dist/cjs/generate/utils/index.d.ts +7 -0
  35. package/dist/cjs/generate/utils/index.js +29 -0
  36. package/dist/cjs/generate/utils/tabBarImages.d.ts +14 -0
  37. package/dist/cjs/generate/utils/tabBarImages.js +36 -0
  38. package/dist/cjs/handleCom.d.ts +31 -0
  39. package/dist/cjs/handleCom.js +260 -0
  40. package/dist/cjs/handleDom.d.ts +19 -0
  41. package/dist/cjs/handleDom.js +86 -0
  42. package/dist/cjs/handleExtension.d.ts +10 -0
  43. package/dist/cjs/handleExtension.js +300 -0
  44. package/dist/cjs/handleGlobal.d.ts +21 -0
  45. package/dist/cjs/handleGlobal.js +155 -0
  46. package/dist/cjs/handleModule.d.ts +15 -0
  47. package/dist/cjs/handleModule.js +108 -0
  48. package/dist/cjs/handleSlot.d.ts +27 -0
  49. package/dist/cjs/handleSlot.js +197 -0
  50. package/dist/cjs/index.d.ts +3 -0
  51. package/dist/cjs/index.js +44 -0
  52. package/dist/cjs/taro-template.json +5370 -0
  53. package/dist/cjs/toCodeTaro.d.ts +130 -0
  54. package/dist/cjs/toCodeTaro.js +427 -0
  55. package/dist/cjs/utils/code/component.d.ts +19 -0
  56. package/dist/cjs/utils/code/component.js +85 -0
  57. package/dist/cjs/utils/code/index.d.ts +18 -0
  58. package/dist/cjs/utils/code/index.js +71 -0
  59. package/dist/cjs/utils/code/renderManager.d.ts +22 -0
  60. package/dist/cjs/utils/code/renderManager.js +80 -0
  61. package/dist/cjs/utils/code/scene.d.ts +19 -0
  62. package/dist/cjs/utils/code/scene.js +82 -0
  63. package/dist/cjs/utils/convertNamespace.d.ts +11 -0
  64. package/dist/cjs/utils/convertNamespace.js +43 -0
  65. package/dist/cjs/utils/genJSModules.d.ts +12 -0
  66. package/dist/cjs/utils/genJSModules.js +116 -0
  67. package/dist/cjs/utils/getComponentClassName.d.ts +16 -0
  68. package/dist/cjs/utils/getComponentClassName.js +47 -0
  69. package/dist/cjs/utils/handlePageConfig.d.ts +24 -0
  70. package/dist/cjs/utils/handlePageConfig.js +73 -0
  71. package/dist/cjs/utils/handleProcess.d.ts +9 -0
  72. package/dist/cjs/utils/handleProcess.js +370 -0
  73. package/dist/cjs/utils/index.d.ts +62 -0
  74. package/dist/cjs/utils/index.js +321 -0
  75. package/dist/cjs/utils/pageConfig/converter.d.ts +17 -0
  76. package/dist/cjs/utils/pageConfig/converter.js +83 -0
  77. package/dist/cjs/utils/pageConfig/index.d.ts +10 -0
  78. package/dist/cjs/utils/pageConfig/index.js +33 -0
  79. package/dist/cjs/utils/pageConfig/pageConfig.d.ts +10 -0
  80. package/dist/cjs/utils/pageConfig/pageConfig.js +87 -0
  81. package/dist/cjs/utils/pageConfig/saveBase64Image.d.ts +14 -0
  82. package/dist/cjs/utils/pageConfig/saveBase64Image.js +81 -0
  83. package/dist/cjs/utils/pageConfig/tabBarConfig.d.ts +13 -0
  84. package/dist/cjs/utils/pageConfig/tabBarConfig.js +74 -0
  85. package/dist/cjs/utils/pageConfig/types.d.ts +68 -0
  86. package/dist/cjs/utils/pageConfig/types.js +17 -0
  87. package/dist/cjs/utils/pageConfig/validator.d.ts +13 -0
  88. package/dist/cjs/utils/pageConfig/validator.js +67 -0
  89. package/dist/cjs/utils/pxtransform.d.ts +28 -0
  90. package/dist/cjs/utils/pxtransform.js +102 -0
  91. package/dist/esm/abstractEventTypeDef.d.ts +11 -0
  92. package/dist/esm/abstractEventTypeDef.js +63 -0
  93. package/dist/esm/core/comlib/Index.js +3 -0
  94. package/dist/esm/core/comlib/_ScanQrcode.js +27 -0
  95. package/dist/esm/core/comlib/_SetStorage.js +52 -0
  96. package/dist/esm/core/comlib/_ShowToast.js +68 -0
  97. package/dist/esm/core/mybricks/MyBricksDescriptor.js +232 -0
  98. package/dist/esm/core/mybricks/Subject.js +143 -0
  99. package/dist/esm/core/mybricks/constant.js +18 -0
  100. package/dist/esm/core/mybricks/context.js +5 -0
  101. package/dist/esm/core/mybricks/createEnv.js +9 -0
  102. package/dist/esm/core/mybricks/createJSHandle.js +138 -0
  103. package/dist/esm/core/mybricks/createModuleEventsHandle.js +26 -0
  104. package/dist/esm/core/mybricks/createReactiveInputHandler.js +40 -0
  105. package/dist/esm/core/mybricks/event.js +44 -0
  106. package/dist/esm/core/mybricks/index.js +952 -0
  107. package/dist/esm/core/mybricks/log.js +12 -0
  108. package/dist/esm/core/mybricks/utils.js +41 -0
  109. package/dist/esm/core/mybricks/variables.js +190 -0
  110. package/dist/esm/core/utils/ComContext.js +10 -0
  111. package/dist/esm/core/utils/index.js +57 -0
  112. package/dist/esm/core/utils/useContext.js +24 -0
  113. package/dist/esm/core/utils/with.js +67 -0
  114. package/dist/esm/generate/generateTaroProjectJson.d.ts +24 -0
  115. package/dist/esm/generate/generateTaroProjectJson.js +102 -0
  116. package/dist/esm/generate/generateTaroTempalteJson.d.ts +15 -0
  117. package/dist/esm/generate/generateTaroTempalteJson.js +94 -0
  118. package/dist/esm/generate/utils/appConfig.d.ts +21 -0
  119. package/dist/esm/generate/utils/appConfig.js +30 -0
  120. package/dist/esm/generate/utils/commonDir.d.ts +21 -0
  121. package/dist/esm/generate/utils/commonDir.js +36 -0
  122. package/dist/esm/generate/utils/fileNode.d.ts +17 -0
  123. package/dist/esm/generate/utils/fileNode.js +49 -0
  124. package/dist/esm/generate/utils/index.d.ts +7 -0
  125. package/dist/esm/generate/utils/index.js +8 -0
  126. package/dist/esm/generate/utils/tabBarImages.d.ts +14 -0
  127. package/dist/esm/generate/utils/tabBarImages.js +15 -0
  128. package/dist/esm/handleCom.d.ts +31 -0
  129. package/dist/esm/handleCom.js +297 -0
  130. package/dist/esm/handleDom.d.ts +19 -0
  131. package/dist/esm/handleDom.js +63 -0
  132. package/dist/esm/handleExtension.d.ts +10 -0
  133. package/dist/esm/handleExtension.js +243 -0
  134. package/dist/esm/handleGlobal.d.ts +21 -0
  135. package/dist/esm/handleGlobal.js +117 -0
  136. package/dist/esm/handleModule.d.ts +15 -0
  137. package/dist/esm/handleModule.js +78 -0
  138. package/dist/esm/handleSlot.d.ts +27 -0
  139. package/dist/esm/handleSlot.js +205 -0
  140. package/dist/esm/index.d.ts +3 -0
  141. package/dist/esm/index.js +3 -0
  142. package/dist/esm/taro-template.json +5370 -0
  143. package/dist/esm/toCodeTaro.d.ts +130 -0
  144. package/dist/esm/toCodeTaro.js +452 -0
  145. package/dist/esm/utils/code/component.d.ts +19 -0
  146. package/dist/esm/utils/code/component.js +54 -0
  147. package/dist/esm/utils/code/index.d.ts +18 -0
  148. package/dist/esm/utils/code/index.js +51 -0
  149. package/dist/esm/utils/code/renderManager.d.ts +22 -0
  150. package/dist/esm/utils/code/renderManager.js +62 -0
  151. package/dist/esm/utils/code/scene.d.ts +19 -0
  152. package/dist/esm/utils/code/scene.js +47 -0
  153. package/dist/esm/utils/convertNamespace.d.ts +11 -0
  154. package/dist/esm/utils/convertNamespace.js +27 -0
  155. package/dist/esm/utils/genJSModules.d.ts +12 -0
  156. package/dist/esm/utils/genJSModules.js +44 -0
  157. package/dist/esm/utils/getComponentClassName.d.ts +16 -0
  158. package/dist/esm/utils/getComponentClassName.js +37 -0
  159. package/dist/esm/utils/handlePageConfig.d.ts +24 -0
  160. package/dist/esm/utils/handlePageConfig.js +68 -0
  161. package/dist/esm/utils/handleProcess.d.ts +9 -0
  162. package/dist/esm/utils/handleProcess.js +379 -0
  163. package/dist/esm/utils/index.d.ts +62 -0
  164. package/dist/esm/utils/index.js +345 -0
  165. package/dist/esm/utils/pageConfig/converter.d.ts +17 -0
  166. package/dist/esm/utils/pageConfig/converter.js +105 -0
  167. package/dist/esm/utils/pageConfig/index.d.ts +10 -0
  168. package/dist/esm/utils/pageConfig/index.js +11 -0
  169. package/dist/esm/utils/pageConfig/pageConfig.d.ts +10 -0
  170. package/dist/esm/utils/pageConfig/pageConfig.js +60 -0
  171. package/dist/esm/utils/pageConfig/saveBase64Image.d.ts +14 -0
  172. package/dist/esm/utils/pageConfig/saveBase64Image.js +105 -0
  173. package/dist/esm/utils/pageConfig/tabBarConfig.d.ts +13 -0
  174. package/dist/esm/utils/pageConfig/tabBarConfig.js +82 -0
  175. package/dist/esm/utils/pageConfig/types.d.ts +68 -0
  176. package/dist/esm/utils/pageConfig/types.js +1 -0
  177. package/dist/esm/utils/pageConfig/validator.d.ts +13 -0
  178. package/dist/esm/utils/pageConfig/validator.js +64 -0
  179. package/dist/esm/utils/pxtransform.d.ts +28 -0
  180. package/dist/esm/utils/pxtransform.js +121 -0
  181. package/package.json +74 -0
@@ -0,0 +1,205 @@
1
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
2
+ import { ImportManager, indentation, convertStyleAryToCss, convertRootStyle, getRootComponentClassName } from "./utils";
3
+ import handleCom from "./handleCom";
4
+ import { handleProcess } from "./utils/handleProcess";
5
+ import { genRootDefineCode, genSlotDefineCode, genComponentTemplate, wrapInEffect } from "./utils/code/scene";
6
+ import { RenderManager } from "./utils/code/renderManager";
7
+ import handleDom from "./handleDom";
8
+ import handleModule from "./handleModule";
9
+ var handleSlot = function handleSlot(ui, config) {
10
+ var _meta, _props$style;
11
+ var importManager = new ImportManager(config);
12
+ var _ui$props = ui.props,
13
+ props = _ui$props === void 0 ? {} : _ui$props,
14
+ _ui$children = ui.children,
15
+ children = _ui$children === void 0 ? [] : _ui$children;
16
+ var uiCode = "";
17
+ var jsCode = "";
18
+ var effectCode = ""; // 专门存放需要在 useEffect 中执行的代码
19
+ var slotId = ((_meta = ui.meta) === null || _meta === void 0 ? void 0 : _meta.id) || ui.id;
20
+
21
+ // 创建或使用传入的 renderManager
22
+ // 如果是根组件,创建新的 renderManager;否则使用传入的(共享同一个实例)
23
+ var renderManager = config.checkIsRoot() ? new RenderManager() : config.renderManager || new RenderManager();
24
+ var currentProvider = config.getCurrentProvider();
25
+ var addDependencyImport = config.addParentDependencyImport || importManager.addImport.bind(importManager);
26
+ var indent2 = indentation(config.codeStyle.indent);
27
+ var envDefineCode = "";
28
+ if (config.checkIsRoot()) {
29
+ // 只有根节点需要注入 useRef 和基础定义
30
+ addDependencyImport({
31
+ packageName: "react",
32
+ dependencyNames: ["useRef", "useEffect", "useState"],
33
+ importType: "named"
34
+ });
35
+ // 添加 Taro View 组件的导入
36
+ addDependencyImport({
37
+ packageName: "@tarojs/components",
38
+ dependencyNames: ["View"],
39
+ importType: "named"
40
+ });
41
+ // 添加工具包的 import
42
+ var utilsPackageName = config.getUtilsPackageName();
43
+ addDependencyImport({
44
+ packageName: utilsPackageName,
45
+ dependencyNames: ["WithCom", "WithWrapper"],
46
+ importType: "named"
47
+ });
48
+ addDependencyImport({
49
+ packageName: "./index.less",
50
+ dependencyNames: [],
51
+ importType: "module"
52
+ });
53
+ envDefineCode = genRootDefineCode(indent2, utilsPackageName);
54
+ // 添加 useAppContext 的导入(根节点)
55
+ addDependencyImport({
56
+ packageName: config.getComponentPackageName(),
57
+ dependencyNames: ["useAppContext"],
58
+ importType: "named"
59
+ });
60
+ } else {
61
+ // 插槽内部也需要声明自己的 inputs/outputs 变量
62
+ envDefineCode = genSlotDefineCode(indent2);
63
+ // 非根节点也需要 useAppContext,需要添加导入
64
+ addDependencyImport({
65
+ packageName: config.getComponentPackageName(),
66
+ dependencyNames: ["useAppContext"],
67
+ importType: "named"
68
+ });
69
+ }
70
+
71
+ // 不再需要初始化控制器对象,WithCom 内部会处理
72
+
73
+ var cssContent = convertStyleAryToCss((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.styleAry, slotId);
74
+ var nextConfig = _objectSpread(_objectSpread({}, config), {}, {
75
+ depth: config.depth + 1,
76
+ addParentDependencyImport: addDependencyImport,
77
+ renderManager: renderManager // 传递 renderManager
78
+ });
79
+ children.forEach(function (child) {
80
+ if (child.type === "com") {
81
+ var _handleCom = handleCom(child, nextConfig),
82
+ _ui = _handleCom.ui,
83
+ js = _handleCom.js,
84
+ childCssContent = _handleCom.cssContent;
85
+ uiCode += uiCode ? "\n" + _ui : _ui;
86
+ jsCode += js;
87
+ if (childCssContent) {
88
+ cssContent += (cssContent ? "\n" : "") + childCssContent;
89
+ }
90
+ } else if (child.type === "module") {
91
+ var _handleModule = handleModule(child, nextConfig),
92
+ _ui2 = _handleModule.ui,
93
+ _childCssContent = _handleModule.cssContent;
94
+ uiCode += uiCode ? "\n" + _ui2 : _ui2;
95
+ if (_childCssContent) {
96
+ cssContent += (cssContent ? "\n" : "") + _childCssContent;
97
+ }
98
+ } else {
99
+ var _handleDom = handleDom(child, nextConfig),
100
+ _ui3 = _handleDom.ui,
101
+ _js = _handleDom.js,
102
+ _childCssContent2 = _handleDom.cssContent;
103
+ uiCode += uiCode ? "\n" + _ui3 : _ui3;
104
+ jsCode += _js;
105
+ if (_childCssContent2) {
106
+ cssContent += (cssContent ? "\n" : "") + _childCssContent2;
107
+ }
108
+ }
109
+ });
110
+
111
+ // 识别场景级逻辑(如 Start 节点)
112
+ if (config.checkIsRoot()) {
113
+ var _ui$meta;
114
+ var _scene = ((_ui$meta = ui.meta) === null || _ui$meta === void 0 ? void 0 : _ui$meta.scene) || ui.meta;
115
+ // 深度识别:尝试从 scene.events 或 ui.events 中获取
116
+ var sceneEvents = (_scene === null || _scene === void 0 ? void 0 : _scene.events) || ui.events || [];
117
+ if (Array.isArray(sceneEvents)) {
118
+ sceneEvents.forEach(function (eventInfo) {
119
+ var type = eventInfo.type,
120
+ diagramId = eventInfo.diagramId,
121
+ active = eventInfo.active;
122
+ // 识别"启动"或"自动执行"类事件
123
+ if (active !== false && type === "defined" && diagramId) {
124
+ var event = config.getEventByDiagramId(diagramId);
125
+ if (event) {
126
+ var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
127
+ target: 'comRefs.current',
128
+ depth: 2,
129
+ addParentDependencyImport: addDependencyImport,
130
+ getParams: function getParams() {
131
+ return {};
132
+ }
133
+ })).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.'); // 移除 slot_Index 作用域
134
+
135
+ if (process.trim()) {
136
+ effectCode += "\n".concat(indent2, " ").concat(process.trim());
137
+ }
138
+ }
139
+ }
140
+ });
141
+ }
142
+ }
143
+
144
+ // 如果是根组件,生成所有 render 函数定义代码(放在 inputs/outputs 映射之后)
145
+ var renderCodeBlock = "";
146
+ if (config.checkIsRoot() && renderManager) {
147
+ var renderIndent = indentation(config.codeStyle.indent);
148
+ renderCodeBlock = renderManager.toCode(renderIndent);
149
+ }
150
+ // 识别并提取 jsCode 中可能存在的自执行代码(如果有的话)
151
+ // render 函数定义放在 jsCode(inputs/outputs 映射)之后
152
+ var combinedJsCode = "".concat(envDefineCode).concat(jsCode).concat(renderCodeBlock ? "\n".concat(renderCodeBlock) : "").concat(wrapInEffect(indent2, effectCode));
153
+ var indent = indentation(config.codeStyle.indent * config.depth);
154
+
155
+ // 识别初始化逻辑(如果 handleCom 或逻辑处理层能标记哪些是初始化逻辑更好,
156
+ // 目前我们可以在这里做一层包装,或者在 handleCom 生成时就包装好)
157
+ // 暂时在根场景中,如果有特定的初始化执行逻辑,统一放入 useEffect
158
+
159
+ // 生成 Taro View 组件
160
+ var mergedStyle = _objectSpread(_objectSpread({
161
+ width: '100%',
162
+ height: '100%'
163
+ }, ui.style), props.style || {});
164
+ var styleCode = JSON.stringify(convertRootStyle(_objectSpread(_objectSpread({}, mergedStyle), {}, {
165
+ layout: ui.layout || mergedStyle.layout
166
+ })));
167
+
168
+ // 获取根组件的 className(只在根组件时获取)
169
+ var scene = config.getCurrentScene();
170
+ var rootClassName = getRootComponentClassName(scene, config.checkIsRoot());
171
+ var classNameAttr = rootClassName ? " className='".concat(rootClassName, "'") : '';
172
+ var uiResult = "".concat(indent, "<View").concat(classNameAttr, " style={").concat(styleCode, "}>\n").concat(uiCode, "\n").concat(indent, "</View>");
173
+
174
+ // 如果是根场景,需要将生成的代码添加到结果中
175
+ if (config.checkIsRoot()) {
176
+ var _config$getFileName, _meta2, _meta3;
177
+ var _scene2 = config.getCurrentScene();
178
+ var fileName = ((_config$getFileName = config.getFileName) === null || _config$getFileName === void 0 ? void 0 : _config$getFileName.call(config, ui.meta.slotId)) || ui.meta.title || "index";
179
+ var componentId = ((_meta2 = ui.meta) === null || _meta2 === void 0 ? void 0 : _meta2.id) || ui.id || ((_meta3 = ui.meta) === null || _meta3 === void 0 ? void 0 : _meta3.slotId) || "Index";
180
+ // 兼容首字符为数字的情况,添加 I 前缀
181
+ var componentName = "I".concat(String(componentId).replace(/[^a-zA-Z0-9]/g, '_'));
182
+
183
+ // 生成完整的组件代码,使用函数组件模板
184
+ var componentCode = genComponentTemplate({
185
+ componentName: componentName,
186
+ combinedJsCode: combinedJsCode,
187
+ uiResult: uiResult
188
+ });
189
+ config.add({
190
+ importManager: importManager,
191
+ content: componentCode,
192
+ cssContent: cssContent,
193
+ name: fileName
194
+ });
195
+ }
196
+ return {
197
+ js: jsCode,
198
+ combinedJsCode: combinedJsCode,
199
+ ui: uiResult,
200
+ cssContent: cssContent,
201
+ slots: [],
202
+ scopeSlots: []
203
+ };
204
+ };
205
+ export default handleSlot;
@@ -0,0 +1,3 @@
1
+ export { default } from './toCodeTaro';
2
+ export { default as generateTaroProjectJson } from './generate/generateTaroProjectJson';
3
+ export { default as generateTaroTempalteJson } from './generate/generateTaroTempalteJson';
@@ -0,0 +1,3 @@
1
+ export { default } from "./toCodeTaro";
2
+ export { default as generateTaroProjectJson } from "./generate/generateTaroProjectJson";
3
+ export { default as generateTaroTempalteJson } from "./generate/generateTaroTempalteJson";