@mybricks/to-code-taro 1.0.7 → 1.1.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 (120) hide show
  1. package/dist/cjs/core/comlib/_Modal.js +68 -0
  2. package/dist/cjs/core/comlib/_TimerDelay.js +55 -30
  3. package/dist/cjs/core/comlib/index.js +3 -0
  4. package/dist/cjs/core/mybricks/log.js +0 -1
  5. package/dist/cjs/core/utils/hooks.js +3 -2
  6. package/dist/cjs/core/utils/slots.js +11 -5
  7. package/dist/cjs/core/utils/useContext.js +5 -3
  8. package/dist/cjs/core/utils/with.js +5 -6
  9. package/dist/cjs/generate/generateTaroProjectJson.js +18 -1
  10. package/dist/cjs/handleCom.js +47 -73
  11. package/dist/cjs/handleSlot.js +5 -3
  12. package/dist/cjs/processors/processComEvents.js +2 -3
  13. package/dist/cjs/processors/processModule.js +23 -0
  14. package/dist/cjs/processors/processScene.js +23 -0
  15. package/dist/cjs/processors/processSceneLogic.d.ts +4 -1
  16. package/dist/cjs/processors/processSceneLogic.js +72 -12
  17. package/dist/cjs/taro-template.json +68 -42
  18. package/dist/cjs/toCodeTaro.d.ts +14 -1
  19. package/dist/cjs/toCodeTaro.js +1 -0
  20. package/dist/cjs/utils/builder/buildResult.d.ts +1 -0
  21. package/dist/cjs/utils/builder/buildResult.js +8 -1
  22. package/dist/cjs/utils/common/helper.d.ts +10 -0
  23. package/dist/cjs/utils/common/helper.js +21 -0
  24. package/dist/cjs/utils/common/string.d.ts +10 -0
  25. package/dist/cjs/utils/common/string.js +13 -0
  26. package/dist/cjs/utils/config/content/converter.js +1 -0
  27. package/dist/cjs/utils/config/content/tabBarConfig.d.ts +19 -4
  28. package/dist/cjs/utils/config/content/tabBarConfig.js +18 -1
  29. package/dist/cjs/utils/config/content/types.d.ts +15 -10
  30. package/dist/cjs/utils/config/handlePageConfig.d.ts +6 -0
  31. package/dist/cjs/utils/config/handlePageConfig.js +13 -1
  32. package/dist/cjs/utils/logic/handleProcess.js +50 -33
  33. package/dist/cjs/utils/style/converter.js +1 -6
  34. package/dist/cjs/utils/templates/index.d.ts +1 -0
  35. package/dist/cjs/utils/templates/index.js +11 -4
  36. package/dist/cjs/utils/templates/renderManager.js +4 -2
  37. package/dist/cjs/utils/templates/scene.d.ts +2 -1
  38. package/dist/cjs/utils/templates/scene.js +4 -3
  39. package/dist/esm/abstractEventTypeDef.d.ts.map +1 -0
  40. package/dist/esm/core/comlib/_Modal.js +51 -0
  41. package/dist/esm/core/comlib/_TimerDelay.js +46 -14
  42. package/dist/esm/core/comlib/index.js +2 -0
  43. package/dist/esm/core/mybricks/log.js +1 -5
  44. package/dist/esm/core/utils/hooks.js +7 -2
  45. package/dist/esm/core/utils/slots.js +28 -10
  46. package/dist/esm/core/utils/useContext.js +9 -3
  47. package/dist/esm/core/utils/with.js +5 -9
  48. package/dist/esm/generate/generateTaroProjectJson.d.ts.map +1 -0
  49. package/dist/esm/generate/generateTaroProjectJson.js +22 -0
  50. package/dist/esm/generate/generateTaroTempalteJson.d.ts.map +1 -0
  51. package/dist/esm/generate/utils/appConfig.d.ts.map +1 -0
  52. package/dist/esm/generate/utils/commonDir.d.ts.map +1 -0
  53. package/dist/esm/generate/utils/fileNode.d.ts.map +1 -0
  54. package/dist/esm/generate/utils/index.d.ts.map +1 -0
  55. package/dist/esm/generate/utils/tabBarImages.d.ts.map +1 -0
  56. package/dist/esm/handleCom.js +60 -95
  57. package/dist/esm/handleDom.d.ts.map +1 -0
  58. package/dist/esm/handleExtension.d.ts.map +1 -0
  59. package/dist/esm/handleGlobal.d.ts.map +1 -0
  60. package/dist/esm/handleModule.d.ts.map +1 -0
  61. package/dist/esm/handleSlot.js +9 -4
  62. package/dist/esm/index.d.ts.map +1 -0
  63. package/dist/esm/processors/processComEvents.js +6 -3
  64. package/dist/esm/processors/processModule.d.ts.map +1 -0
  65. package/dist/esm/processors/processModule.js +35 -0
  66. package/dist/esm/processors/processScene.d.ts.map +1 -0
  67. package/dist/esm/processors/processScene.js +35 -0
  68. package/dist/esm/processors/processSceneLogic.d.ts +4 -1
  69. package/dist/esm/processors/processSceneLogic.js +90 -15
  70. package/dist/esm/taro-template.json +68 -42
  71. package/dist/esm/toCodeTaro.d.ts +14 -1
  72. package/dist/esm/toCodeTaro.d.ts.map +1 -0
  73. package/dist/esm/toCodeTaro.js +1 -0
  74. package/dist/esm/utils/builder/buildResult.d.ts +1 -0
  75. package/dist/esm/utils/builder/buildResult.d.ts.map +1 -0
  76. package/dist/esm/utils/builder/buildResult.js +8 -1
  77. package/dist/esm/utils/common/ImportManager.d.ts.map +1 -0
  78. package/dist/esm/utils/common/helper.d.ts +10 -0
  79. package/dist/esm/utils/common/helper.js +29 -0
  80. package/dist/esm/utils/common/object.d.ts.map +1 -0
  81. package/dist/esm/utils/common/string.d.ts +10 -0
  82. package/dist/esm/utils/common/string.d.ts.map +1 -0
  83. package/dist/esm/utils/common/string.js +16 -0
  84. package/dist/esm/utils/config/content/converter.d.ts.map +1 -0
  85. package/dist/esm/utils/config/content/converter.js +1 -0
  86. package/dist/esm/utils/config/content/index.d.ts.map +1 -0
  87. package/dist/esm/utils/config/content/pageConfig.d.ts.map +1 -0
  88. package/dist/esm/utils/config/content/saveBase64Image.d.ts.map +1 -0
  89. package/dist/esm/utils/config/content/tabBarConfig.d.ts +19 -4
  90. package/dist/esm/utils/config/content/tabBarConfig.d.ts.map +1 -0
  91. package/dist/esm/utils/config/content/tabBarConfig.js +28 -4
  92. package/dist/esm/utils/config/content/types.d.ts +15 -10
  93. package/dist/esm/utils/config/content/types.d.ts.map +1 -0
  94. package/dist/esm/utils/config/content/validator.d.ts.map +1 -0
  95. package/dist/esm/utils/config/handlePageConfig.d.ts +6 -0
  96. package/dist/esm/utils/config/handlePageConfig.d.ts.map +1 -0
  97. package/dist/esm/utils/config/handlePageConfig.js +17 -2
  98. package/dist/esm/utils/context/buildContext.d.ts.map +1 -0
  99. package/dist/esm/utils/context/buildFrameMap.d.ts.map +1 -0
  100. package/dist/esm/utils/context/buildGlobalData.d.ts.map +1 -0
  101. package/dist/esm/utils/context/collectJSModules.d.ts.map +1 -0
  102. package/dist/esm/utils/context/createEventQueries.d.ts.map +1 -0
  103. package/dist/esm/utils/context/createProvider.d.ts.map +1 -0
  104. package/dist/esm/utils/index.d.ts.map +1 -0
  105. package/dist/esm/utils/logic/convertNamespace.d.ts.map +1 -0
  106. package/dist/esm/utils/logic/genJSModules.d.ts.map +1 -0
  107. package/dist/esm/utils/logic/handleProcess.js +66 -40
  108. package/dist/esm/utils/logic/processChildren.d.ts.map +1 -0
  109. package/dist/esm/utils/style/color.d.ts.map +1 -0
  110. package/dist/esm/utils/style/converter.js +11 -8
  111. package/dist/esm/utils/style/getComponentClassName.d.ts.map +1 -0
  112. package/dist/esm/utils/style/pxtransform.d.ts.map +1 -0
  113. package/dist/esm/utils/style/types.d.ts.map +1 -0
  114. package/dist/esm/utils/templates/component.d.ts.map +1 -0
  115. package/dist/esm/utils/templates/index.d.ts +1 -0
  116. package/dist/esm/utils/templates/index.js +20 -10
  117. package/dist/esm/utils/templates/renderManager.js +5 -2
  118. package/dist/esm/utils/templates/scene.d.ts +2 -1
  119. package/dist/esm/utils/templates/scene.js +7 -6
  120. package/package.json +1 -1
@@ -1,4 +1,7 @@
1
1
  /**
2
2
  * 处理场景/插槽的逻辑(事件流、输入项等)
3
3
  */
4
- export declare const processSceneLogic: (ui: any, config: any, addDependencyImport: any) => string;
4
+ export declare const processSceneLogic: (ui: any, config: any, addDependencyImport: any) => {
5
+ initCode: string;
6
+ effectCode: string;
7
+ };
@@ -24,17 +24,73 @@ __export(processSceneLogic_exports, {
24
24
  module.exports = __toCommonJS(processSceneLogic_exports);
25
25
  var import_utils = require("../utils");
26
26
  var import_handleProcess = require("../utils/logic/handleProcess");
27
+ function sanitizeBlockComment(text) {
28
+ const s = String(text ?? "").trim();
29
+ if (!s)
30
+ return "";
31
+ return s.replace(/\*\//g, "* /");
32
+ }
27
33
  var processSceneLogic = (ui, config, addDependencyImport) => {
34
+ let initCode = "";
28
35
  let effectCode = "";
29
36
  const indent2 = (0, import_utils.indentation)(config.codeStyle.indent);
30
37
  const currentScene = config.getCurrentScene();
31
38
  const providerName = config.getCurrentProvider().name;
32
- effectCode += processLogicalInit(currentScene, config, addDependencyImport, indent2, providerName);
39
+ initCode += processLogicalInit(currentScene, config, addDependencyImport, indent2, providerName);
33
40
  if (!config.checkIsRoot())
34
- return effectCode;
41
+ return { initCode, effectCode };
35
42
  effectCode += processSceneEvents(ui, currentScene, config, addDependencyImport, indent2);
36
43
  effectCode += processSceneInputs(currentScene, config, addDependencyImport, indent2);
37
- return effectCode;
44
+ effectCode += processVarEvents(currentScene, config, addDependencyImport, indent2);
45
+ return { initCode, effectCode };
46
+ };
47
+ var processVarEvents = (currentScene, config, addDependencyImport, indent) => {
48
+ var _a;
49
+ let code = "";
50
+ const varEvents = ((_a = config.getVarEvents) == null ? void 0 : _a.call(config)) || [];
51
+ if (!Array.isArray(varEvents) || varEvents.length === 0)
52
+ return code;
53
+ const importParams = { isPopup: config.isPopup };
54
+ addDependencyImport({
55
+ packageName: config.getUtilsPackageName(importParams),
56
+ dependencyNames: ["SUBJECT_SUBSCRIBE", "SUBJECT_VALUE"],
57
+ importType: "named"
58
+ });
59
+ varEvents.forEach((varEvent) => {
60
+ if ((varEvent == null ? void 0 : varEvent.type) !== "var")
61
+ return;
62
+ const com = varEvent == null ? void 0 : varEvent.meta;
63
+ if (!(com == null ? void 0 : com.id))
64
+ return;
65
+ const pinId = (varEvent == null ? void 0 : varEvent.paramId) || "changed";
66
+ const varName = (0, import_utils.getSafeVarName)(com);
67
+ const paramsProxy = new Proxy(
68
+ {},
69
+ { get: () => "value" }
70
+ );
71
+ const process = (0, import_handleProcess.handleProcess)(varEvent, {
72
+ ...config,
73
+ target: "comRefs.current",
74
+ depth: 3,
75
+ addParentDependencyImport: addDependencyImport,
76
+ getParams: () => paramsProxy
77
+ }).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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.");
78
+ if (!process.trim())
79
+ return;
80
+ code += `
81
+ ${indent} /** 变量 ${sanitizeBlockComment(com.title || varName)} 的 ${pinId} */`;
82
+ code += `
83
+ ${indent} const run_${varName}_${pinId} = (value: any) => {
84
+ ${process}
85
+ ${indent} };`;
86
+ code += `
87
+ ${indent} $vars.current.${varName}.${pinId}?.()[SUBJECT_SUBSCRIBE](run_${varName}_${pinId});`;
88
+ code += `
89
+ ${indent} const init_${varName}_${pinId} = $vars.current.${varName}.get?.();`;
90
+ code += `
91
+ ${indent} run_${varName}_${pinId}(init_${varName}_${pinId}?.[SUBJECT_VALUE]);`;
92
+ });
93
+ return code;
38
94
  };
39
95
  var processLogicalInit = (scene, config, addDependencyImport, indent, providerName) => {
40
96
  let code = "";
@@ -49,12 +105,16 @@ var processLogicalInit = (scene, config, addDependencyImport, indent, providerNa
49
105
  importType: "named"
50
106
  });
51
107
  code += `
52
- ${indent}const vars = comRefs.current.${providerName}_Vars;`;
108
+ ${indent}const vars = ($vars.current ||= {});`;
53
109
  vars.forEach(([comId, com]) => {
54
- var _a, _b;
55
- const initValue = JSON.stringify(((_b = (_a = com.model) == null ? void 0 : _a.data) == null ? void 0 : _b.initValue) || {});
110
+ var _a, _b, _c, _d, _e;
111
+ const varName = (0, import_utils.getSafeVarName)(com);
112
+ const varTitle = sanitizeBlockComment((com == null ? void 0 : com.title) || ((_a = com == null ? void 0 : com.model) == null ? void 0 : _a.title) || ((_c = (_b = com == null ? void 0 : com.model) == null ? void 0 : _b.data) == null ? void 0 : _c.title) || varName);
113
+ const initValue = JSON.stringify((0, import_utils.getInitValueBySchema)(com.schema, (_e = (_d = com.model) == null ? void 0 : _d.data) == null ? void 0 : _e.initValue));
114
+ code += `
115
+ ${indent}/** 初始化 变量 ${varTitle} */`;
56
116
  code += `
57
- ${indent}if (!vars.${com.title}.get) vars.${com.title} = createVariable(${initValue});`;
117
+ ${indent}if (!vars.${varName}) vars.${varName} = createVariable(${initValue});`;
58
118
  });
59
119
  }
60
120
  const fxEvents = config.getFxEvents();
@@ -66,7 +126,7 @@ ${indent}if (!vars.${com.title}.get) vars.${com.title} = createVariable(${initVa
66
126
  importType: "named"
67
127
  });
68
128
  code += `
69
- ${indent}const fxs = comRefs.current.${providerName}_Fxs;`;
129
+ ${indent}const fxs = ($fxs.current ||= {});`;
70
130
  fxEvents.forEach((fxEvent) => {
71
131
  const res = (0, import_handleProcess.handleProcess)(fxEvent, {
72
132
  ...config,
@@ -82,7 +142,7 @@ ${indent}const fxs = comRefs.current.${providerName}_Fxs;`;
82
142
  {}
83
143
  );
84
144
  }
85
- }).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.");
145
+ }).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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.");
86
146
  const values = (fxEvent.paramPins || []).map((paramPin, index) => {
87
147
  var _a;
88
148
  if (paramPin.type === "config") {
@@ -91,7 +151,7 @@ ${indent}const fxs = comRefs.current.${providerName}_Fxs;`;
91
151
  return `value${index}: any`;
92
152
  }).join(", ");
93
153
  code += `
94
- ${indent}if (!fxs.${fxEvent.frameId}.call) fxs.${fxEvent.frameId} = createFx((${values}) => {
154
+ ${indent}if (!fxs.${fxEvent.frameId}) fxs.${fxEvent.frameId} = createFx((${values}) => {
95
155
  ${res}
96
156
  ${indent}});`;
97
157
  });
@@ -114,7 +174,7 @@ var processSceneEvents = (ui, currentScene, config, addDependencyImport, indent)
114
174
  depth: 2,
115
175
  addParentDependencyImport: addDependencyImport,
116
176
  getParams: () => ({})
117
- }).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.");
177
+ }).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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.");
118
178
  if (process.trim()) {
119
179
  code += `
120
180
  ${indent} ${process.trim()}`;
@@ -141,7 +201,7 @@ ${indent} const inputs = comRefs.current.$inputs;`;
141
201
  depth: 3,
142
202
  addParentDependencyImport: addDependencyImport,
143
203
  getParams: () => ({ [input.id]: "data" })
144
- }).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.");
204
+ }).replace(/this\.\$vars\./g, "$vars.current.").replace(/this\.\$fxs\./g, "$fxs.current.").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.");
145
205
  if (process.trim()) {
146
206
  code += `
147
207
  ${indent} inputs.${input.id} = (data: any) => {