@mybricks/to-code-taro 1.0.1 → 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.
- package/README.md +58 -0
- package/dist/cjs/core/comlib/{Index.js → index.js} +4 -4
- package/dist/cjs/core/mybricks/index.js +47 -47
- package/dist/cjs/core/utils/ComContext.js +3 -0
- package/dist/cjs/core/utils/hooks.js +125 -0
- package/dist/cjs/core/utils/index.js +21 -57
- package/dist/cjs/core/utils/page.js +67 -0
- package/dist/cjs/core/utils/useContext.js +2 -1
- package/dist/cjs/generate/generateTaroProjectJson.d.ts +3 -14
- package/dist/cjs/generate/generateTaroProjectJson.js +9 -6
- package/dist/cjs/generate/utils/tabBarImages.d.ts +1 -1
- package/dist/cjs/handleCom.d.ts +1 -1
- package/dist/cjs/handleCom.js +91 -177
- package/dist/cjs/handleDom.js +7 -44
- package/dist/cjs/handleExtension.d.ts +2 -2
- package/dist/cjs/handleExtension.js +5 -5
- package/dist/cjs/handleGlobal.d.ts +2 -12
- package/dist/cjs/handleGlobal.js +23 -7
- package/dist/cjs/handleModule.js +3 -3
- package/dist/cjs/handleSlot.d.ts +2 -9
- package/dist/cjs/handleSlot.js +47 -150
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/processors/processComEvents.d.ts +9 -0
- package/dist/cjs/processors/processComEvents.js +122 -0
- package/dist/cjs/processors/processModule.d.ts +31 -0
- package/dist/cjs/processors/processModule.js +125 -0
- package/dist/cjs/processors/processScene.d.ts +32 -0
- package/dist/cjs/processors/processScene.js +124 -0
- package/dist/cjs/processors/processSceneLogic.d.ts +4 -0
- package/dist/cjs/processors/processSceneLogic.js +166 -0
- package/dist/cjs/taro-template.json +15 -7
- package/dist/cjs/toCodeTaro.d.ts +26 -5
- package/dist/cjs/toCodeTaro.js +59 -343
- package/dist/cjs/utils/builder/buildResult.d.ts +21 -0
- package/dist/cjs/utils/builder/buildResult.js +91 -0
- package/dist/cjs/utils/common/ImportManager.d.ts +19 -0
- package/dist/cjs/utils/common/ImportManager.js +105 -0
- package/dist/cjs/utils/common/helper.d.ts +2 -0
- package/dist/cjs/utils/common/helper.js +31 -0
- package/dist/cjs/utils/common/object.d.ts +5 -0
- package/dist/cjs/utils/common/object.js +58 -0
- package/dist/cjs/utils/common/string.d.ts +8 -0
- package/dist/cjs/utils/common/string.js +46 -0
- package/dist/cjs/utils/{pageConfig → config/content}/converter.js +1 -1
- package/dist/cjs/utils/{pageConfig → config/content}/index.js +9 -9
- package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.js +12 -22
- package/dist/{esm/utils/pageConfig → cjs/utils/config/content}/saveBase64Image.d.ts +1 -1
- package/dist/cjs/utils/{pageConfig → config/content}/saveBase64Image.js +8 -17
- package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.js +9 -32
- package/dist/cjs/utils/config/content/types.js +17 -0
- package/dist/cjs/utils/{pageConfig → config/content}/validator.js +1 -1
- package/dist/{esm/utils → cjs/utils/config}/handlePageConfig.d.ts +1 -1
- package/dist/cjs/utils/{handlePageConfig.js → config/handlePageConfig.js} +4 -4
- package/dist/cjs/utils/context/buildContext.d.ts +24 -0
- package/dist/cjs/utils/context/buildContext.js +65 -0
- package/dist/cjs/utils/context/buildFrameMap.d.ts +16 -0
- package/dist/cjs/utils/context/buildFrameMap.js +106 -0
- package/dist/cjs/utils/context/buildGlobalData.d.ts +13 -0
- package/dist/cjs/utils/context/buildGlobalData.js +58 -0
- package/dist/cjs/utils/context/collectJSModules.d.ts +37 -0
- package/dist/cjs/utils/context/collectJSModules.js +91 -0
- package/dist/cjs/utils/context/createEventQueries.d.ts +45 -0
- package/dist/cjs/utils/context/createEventQueries.js +99 -0
- package/dist/cjs/utils/context/createProvider.d.ts +21 -0
- package/dist/cjs/utils/context/createProvider.js +49 -0
- package/dist/cjs/utils/index.d.ts +10 -62
- package/dist/cjs/utils/index.js +21 -282
- package/dist/cjs/utils/{convertNamespace.js → logic/convertNamespace.js} +1 -1
- package/dist/cjs/utils/{genJSModules.js → logic/genJSModules.js} +1 -1
- package/dist/{esm/utils → cjs/utils/logic}/handleProcess.d.ts +2 -2
- package/dist/cjs/utils/{handleProcess.js → logic/handleProcess.js} +14 -11
- package/dist/cjs/utils/logic/processChildren.d.ts +12 -0
- package/dist/cjs/utils/logic/processChildren.js +82 -0
- package/dist/cjs/utils/style/color.d.ts +4 -0
- package/dist/cjs/utils/style/color.js +45 -0
- package/dist/cjs/utils/style/converter.d.ts +7 -0
- package/dist/cjs/utils/style/converter.js +181 -0
- package/dist/cjs/utils/{getComponentClassName.js → style/getComponentClassName.js} +1 -1
- package/dist/cjs/utils/{pxtransform.js → style/pxtransform.js} +1 -1
- package/dist/cjs/utils/style/types.d.ts +23 -0
- package/dist/cjs/utils/{pageConfig → style}/types.js +1 -1
- package/dist/cjs/utils/{code → templates}/component.js +1 -1
- package/dist/cjs/utils/{code → templates}/index.js +4 -4
- package/dist/cjs/utils/{code → templates}/renderManager.js +1 -1
- package/dist/cjs/utils/{code → templates}/scene.js +1 -1
- package/dist/esm/core/mybricks/index.js +1 -1
- package/dist/esm/core/utils/ComContext.js +1 -0
- package/dist/esm/core/utils/hooks.js +118 -0
- package/dist/esm/core/utils/index.js +6 -57
- package/dist/esm/core/utils/page.js +50 -0
- package/dist/esm/core/utils/useContext.js +2 -1
- package/dist/esm/generate/generateTaroProjectJson.d.ts +3 -14
- package/dist/esm/generate/generateTaroProjectJson.js +27 -23
- package/dist/esm/generate/utils/tabBarImages.d.ts +1 -1
- package/dist/esm/handleCom.d.ts +1 -1
- package/dist/esm/handleCom.js +159 -244
- package/dist/esm/handleDom.js +9 -48
- package/dist/esm/handleExtension.d.ts +2 -2
- package/dist/esm/handleExtension.js +5 -5
- package/dist/esm/handleGlobal.d.ts +2 -12
- package/dist/esm/handleGlobal.js +17 -3
- package/dist/esm/handleModule.js +3 -3
- package/dist/esm/handleSlot.d.ts +2 -9
- package/dist/esm/handleSlot.js +97 -174
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/processors/processComEvents.d.ts +9 -0
- package/dist/esm/processors/processComEvents.js +110 -0
- package/dist/esm/processors/processModule.d.ts +31 -0
- package/dist/esm/processors/processModule.js +126 -0
- package/dist/esm/processors/processScene.d.ts +32 -0
- package/dist/esm/processors/processScene.js +126 -0
- package/dist/esm/processors/processSceneLogic.d.ts +4 -0
- package/dist/esm/processors/processSceneLogic.js +160 -0
- package/dist/esm/taro-template.json +15 -7
- package/dist/esm/toCodeTaro.d.ts +26 -5
- package/dist/esm/toCodeTaro.js +96 -396
- package/dist/esm/utils/builder/buildResult.d.ts +21 -0
- package/dist/esm/utils/builder/buildResult.js +61 -0
- package/dist/esm/utils/common/ImportManager.d.ts +19 -0
- package/dist/esm/utils/common/ImportManager.js +103 -0
- package/dist/esm/utils/common/helper.d.ts +2 -0
- package/dist/esm/utils/common/helper.js +4 -0
- package/dist/esm/utils/common/object.d.ts +5 -0
- package/dist/esm/utils/common/object.js +32 -0
- package/dist/esm/utils/common/string.d.ts +8 -0
- package/dist/esm/utils/common/string.js +21 -0
- package/dist/esm/utils/config/content/pageConfig.js +40 -0
- package/dist/{cjs/utils/pageConfig → esm/utils/config/content}/saveBase64Image.d.ts +1 -1
- package/dist/esm/utils/{pageConfig → config/content}/saveBase64Image.js +11 -30
- package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.js +12 -34
- package/dist/{cjs/utils → esm/utils/config}/handlePageConfig.d.ts +1 -1
- package/dist/esm/utils/{handlePageConfig.js → config/handlePageConfig.js} +1 -1
- package/dist/esm/utils/context/buildContext.d.ts +24 -0
- package/dist/esm/utils/context/buildContext.js +53 -0
- package/dist/esm/utils/context/buildFrameMap.d.ts +16 -0
- package/dist/esm/utils/context/buildFrameMap.js +131 -0
- package/dist/esm/utils/context/buildGlobalData.d.ts +13 -0
- package/dist/esm/utils/context/buildGlobalData.js +44 -0
- package/dist/esm/utils/context/collectJSModules.d.ts +37 -0
- package/dist/esm/utils/context/collectJSModules.js +87 -0
- package/dist/esm/utils/context/createEventQueries.d.ts +45 -0
- package/dist/esm/utils/context/createEventQueries.js +98 -0
- package/dist/esm/utils/context/createProvider.d.ts +21 -0
- package/dist/esm/utils/context/createProvider.js +33 -0
- package/dist/esm/utils/index.d.ts +10 -62
- package/dist/esm/utils/index.js +12 -345
- package/dist/{cjs/utils → esm/utils/logic}/handleProcess.d.ts +2 -2
- package/dist/esm/utils/{handleProcess.js → logic/handleProcess.js} +11 -5
- package/dist/esm/utils/logic/processChildren.d.ts +12 -0
- package/dist/esm/utils/logic/processChildren.js +48 -0
- package/dist/esm/utils/style/color.d.ts +4 -0
- package/dist/esm/utils/style/color.js +17 -0
- package/dist/esm/utils/style/converter.d.ts +7 -0
- package/dist/esm/utils/style/converter.js +176 -0
- package/dist/esm/utils/style/types.d.ts +23 -0
- package/dist/esm/utils/style/types.js +1 -0
- package/package.json +1 -1
- package/dist/esm/utils/pageConfig/pageConfig.js +0 -60
- /package/dist/cjs/utils/{pageConfig → config/content}/converter.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/index.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/types.d.ts +0 -0
- /package/dist/cjs/utils/{pageConfig → config/content}/validator.d.ts +0 -0
- /package/dist/cjs/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
- /package/dist/cjs/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
- /package/dist/cjs/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
- /package/dist/cjs/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
- /package/dist/cjs/utils/{code → templates}/component.d.ts +0 -0
- /package/dist/cjs/utils/{code → templates}/index.d.ts +0 -0
- /package/dist/cjs/utils/{code → templates}/renderManager.d.ts +0 -0
- /package/dist/cjs/utils/{code → templates}/scene.d.ts +0 -0
- /package/dist/esm/core/comlib/{Index.js → index.js} +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/converter.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/converter.js +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/index.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/index.js +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/pageConfig.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/tabBarConfig.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/types.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/types.js +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/validator.d.ts +0 -0
- /package/dist/esm/utils/{pageConfig → config/content}/validator.js +0 -0
- /package/dist/esm/utils/{convertNamespace.d.ts → logic/convertNamespace.d.ts} +0 -0
- /package/dist/esm/utils/{convertNamespace.js → logic/convertNamespace.js} +0 -0
- /package/dist/esm/utils/{genJSModules.d.ts → logic/genJSModules.d.ts} +0 -0
- /package/dist/esm/utils/{genJSModules.js → logic/genJSModules.js} +0 -0
- /package/dist/esm/utils/{getComponentClassName.d.ts → style/getComponentClassName.d.ts} +0 -0
- /package/dist/esm/utils/{getComponentClassName.js → style/getComponentClassName.js} +0 -0
- /package/dist/esm/utils/{pxtransform.d.ts → style/pxtransform.d.ts} +0 -0
- /package/dist/esm/utils/{pxtransform.js → style/pxtransform.js} +0 -0
- /package/dist/esm/utils/{code → templates}/component.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/component.js +0 -0
- /package/dist/esm/utils/{code → templates}/index.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/index.js +0 -0
- /package/dist/esm/utils/{code → templates}/renderManager.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/renderManager.js +0 -0
- /package/dist/esm/utils/{code → templates}/scene.d.ts +0 -0
- /package/dist/esm/utils/{code → templates}/scene.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 处理Extension事件卡片
|
|
3
3
|
*/
|
|
4
|
-
import type { ToTaroCodeConfig,
|
|
4
|
+
import type { ToTaroCodeConfig, GeneratedFile } from "./toCodeTaro";
|
|
5
5
|
interface HandleExtensionParams {
|
|
6
6
|
tojson: any;
|
|
7
7
|
extensionEvents: any[];
|
|
8
8
|
}
|
|
9
|
-
declare const handleExtension: (params: HandleExtensionParams, config: ToTaroCodeConfig) =>
|
|
9
|
+
declare const handleExtension: (params: HandleExtensionParams, config: ToTaroCodeConfig) => GeneratedFile[];
|
|
10
10
|
export default handleExtension;
|
|
@@ -5,11 +5,11 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { ImportManager, indentation } from "./utils";
|
|
8
|
-
import { handleProcess } from "./utils/handleProcess";
|
|
8
|
+
import { handleProcess } from "./utils/logic/handleProcess";
|
|
9
9
|
var handleExtension = function handleExtension(params, config) {
|
|
10
10
|
var tojson = params.tojson,
|
|
11
11
|
extensionEvents = params.extensionEvents;
|
|
12
|
-
var
|
|
12
|
+
var files = [];
|
|
13
13
|
var importManager = new ImportManager(config);
|
|
14
14
|
var addDependencyImport = importManager.addImport.bind(importManager);
|
|
15
15
|
var eventCode = genEvent({
|
|
@@ -36,7 +36,7 @@ var handleExtension = function handleExtension(params, config) {
|
|
|
36
36
|
}, _objectSpread(_objectSpread({}, config), {}, {
|
|
37
37
|
addParentDependencyImport: addDependencyImport
|
|
38
38
|
}));
|
|
39
|
-
|
|
39
|
+
files.push({
|
|
40
40
|
type: "api",
|
|
41
41
|
content: (apiCode ? "".concat(apiCode, "\n\n") : "") + (configCode ? "".concat(configCode, "\n\n") : "") + eventCode,
|
|
42
42
|
importManager: importManager,
|
|
@@ -53,14 +53,14 @@ var handleExtension = function handleExtension(params, config) {
|
|
|
53
53
|
addParentDependencyImport: addDependencyExtensionBusImport
|
|
54
54
|
}));
|
|
55
55
|
if (busCode) {
|
|
56
|
-
|
|
56
|
+
files.push({
|
|
57
57
|
content: busCode,
|
|
58
58
|
importManager: extensionBusImportManager,
|
|
59
59
|
type: "extension-bus",
|
|
60
60
|
name: "系统总线"
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
|
-
return
|
|
63
|
+
return files;
|
|
64
64
|
};
|
|
65
65
|
export default handleExtension;
|
|
66
66
|
var genConfig = function genConfig(params, config) {
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 处理全局变量和全局Fx
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import type { ToTaroCodeConfig } from "./toCodeTaro";
|
|
4
|
+
import type { ToTaroCodeConfig, GeneratedFile } from "./toCodeTaro";
|
|
6
5
|
interface HandleGlobalParams {
|
|
7
6
|
tojson: any;
|
|
8
7
|
globalFxs: any[];
|
|
9
8
|
globalVars: any[];
|
|
10
9
|
}
|
|
11
|
-
declare const handleGlobal: (params: HandleGlobalParams, config: ToTaroCodeConfig) =>
|
|
12
|
-
content: string;
|
|
13
|
-
cssContent?: string;
|
|
14
|
-
pageConfigContent?: string;
|
|
15
|
-
importManager: ImportManager;
|
|
16
|
-
type: "module" | "fx" | "global" | "extension-event" | "extension-api" | "extension-config" | "api" | "normal" | "popup" | "extension-bus" | "abstractEventTypeDef" | "jsModules" | "commonIndex" | "tabBarConfig";
|
|
17
|
-
meta?: import("@mybricks/to-code-react/dist/cjs/toCode/types").Scene;
|
|
18
|
-
name: string;
|
|
19
|
-
tabBarConfig?: string;
|
|
20
|
-
};
|
|
10
|
+
declare const handleGlobal: (params: HandleGlobalParams, config: ToTaroCodeConfig) => GeneratedFile[];
|
|
21
11
|
export default handleGlobal;
|
package/dist/esm/handleGlobal.js
CHANGED
|
@@ -7,7 +7,7 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
|
7
7
|
|
|
8
8
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
9
9
|
import { ImportManager, indentation } from "./utils";
|
|
10
|
-
import { handleProcess } from "./utils/handleProcess";
|
|
10
|
+
import { handleProcess } from "./utils/logic/handleProcess";
|
|
11
11
|
var handleGlobal = function handleGlobal(params, config) {
|
|
12
12
|
var tojson = params.tojson,
|
|
13
13
|
globalFxs = params.globalFxs,
|
|
@@ -100,6 +100,20 @@ var handleGlobal = function handleGlobal(params, config) {
|
|
|
100
100
|
});
|
|
101
101
|
var varCode = "/** 全局变量 */" + "\nclass GlobalVars {" + "\n".concat(globalVarsInitCode) + "\n".concat(indent, "init() {") + "".concat(globalVarsRegisterChangeCode) + "\n".concat(indent, "}") + "\n}" + "\n\nexport const globalVars = new GlobalVars()";
|
|
102
102
|
var fxCode = "/** 全局Fx */" + "\nclass GlobalFxs {" + "\n".concat(globalFxsInitCode) + "}" + "\n\nexport const globalFxs = new GlobalFxs()";
|
|
103
|
+
if (varCode.includes("createVariable(")) {
|
|
104
|
+
globalAddDependencyImport({
|
|
105
|
+
packageName: config.getUtilsPackageName(),
|
|
106
|
+
dependencyNames: ["createVariable"],
|
|
107
|
+
importType: "named"
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
if (fxCode.includes("createFx(")) {
|
|
111
|
+
globalAddDependencyImport({
|
|
112
|
+
packageName: config.getUtilsPackageName(),
|
|
113
|
+
dependencyNames: ["createFx"],
|
|
114
|
+
importType: "named"
|
|
115
|
+
});
|
|
116
|
+
}
|
|
103
117
|
if (fxCode.includes("merge(")) {
|
|
104
118
|
globalAddDependencyImport({
|
|
105
119
|
packageName: config.getUtilsPackageName(),
|
|
@@ -107,11 +121,11 @@ var handleGlobal = function handleGlobal(params, config) {
|
|
|
107
121
|
importType: "named"
|
|
108
122
|
});
|
|
109
123
|
}
|
|
110
|
-
return {
|
|
124
|
+
return [{
|
|
111
125
|
type: "global",
|
|
112
126
|
content: varCode + "\n\n" + fxCode,
|
|
113
127
|
importManager: globalImportManager,
|
|
114
128
|
name: "global"
|
|
115
|
-
};
|
|
129
|
+
}];
|
|
116
130
|
};
|
|
117
131
|
export default handleGlobal;
|
package/dist/esm/handleModule.js
CHANGED
|
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
|
2
2
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
4
|
import { indentation, genObjectCode, convertComponentStyle, convertStyleAryToCss, firstCharToUpperCase } from "./utils";
|
|
5
|
-
import { handleProcess } from "./utils/handleProcess";
|
|
5
|
+
import { handleProcess } from "./utils/logic/handleProcess";
|
|
6
6
|
var handleModule = function handleModule(module, config) {
|
|
7
7
|
var _config$getFileName, _props$style, _config$getComponentC;
|
|
8
8
|
var events = module.events,
|
|
@@ -35,10 +35,10 @@ var handleModule = function handleModule(module, config) {
|
|
|
35
35
|
if (process.includes("pageParams")) {
|
|
36
36
|
config.addParentDependencyImport({
|
|
37
37
|
packageName: config.getComponentPackageName(),
|
|
38
|
-
dependencyNames: ["page"],
|
|
38
|
+
dependencyNames: ["page", "SUBJECT_VALUE"],
|
|
39
39
|
importType: "named"
|
|
40
40
|
});
|
|
41
|
-
process = indentation(config.codeStyle.indent * (config.depth + 2)) + "const pageParams: any = page.getParams(\"".concat(config.getCurrentScene().id, "\");\n") + process;
|
|
41
|
+
process = indentation(config.codeStyle.indent * (config.depth + 2)) + "const pageParams: any = page.getParams(\"".concat(config.getCurrentScene().id, "\")[SUBJECT_VALUE];\n") + process;
|
|
42
42
|
}
|
|
43
43
|
comEventCode += "".concat(indent).concat(eventId, ": (").concat(defaultValue, ": any) => {\n") + process + "\n".concat(indent, "},\n");
|
|
44
44
|
});
|
package/dist/esm/handleSlot.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ImportManager } from "./utils";
|
|
2
|
-
import { RenderManager } from "./utils/
|
|
2
|
+
import { RenderManager } from "./utils/templates/renderManager";
|
|
3
3
|
import type { UI, BaseConfig } from "./toCodeTaro";
|
|
4
4
|
interface HandleSlotConfig extends BaseConfig {
|
|
5
5
|
addParentDependencyImport?: (typeof ImportManager)["prototype"]["addImport"];
|
|
@@ -7,14 +7,7 @@ interface HandleSlotConfig extends BaseConfig {
|
|
|
7
7
|
addConsumer?: (provider: ReturnType<BaseConfig["getCurrentProvider"]>) => void;
|
|
8
8
|
checkIsRoot: () => boolean;
|
|
9
9
|
renderManager?: RenderManager;
|
|
10
|
-
addJSModule?: (module:
|
|
11
|
-
id: string;
|
|
12
|
-
title: string;
|
|
13
|
-
transformCode: string;
|
|
14
|
-
inputs: string[];
|
|
15
|
-
outputs: string[];
|
|
16
|
-
data: any;
|
|
17
|
-
}) => void;
|
|
10
|
+
addJSModule?: (module: any) => void;
|
|
18
11
|
}
|
|
19
12
|
declare const handleSlot: (ui: UI, config: HandleSlotConfig) => {
|
|
20
13
|
js: string;
|
package/dist/esm/handleSlot.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
2
2
|
import { ImportManager, indentation, convertStyleAryToCss, convertRootStyle, getRootComponentClassName } from "./utils";
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import handleDom from "./handleDom";
|
|
8
|
-
import handleModule from "./handleModule";
|
|
3
|
+
import { genRootDefineCode, genSlotDefineCode, genComponentTemplate, wrapInEffect } from "./utils/templates/scene";
|
|
4
|
+
import { RenderManager } from "./utils/templates/renderManager";
|
|
5
|
+
import { processChildren } from "./utils/logic/processChildren";
|
|
6
|
+
import { processSceneLogic } from "./processors/processSceneLogic";
|
|
9
7
|
var handleSlot = function handleSlot(ui, config) {
|
|
10
8
|
var _meta, _props$style;
|
|
11
9
|
var importManager = new ImportManager(config);
|
|
@@ -13,193 +11,118 @@ var handleSlot = function handleSlot(ui, config) {
|
|
|
13
11
|
props = _ui$props === void 0 ? {} : _ui$props,
|
|
14
12
|
_ui$children = ui.children,
|
|
15
13
|
children = _ui$children === void 0 ? [] : _ui$children;
|
|
16
|
-
var
|
|
17
|
-
var jsCode = "";
|
|
18
|
-
var effectCode = ""; // 专门存放需要在 useEffect 中执行的代码
|
|
14
|
+
var isRoot = config.checkIsRoot();
|
|
19
15
|
var slotId = ((_meta = ui.meta) === null || _meta === void 0 ? void 0 : _meta.id) || ui.id;
|
|
20
16
|
|
|
21
|
-
//
|
|
22
|
-
// 如果是根组件,创建新的 renderManager;否则使用传入的(共享同一个实例)
|
|
23
|
-
var renderManager = config.checkIsRoot() ? new RenderManager() : config.renderManager || new RenderManager();
|
|
24
|
-
var currentProvider = config.getCurrentProvider();
|
|
17
|
+
// 1. 初始化依赖与基础定义
|
|
25
18
|
var addDependencyImport = config.addParentDependencyImport || importManager.addImport.bind(importManager);
|
|
19
|
+
setupImports(addDependencyImport, config, isRoot);
|
|
26
20
|
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 内部会处理
|
|
21
|
+
var envDefineCode = isRoot ? genRootDefineCode(indent2, config.getUtilsPackageName()) : genSlotDefineCode(indent2);
|
|
72
22
|
|
|
73
|
-
|
|
74
|
-
var
|
|
23
|
+
// 2. 处理子节点
|
|
24
|
+
var renderManager = isRoot ? new RenderManager() : config.renderManager || new RenderManager();
|
|
25
|
+
var childResults = processChildren(children, _objectSpread(_objectSpread({}, config), {}, {
|
|
75
26
|
depth: config.depth + 1,
|
|
76
27
|
addParentDependencyImport: addDependencyImport,
|
|
77
|
-
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
|
-
});
|
|
28
|
+
renderManager: renderManager
|
|
29
|
+
}));
|
|
110
30
|
|
|
111
|
-
//
|
|
112
|
-
|
|
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 作用域
|
|
31
|
+
// 3. 处理场景逻辑 (Start, Inputs 等)
|
|
32
|
+
var effectCode = processSceneLogic(ui, config, addDependencyImport);
|
|
134
33
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
34
|
+
// 4. 合并样式与代码
|
|
35
|
+
var cssContent = (convertStyleAryToCss((_props$style = props.style) === null || _props$style === void 0 ? void 0 : _props$style.styleAry, slotId) || "") + (childResults.cssContent ? "\n" + childResults.cssContent : "");
|
|
36
|
+
var renderCodeBlock = isRoot && renderManager ? renderManager.toCode(indentation(config.codeStyle.indent)) : "";
|
|
37
|
+
var combinedJsCode = "".concat(envDefineCode).concat(childResults.js).concat(renderCodeBlock ? "\n".concat(renderCodeBlock) : "").concat(wrapInEffect(indent2, effectCode));
|
|
38
|
+
|
|
39
|
+
// 5. 生成 UI 结构
|
|
40
|
+
var uiResult = generateSlotUi(ui, props, childResults.ui, config);
|
|
143
41
|
|
|
144
|
-
//
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
var renderIndent = indentation(config.codeStyle.indent);
|
|
148
|
-
renderCodeBlock = renderManager.toCode(renderIndent);
|
|
42
|
+
// 6. 如果是根场景,生成完整文件
|
|
43
|
+
if (isRoot) {
|
|
44
|
+
finalizeRootComponent(ui, config, importManager, combinedJsCode, uiResult, cssContent);
|
|
149
45
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
46
|
+
return {
|
|
47
|
+
js: childResults.js,
|
|
48
|
+
combinedJsCode: combinedJsCode,
|
|
49
|
+
ui: uiResult,
|
|
50
|
+
cssContent: cssContent,
|
|
51
|
+
slots: [],
|
|
52
|
+
scopeSlots: []
|
|
53
|
+
};
|
|
54
|
+
};
|
|
154
55
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
56
|
+
/**
|
|
57
|
+
* 设置基础导入
|
|
58
|
+
*/
|
|
59
|
+
var setupImports = function setupImports(addImport, config, isRoot) {
|
|
60
|
+
var utilsPkg = config.getUtilsPackageName();
|
|
61
|
+
var comPkg = config.getComponentPackageName();
|
|
62
|
+
addImport({
|
|
63
|
+
packageName: "react",
|
|
64
|
+
dependencyNames: ["useRef", "useEffect", "useState"],
|
|
65
|
+
importType: "named"
|
|
66
|
+
});
|
|
67
|
+
addImport({
|
|
68
|
+
packageName: "@tarojs/components",
|
|
69
|
+
dependencyNames: ["View"],
|
|
70
|
+
importType: "named"
|
|
71
|
+
});
|
|
72
|
+
addImport({
|
|
73
|
+
packageName: utilsPkg,
|
|
74
|
+
dependencyNames: ["WithCom", "WithWrapper"],
|
|
75
|
+
importType: "named"
|
|
76
|
+
});
|
|
77
|
+
addImport({
|
|
78
|
+
packageName: comPkg,
|
|
79
|
+
dependencyNames: ["useAppContext"],
|
|
80
|
+
importType: "named"
|
|
81
|
+
});
|
|
82
|
+
if (isRoot) {
|
|
83
|
+
addImport({
|
|
84
|
+
packageName: "./index.less",
|
|
85
|
+
dependencyNames: [],
|
|
86
|
+
importType: "module"
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
};
|
|
158
90
|
|
|
159
|
-
|
|
91
|
+
/**
|
|
92
|
+
* 生成 Slot 的 UI 代码
|
|
93
|
+
*/
|
|
94
|
+
var generateSlotUi = function generateSlotUi(ui, props, childrenUi, config) {
|
|
95
|
+
var indent = indentation(config.codeStyle.indent * config.depth);
|
|
160
96
|
var mergedStyle = _objectSpread(_objectSpread({
|
|
161
|
-
width:
|
|
162
|
-
height:
|
|
163
|
-
}, ui.style), props.style || {});
|
|
97
|
+
width: "100%",
|
|
98
|
+
height: "100%"
|
|
99
|
+
}, ui.style || {}), props.style || {});
|
|
164
100
|
var styleCode = JSON.stringify(convertRootStyle(_objectSpread(_objectSpread({}, mergedStyle), {}, {
|
|
165
101
|
layout: ui.layout || mergedStyle.layout
|
|
166
102
|
})));
|
|
103
|
+
var rootClassName = getRootComponentClassName(config.getCurrentScene(), config.checkIsRoot());
|
|
104
|
+
var classNameAttr = rootClassName ? " className='".concat(rootClassName, "'") : "";
|
|
105
|
+
return "".concat(indent, "<View").concat(classNameAttr, " style={").concat(styleCode, "}>\n").concat(childrenUi, "\n").concat(indent, "</View>");
|
|
106
|
+
};
|
|
167
107
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
var
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
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,
|
|
108
|
+
/**
|
|
109
|
+
* 完成根组件的注册
|
|
110
|
+
*/
|
|
111
|
+
var finalizeRootComponent = function finalizeRootComponent(ui, config, importManager, combinedJsCode, uiResult, cssContent) {
|
|
112
|
+
var _config$getFileName, _ui$meta, _ui$meta2;
|
|
113
|
+
var fileName = ((_config$getFileName = config.getFileName) === null || _config$getFileName === void 0 ? void 0 : _config$getFileName.call(config, ui.meta.slotId)) || ui.meta.title || "index";
|
|
114
|
+
var componentId = ((_ui$meta = ui.meta) === null || _ui$meta === void 0 ? void 0 : _ui$meta.id) || ui.id || ((_ui$meta2 = ui.meta) === null || _ui$meta2 === void 0 ? void 0 : _ui$meta2.slotId) || "Index";
|
|
115
|
+
var componentName = "I".concat(String(componentId).replace(/[^a-zA-Z0-9]/g, "_"));
|
|
116
|
+
var componentCode = genComponentTemplate({
|
|
117
|
+
componentName: componentName,
|
|
198
118
|
combinedJsCode: combinedJsCode,
|
|
199
|
-
|
|
119
|
+
uiResult: uiResult
|
|
120
|
+
});
|
|
121
|
+
config.add({
|
|
122
|
+
importManager: importManager,
|
|
123
|
+
content: componentCode,
|
|
200
124
|
cssContent: cssContent,
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
};
|
|
125
|
+
name: fileName
|
|
126
|
+
});
|
|
204
127
|
};
|
|
205
128
|
export default handleSlot;
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default } from './toCodeTaro';
|
|
1
|
+
export { default as toCodeTaro } from './toCodeTaro';
|
|
2
2
|
export { default as generateTaroProjectJson } from './generate/generateTaroProjectJson';
|
|
3
3
|
export { default as generateTaroTempalteJson } from './generate/generateTaroTempalteJson';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { default } from "./toCodeTaro";
|
|
1
|
+
export { default as toCodeTaro } from "./toCodeTaro";
|
|
2
2
|
export { default as generateTaroProjectJson } from "./generate/generateTaroProjectJson";
|
|
3
3
|
export { default as generateTaroTempalteJson } from "./generate/generateTaroTempalteJson";
|
|
@@ -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,110 @@
|
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import { indentation } from "../utils";
|
|
5
|
+
import { handleProcess } from "../utils/logic/handleProcess";
|
|
6
|
+
/**
|
|
7
|
+
* 处理组件事件
|
|
8
|
+
*/
|
|
9
|
+
export var processComEvents = function processComEvents(com, config) {
|
|
10
|
+
var meta = com.meta,
|
|
11
|
+
events = com.events;
|
|
12
|
+
var comEventCode = "";
|
|
13
|
+
var outputsConfig = {};
|
|
14
|
+
var eventConfig = {};
|
|
15
|
+
var outputEvents = events || {};
|
|
16
|
+
Object.entries(outputEvents).forEach(function (_ref) {
|
|
17
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
18
|
+
eventId = _ref2[0],
|
|
19
|
+
eventInfo = _ref2[1];
|
|
20
|
+
var type = eventInfo.type,
|
|
21
|
+
isAbstract = eventInfo.isAbstract,
|
|
22
|
+
diagramId = eventInfo.diagramId,
|
|
23
|
+
schema = eventInfo.schema,
|
|
24
|
+
active = eventInfo.active;
|
|
25
|
+
if (active === false) return;
|
|
26
|
+
if (isAbstract) {
|
|
27
|
+
config.setAbstractEventTypeDefMap({
|
|
28
|
+
comId: com.meta.id,
|
|
29
|
+
eventId: eventId,
|
|
30
|
+
typeDef: config.getTypeDef(),
|
|
31
|
+
schema: schema
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (type === "fx") {
|
|
36
|
+
processFxEvent(eventId, com, config, function (code) {
|
|
37
|
+
comEventCode += code;
|
|
38
|
+
});
|
|
39
|
+
eventConfig[eventId] = {
|
|
40
|
+
connected: true
|
|
41
|
+
};
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (type !== "defined" || !diagramId) return;
|
|
45
|
+
var event = config.getEventByDiagramId(diagramId);
|
|
46
|
+
if (!event) return;
|
|
47
|
+
var paramName = "value";
|
|
48
|
+
var process = handleProcess(event, _objectSpread(_objectSpread({}, config), {}, {
|
|
49
|
+
target: "comRefs.current",
|
|
50
|
+
depth: config.depth + 3,
|
|
51
|
+
addParentDependencyImport: config.addParentDependencyImport,
|
|
52
|
+
getParams: function getParams() {
|
|
53
|
+
return _defineProperty({}, eventId, paramName);
|
|
54
|
+
}
|
|
55
|
+
})).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.");
|
|
56
|
+
if (process.includes("pageParams")) {
|
|
57
|
+
config.addParentDependencyImport({
|
|
58
|
+
packageName: config.getComponentPackageName(),
|
|
59
|
+
dependencyNames: ["page", "SUBJECT_VALUE"],
|
|
60
|
+
importType: "named"
|
|
61
|
+
});
|
|
62
|
+
var indent = indentation(config.codeStyle.indent * (config.depth + 3));
|
|
63
|
+
// 使用 SUBJECT_VALUE 获取当前参数值,保持与 MyBricks 逻辑一致
|
|
64
|
+
process = "".concat(indent, "const pageParams: any = page.getParams(\"").concat(config.getCurrentScene().id, "\")[SUBJECT_VALUE];\n").concat(process);
|
|
65
|
+
}
|
|
66
|
+
var handlerIndent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
67
|
+
var handlerCode = "(".concat(paramName, ": any) => {\n").concat(process, "\n").concat(handlerIndent, "}");
|
|
68
|
+
if (!outputsConfig[meta.id]) {
|
|
69
|
+
outputsConfig[meta.id] = {};
|
|
70
|
+
}
|
|
71
|
+
var onEventName = eventId.startsWith("on") ? eventId : "on".concat(eventId.charAt(0).toUpperCase()).concat(eventId.slice(1));
|
|
72
|
+
outputsConfig[meta.id][onEventName] = handlerCode;
|
|
73
|
+
eventConfig[eventId] = {
|
|
74
|
+
connected: true
|
|
75
|
+
};
|
|
76
|
+
});
|
|
77
|
+
return {
|
|
78
|
+
comEventCode: comEventCode,
|
|
79
|
+
outputsConfig: outputsConfig,
|
|
80
|
+
eventConfig: eventConfig
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* 处理 FX 事件
|
|
86
|
+
*/
|
|
87
|
+
var processFxEvent = function processFxEvent(eventId, com, config, addCode) {
|
|
88
|
+
var fxsMap = config.getFxsMap();
|
|
89
|
+
var currentProvider = config.getCurrentProvider();
|
|
90
|
+
var scene = config.getCurrentScene();
|
|
91
|
+
var pinProxy = scene.pinProxies["".concat(com.props.id, "-").concat(eventId)];
|
|
92
|
+
if (!pinProxy) return;
|
|
93
|
+
var fxProvider = fxsMap[pinProxy.frameId];
|
|
94
|
+
if (!fxProvider) return;
|
|
95
|
+
var isGlobal = fxProvider.name === "global";
|
|
96
|
+
if (fxProvider.name !== currentProvider.name) {
|
|
97
|
+
if (isGlobal) {
|
|
98
|
+
config.addParentDependencyImport({
|
|
99
|
+
packageName: config.getComponentPackageName(),
|
|
100
|
+
dependencyNames: ["globalFxs"],
|
|
101
|
+
importType: "named"
|
|
102
|
+
});
|
|
103
|
+
} else {
|
|
104
|
+
config.addConsumer(fxProvider);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
var indent = indentation(config.codeStyle.indent * (config.depth + 2));
|
|
108
|
+
var code = "".concat(indent).concat(eventId, ": ").concat(isGlobal ? "globalFxs" : "comRefs.current.".concat(fxProvider.name, "_Fxs"), ".").concat(pinProxy.frameId, ",\n");
|
|
109
|
+
addCode(code);
|
|
110
|
+
};
|
|
@@ -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 {};
|