@cloudbase/framework-plugin-low-code 0.7.5 → 0.7.8-beta.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.
- package/lib/builder/core/generate.d.ts.map +1 -1
- package/lib/builder/core/generate.js +2 -0
- package/lib/builder/mp/index.d.ts.map +1 -1
- package/lib/builder/mp/index.js +13 -22
- package/lib/builder/mp/mp_config.d.ts +11 -5
- package/lib/builder/mp/mp_config.d.ts.map +1 -1
- package/lib/builder/mp/mp_config.js +25 -4
- package/lib/builder/mp/wxml.d.ts.map +1 -1
- package/lib/builder/mp/wxml.js +2 -1
- package/lib/generate.js +4 -20
- package/lib/weapps-core/types/code_types.d.ts +1 -1
- package/lib/weapps-core/types/code_types.d.ts.map +1 -1
- package/package.json +1 -1
- package/template/src/app/global-api.js +1 -1
- package/template/src/handlers/utils/common.js +36 -24
- package/template/src/index.jsx +5 -6
- package/template/src/pages/app.tpl +32 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/builder/core/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAe5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAkBnD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAC3B,cAAc,kCAA2B,EACzC,YAAY,6BAAsB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,OAAO,qBAAwB,EAC/B,aAAa,qBAAiB,EAC9B,SAAS;iBACM,OAAO;eACT,GAAG;aAIf,EACD,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/builder/core/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAe5C,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAkBnD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,kBAAkB,EAC3B,cAAc,kCAA2B,EACzC,YAAY,6BAAsB,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,SAAS,EAAE,EAC1B,UAAU,EAAE,WAAW,EACvB,OAAO,qBAAwB,EAC/B,aAAa,qBAAiB,EAC9B,SAAS;iBACM,OAAO;eACT,GAAG;aAIf,EACD,MAAM,EAAE,MAAM,iBA8Gf;AACD,wBAAsB,mBAAmB,CACvC,YAAY,oBAAa,EACzB,WAAW,EAAE,MAAM,EACnB,MAAM,KAAA,iBASP"}
|
|
@@ -53,6 +53,7 @@ function runGenerateCore(appBuildDir, appData, subAppDataList = [], dependencies
|
|
|
53
53
|
}
|
|
54
54
|
});
|
|
55
55
|
yield Promise.all(allAppDataList.map((data) => __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
var _a;
|
|
56
57
|
const { pageInstanceList, rootPath = '' } = data;
|
|
57
58
|
const appName = rootPath ? 'Sub app ' + rootPath : 'Main app';
|
|
58
59
|
console.log(chalk_1.default.blue.bold('Generating files for ' + appName));
|
|
@@ -68,6 +69,7 @@ function runGenerateCore(appBuildDir, appData, subAppDataList = [], dependencies
|
|
|
68
69
|
appConfig: (0, util_1.JsonToStringWithVariableName)({
|
|
69
70
|
id: appKey,
|
|
70
71
|
envId: appData.envId,
|
|
72
|
+
clientId: (_a = appData.extra) === null || _a === void 0 ? void 0 : _a.clientId,
|
|
71
73
|
staticResourceDomain: domain || '',
|
|
72
74
|
envVersion: deployMode === types_1.DEPLOY_MODE.UPLOAD ? 'production' : 'preview',
|
|
73
75
|
pages: pageInstanceList
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,UAAU,EAEV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,aAAa,EACb,UAAU,EAEV,OAAO,EAIR,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAEL,SAAS,EACT,YAAY,EACZ,UAAU,EACX,MAAM,iBAAiB,CAAC;AAQzB,wBAAsB,YAAY,CAAC,EACjC,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,SAAS,EACT,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,SAAS,EACT,OAAO,EACP,aAAa,GACd,EAAE;IACD,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,WAAW,CAAC;IACxB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE;QACP,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,OAAO,CAAC;KACzB,CAAC;IACF,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,CAgSvC;AAuLD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,UAAU,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,aAAa,iBAkCnB;AAYD,wBAAgB,oBAAoB,CAAC,EACnC,YAAY,EACZ,MAAM,EACN,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;;;EA0CA"}
|
package/lib/builder/mp/index.js
CHANGED
|
@@ -55,17 +55,15 @@ const types_1 = require("../../types");
|
|
|
55
55
|
const common_1 = require("../types/common");
|
|
56
56
|
const lodash_1 = require("lodash");
|
|
57
57
|
const junk = __importStar(require("../util/junk"));
|
|
58
|
-
const path_2 = __importDefault(require("path"));
|
|
59
58
|
const net_1 = require("../util/net");
|
|
60
|
-
const templateDir = config_1.appTemplateDir
|
|
59
|
+
const templateDir = `${config_1.appTemplateDir}/mp/`;
|
|
61
60
|
const em = chalk_1.default.blue.bold;
|
|
62
|
-
const error = chalk_1.default.redBright;
|
|
63
61
|
function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isProduction, deployMode, extraData, isMixMode, options, buildTypeList, }) {
|
|
64
62
|
var _a;
|
|
65
63
|
return __awaiter(this, void 0, void 0, function* () {
|
|
66
64
|
const operationLabel = em('Wexin MiniProgram Generated');
|
|
67
65
|
console.time(operationLabel);
|
|
68
|
-
console.log(
|
|
66
|
+
console.log(`Generating ${em('Wexin MiniProgram')} to ${projDir}`);
|
|
69
67
|
console.log(em('domain') + domain);
|
|
70
68
|
let mainAppData = weapps[0];
|
|
71
69
|
const buildContext = {
|
|
@@ -91,7 +89,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
|
|
|
91
89
|
const projectFileData = {
|
|
92
90
|
'project.config.json': { content: projConfig },
|
|
93
91
|
};
|
|
94
|
-
console.log(
|
|
92
|
+
console.log(`Generating ${em('project')} files`);
|
|
95
93
|
yield (0, generateFiles_1.default)(projectFileData, templateDir, projDir, buildContext);
|
|
96
94
|
}
|
|
97
95
|
yield generatePkg(mainAppData, path_1.default.join(projDir, '/'), Object.assign(Object.assign({}, buildContext), { rootPath: mainAppData.rootPath }), pageConfigs[0]);
|
|
@@ -126,17 +124,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
|
|
|
126
124
|
yield (0, generateFiles_1.writeFile)(projectConfigJsonPath, JSON.stringify(projectConfigJson, undefined, 2));
|
|
127
125
|
let appJsonPath = path_1.default.join(miniprogramRoot, 'app.json');
|
|
128
126
|
let appJson = yield fs.readJson(appJsonPath);
|
|
129
|
-
|
|
130
|
-
for (let item of appConfig.subpackages || []) {
|
|
131
|
-
let find = subpackages.find((config) => config.root === item.root);
|
|
132
|
-
if (find) {
|
|
133
|
-
find.pages = Array.from(new Set([].concat(find.pages || []).concat(item.pages || [])));
|
|
134
|
-
}
|
|
135
|
-
else {
|
|
136
|
-
subpackages.push(item);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
appJson.subpackages = subpackages;
|
|
127
|
+
appJson.subpackages = (0, mp_config_1.mergeSubPackages)(appJson.subpackages, appConfig.subpackages);
|
|
140
128
|
yield (0, generateFiles_1.writeFile)(appJsonPath, JSON.stringify(appJson, undefined, 2));
|
|
141
129
|
}
|
|
142
130
|
else {
|
|
@@ -263,10 +251,12 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
|
|
|
263
251
|
pageSource: page.data.src || '',
|
|
264
252
|
eventHanlders: (0, util_2.createEventHanlders)(page.componentInstances, '$page', ctx),
|
|
265
253
|
dataBinds: (0, util_2.createDataBinds)(page.componentInstances, ctx),
|
|
266
|
-
pageAttributes: Object.assign({}, (((_a = page.data) === null || _a === void 0 ? void 0 : _a.appShareMessage)
|
|
254
|
+
pageAttributes: Object.assign({}, (((_a = page.data) === null || _a === void 0 ? void 0 : _a.appShareMessage)
|
|
255
|
+
? { appShareMessage: page.data.appShareMessage.value }
|
|
256
|
+
: {})),
|
|
267
257
|
debug: !ctx.isProduction,
|
|
268
258
|
stringifyObj: util_1.inspect,
|
|
269
|
-
subLevelPath: rootPath ?
|
|
259
|
+
subLevelPath: rootPath ? path_1.default.relative(rootPath, '') + '/' : '',
|
|
270
260
|
},
|
|
271
261
|
[`index.json|${pageFileName}.json`]: {
|
|
272
262
|
usingComponents,
|
|
@@ -277,7 +267,7 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
|
|
|
277
267
|
},
|
|
278
268
|
[`index.wxss|${pageFileName}.wxss`]: {
|
|
279
269
|
subWxss: rootPath && !((_b = ctx.mainAppData) === null || _b === void 0 ? void 0 : _b.mpPkgUrl)
|
|
280
|
-
? `@import "${
|
|
270
|
+
? `@import "${path_1.default.relative(`/${rootPath}/pages/${page.id}`, '/lowcode')}/style.wxss";`
|
|
281
271
|
: '',
|
|
282
272
|
content: (0, weapps_core_1.toCssText)((0, weapps_core_1.toCssStyle)(page.commonStyle, {
|
|
283
273
|
toRem: false,
|
|
@@ -287,7 +277,7 @@ function generatePkg(weapp, appRoot, ctx, pageConfigs) {
|
|
|
287
277
|
},
|
|
288
278
|
'api.js': {},
|
|
289
279
|
};
|
|
290
|
-
yield (0, generateFiles_1.default)(pageFileData, templateDir
|
|
280
|
+
yield (0, generateFiles_1.default)(pageFileData, `${templateDir}/page`, path_1.default.join(appRoot, 'pages', page.id), ctx);
|
|
291
281
|
})));
|
|
292
282
|
yield writeLowCodeFiles(weapp, appRoot, ctx);
|
|
293
283
|
}
|
|
@@ -357,18 +347,19 @@ function generateFramework(appData, outDir, ctx) {
|
|
|
357
347
|
}
|
|
358
348
|
function writeLowCodeFiles(appData, outDir, ctx) {
|
|
359
349
|
return __awaiter(this, void 0, void 0, function* () {
|
|
360
|
-
console.log(
|
|
350
|
+
console.log(`Writing ${em('lowcode')} files:`);
|
|
361
351
|
const lowcodeRootDir = path_1.default.join(outDir, 'lowcode');
|
|
362
352
|
const themeStyle = (0, style_1.generateDefaultTheme)(appData);
|
|
363
353
|
if (!(ctx.isMixMode && appData.rootPath)) {
|
|
364
354
|
yield Promise.all(appData.lowCodes
|
|
365
355
|
.filter((mod) => mod.name !== '____index____')
|
|
356
|
+
.filter((mod) => mod.type !== 'renderer')
|
|
366
357
|
.map((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { appDir: outDir }, themeStyle.code)));
|
|
367
358
|
}
|
|
368
359
|
yield Promise.all((0, weapps_core_1.loopDealWithFn)(appData.pageInstanceList, (page) => __awaiter(this, void 0, void 0, function* () {
|
|
369
360
|
var _a;
|
|
370
361
|
(0, style_1.generateDefaultStyle)(page);
|
|
371
|
-
yield ((_a = page === null || page === void 0 ? void 0 : page.lowCodes) === null || _a === void 0 ? void 0 : _a.filter((mod) => mod.name !== '____index____').forEach((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { pageId: page.id, appDir: outDir }, themeStyle.code, ctx)));
|
|
362
|
+
yield ((_a = page === null || page === void 0 ? void 0 : page.lowCodes) === null || _a === void 0 ? void 0 : _a.filter((mod) => mod.name !== '____index____').filter((mod) => mod.type !== 'renderer').forEach((m) => (0, lowcode_1.writeCode2file)(m, lowcodeRootDir, { pageId: page.id, appDir: outDir }, themeStyle.code, ctx)));
|
|
372
363
|
})));
|
|
373
364
|
});
|
|
374
365
|
}
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { IWeAppData } from '../../weapps-core';
|
|
2
2
|
import { IBuildContext } from './BuildContext';
|
|
3
3
|
export declare function generateMpConfig(weapps: IWeAppData[], ctx: IBuildContext): {
|
|
4
|
-
appConfig:
|
|
5
|
-
useExtendedLib: {
|
|
6
|
-
weui: boolean;
|
|
7
|
-
};
|
|
8
|
-
};
|
|
4
|
+
appConfig: any;
|
|
9
5
|
projConfig: any;
|
|
10
6
|
pageConfigs: {}[];
|
|
11
7
|
};
|
|
8
|
+
interface ISubpackage {
|
|
9
|
+
root: string;
|
|
10
|
+
pages?: string[];
|
|
11
|
+
plugins?: Record<string, {
|
|
12
|
+
version?: string;
|
|
13
|
+
provider?: string;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
export declare function mergeSubPackages(base?: ISubpackage[], extra?: ISubpackage[]): ISubpackage[];
|
|
17
|
+
export {};
|
|
12
18
|
//# sourceMappingURL=mp_config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mp_config.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/mp_config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mp_config.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/mp_config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAA8B,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,aAAa;;;;EAoGxE;AAyFD,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnE;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,GAAE,WAAW,EAAO,EACxB,KAAK,GAAE,WAAW,EAAO,iBAoB1B"}
|
|
@@ -33,7 +33,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
33
33
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
34
34
|
};
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.generateMpConfig = void 0;
|
|
36
|
+
exports.mergeSubPackages = exports.generateMpConfig = void 0;
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const lodash_1 = require("lodash");
|
|
39
39
|
const mp_1 = require("../config/mp");
|
|
@@ -48,7 +48,7 @@ function generateMpConfig(weapps, ctx) {
|
|
|
48
48
|
};
|
|
49
49
|
const { miniprogramPlugins = [] } = ctx;
|
|
50
50
|
const projConfig = (0, lodash_1.merge)({}, mp_1.defaultProjConfig, {
|
|
51
|
-
projectname:
|
|
51
|
+
projectname: `WeDa-${ctx.appId}`,
|
|
52
52
|
});
|
|
53
53
|
const pageConfigs = weapps.map((app) => {
|
|
54
54
|
var _a;
|
|
@@ -78,7 +78,9 @@ function generateMpConfig(weapps, ctx) {
|
|
|
78
78
|
(0, lodash_1.merge)(appConfig, appJson);
|
|
79
79
|
}
|
|
80
80
|
const _b = weapps[0].appConfig || {}, { tradingCapability } = _b, mainAppConfig = __rest(_b, ["tradingCapability"]);
|
|
81
|
-
(
|
|
81
|
+
const _c = extractPages(weapps, pageConfigs), { subpackages } = _c, extra = __rest(_c, ["subpackages"]);
|
|
82
|
+
(0, lodash_1.merge)(appConfig, mainAppConfig, extra);
|
|
83
|
+
appConfig.subpackages = mergeSubPackages(appConfig.subpackages, subpackages);
|
|
82
84
|
if (tradingCapability) {
|
|
83
85
|
const tradePluginKey = `weda-mini-shop-plugin`;
|
|
84
86
|
const pluginMeta = {
|
|
@@ -155,7 +157,7 @@ function transformDynamicData(originData) {
|
|
|
155
157
|
const temp = {};
|
|
156
158
|
for (const key in originData) {
|
|
157
159
|
const target = originData[key];
|
|
158
|
-
if (target
|
|
160
|
+
if (target === null || target === void 0 ? void 0 : target.value) {
|
|
159
161
|
temp[key] = target.value;
|
|
160
162
|
}
|
|
161
163
|
}
|
|
@@ -183,3 +185,22 @@ function parseTabConfig(tabBar, projDir) {
|
|
|
183
185
|
return iconPath;
|
|
184
186
|
}
|
|
185
187
|
}
|
|
188
|
+
function mergeSubPackages(base = [], extra = []) {
|
|
189
|
+
const baseMap = base.reduce((map, item) => {
|
|
190
|
+
map[item.root] = item;
|
|
191
|
+
return map;
|
|
192
|
+
}, {});
|
|
193
|
+
for (const subpackage of extra) {
|
|
194
|
+
if (!baseMap[subpackage.root]) {
|
|
195
|
+
base.push(subpackage);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const current = baseMap[subpackage.root];
|
|
199
|
+
current.pages = Array.from(new Set([...(current.pages || []), ...(subpackage.pages || [])]));
|
|
200
|
+
if (current.plugins || subpackage.plugins) {
|
|
201
|
+
current.plugins = (0, lodash_1.merge)(current.pplugins, subpackage.plugins);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return base;
|
|
205
|
+
}
|
|
206
|
+
exports.mergeSubPackages = mergeSubPackages;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wxml.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/wxml.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,MAAM,EAAE,MAAM,EACd,cAAc,KAAA,EACd,GAAG,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACxC,eAAe,KAAA,EACf,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAA,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"wxml.d.ts","sourceRoot":"","sources":["../../../src/builder/mp/wxml.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,EAEvB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAkB/C,wBAAgB,YAAY,CAC1B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,MAAM,EAAE,MAAM,EACd,cAAc,KAAA,EACd,GAAG,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EACxC,eAAe,KAAA,EACf,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,IAAI,KAAA,KAAK,IAAI,UAiW7D;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,eAAoB,UAS/B;AAuBD,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAAA;CAAE,EACnD,QAAQ,GAAE;IAAE,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAAO;;EAYlD"}
|
package/lib/builder/mp/wxml.js
CHANGED
|
@@ -216,7 +216,7 @@ function generateWxml(widgets, docTag, wxmlDataPrefix, ctx, usingComponents, nod
|
|
|
216
216
|
componentKey === 'gsd-h5-react:Swiper') {
|
|
217
217
|
node.elements = node.elements.map((item, index) => {
|
|
218
218
|
var _a, _b;
|
|
219
|
-
let _c = item.attributes || {}, { ['wx:for']: wxFor, ['wx:for-index']: wxForIndex, ['wx:key']: wxKey } = _c, itemRestKey = __rest(_c, ['wx:for', 'wx:for-index', 'wx:key']);
|
|
219
|
+
let _c = item.attributes || {}, { ['wx:for']: wxFor, ['wx:for-index']: wxForIndex, ['wx:key']: wxKey, ['wx:if']: wxIf } = _c, itemRestKey = __rest(_c, ['wx:for', 'wx:for-index', 'wx:key', 'wx:if']);
|
|
220
220
|
if (item.name !== 'swiper-item') {
|
|
221
221
|
let SwiperItem = {
|
|
222
222
|
type: 'element',
|
|
@@ -226,6 +226,7 @@ function generateWxml(widgets, docTag, wxmlDataPrefix, ctx, usingComponents, nod
|
|
|
226
226
|
'wx:for': wxFor,
|
|
227
227
|
'wx:for-index': wxForIndex,
|
|
228
228
|
'wx:key': wxKey,
|
|
229
|
+
'wx:if': wxIf,
|
|
229
230
|
},
|
|
230
231
|
elements: [],
|
|
231
232
|
_order: index || 0,
|
package/lib/generate.js
CHANGED
|
@@ -15,8 +15,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
15
15
|
exports.handleMpPlugins = void 0;
|
|
16
16
|
const path_1 = __importDefault(require("path"));
|
|
17
17
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
18
|
-
const lodash_1 = require("lodash");
|
|
19
18
|
const webpack_1 = require("./builder/service/builder/webpack");
|
|
19
|
+
const mp_config_1 = require("./builder/mp/mp_config");
|
|
20
20
|
function handleMpPlugins(plugins = [], appBuildDir) {
|
|
21
21
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22
22
|
const appBuildMpDir = path_1.default.resolve(appBuildDir, 'dist/mp');
|
|
@@ -29,7 +29,7 @@ function handleMpPlugins(plugins = [], appBuildDir) {
|
|
|
29
29
|
.forEach((plugin) => {
|
|
30
30
|
const mpBuildAppJsonPath = path_1.default.resolve(appBuildMpDir, 'app.json');
|
|
31
31
|
const pluginAppJsonPath = path_1.default.resolve(appBuildNodeModulesDir, plugin.module, 'app.json');
|
|
32
|
-
|
|
32
|
+
mergeSubPackagesApp(mpBuildAppJsonPath, pluginAppJsonPath);
|
|
33
33
|
buildPkgJson.dependencies[plugin.module] =
|
|
34
34
|
sourcePkgJson.dependencies[plugin.module];
|
|
35
35
|
});
|
|
@@ -39,28 +39,12 @@ function handleMpPlugins(plugins = [], appBuildDir) {
|
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
exports.handleMpPlugins = handleMpPlugins;
|
|
42
|
-
function
|
|
42
|
+
function mergeSubPackagesApp(baseAppJsonPath, mergeAppJsonPath) {
|
|
43
43
|
const baseJson = fs_extra_1.default.readJSONSync(baseAppJsonPath);
|
|
44
44
|
const mergeJson = fs_extra_1.default.readJSONSync(mergeAppJsonPath);
|
|
45
45
|
if (!mergeJson.subpackages)
|
|
46
46
|
return;
|
|
47
47
|
const newJson = Object.assign({}, baseJson);
|
|
48
|
-
|
|
49
|
-
newJson.subpackages = mergeJson.subpackages;
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
mergeJson.subpackages.forEach((mergeItem) => {
|
|
53
|
-
const targetItemIdx = newJson.subpackages.findIndex((item) => {
|
|
54
|
-
return item.root === mergeItem.root;
|
|
55
|
-
});
|
|
56
|
-
if (newJson.subpackages[targetItemIdx]) {
|
|
57
|
-
const pages = (0, lodash_1.uniq)([].concat(newJson.subpackages[targetItemIdx].pages, mergeItem.pages));
|
|
58
|
-
newJson.subpackages[targetItemIdx].pages = pages;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
newJson.subpackages.push(mergeItem);
|
|
62
|
-
}
|
|
63
|
-
});
|
|
64
|
-
}
|
|
48
|
+
newJson.subpackages = (0, mp_config_1.mergeSubPackages)(baseJson.subpackages, mergeJson.subpackages);
|
|
65
49
|
fs_extra_1.default.writeJSONSync(baseAppJsonPath, newJson, { spaces: 2 });
|
|
66
50
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare type CodeType = 'rematch' | 'rematch-action' | 'computed' | 'general-func' | 'general' | 'lifecycle' | 'config' | 'state' | 'handler-fn' | 'normal-module' | 'app-style' | 'style' | 'theme' | 'lib' | 'index' | 'json' | 'app-config' | 'page-config' | 'page';
|
|
1
|
+
export declare type CodeType = 'rematch' | 'rematch-action' | 'computed' | 'general-func' | 'general' | 'lifecycle' | 'config' | 'state' | 'handler-fn' | 'normal-module' | 'app-style' | 'style' | 'theme' | 'lib' | 'index' | 'renderer' | 'json' | 'app-config' | 'page-config' | 'page';
|
|
2
2
|
export declare type RematchModule<State> = (args: {
|
|
3
3
|
sdk: any;
|
|
4
4
|
history: any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code_types.d.ts","sourceRoot":"","sources":["../../../src/weapps-core/types/code_types.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ,GAChB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,eAAe,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,
|
|
1
|
+
{"version":3,"file":"code_types.d.ts","sourceRoot":"","sources":["../../../src/weapps-core/types/code_types.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ,GAChB,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,SAAS,GACT,WAAW,GACX,QAAQ,GACR,OAAO,GACP,YAAY,GACZ,eAAe,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,KAAK,GACL,OAAO,GACP,UAAU,GAGV,MAAM,GACN,YAAY,GACZ,aAAa,GACb,MAAM,CAAC;AAEX,oBAAY,aAAa,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;IACxC,GAAG,MAAC;IACJ,OAAO,MAAC;CACT,KAAK;IACJ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAA,KAAK,KAAK,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,CAAC,QAAQ,KAAA,KAAK;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,GAAG,CAAA;KAAE,CAAC;CAC1D,CAAC;AAEF,oBAAY,aAAa,GAAG,CAAC,QAAQ,KAAA,KAAK,iBAAiB,CAAC;AAE5D,oBAAY,eAAe,GAAG,CAAC,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC;AAEvD,oBAAY,aAAa,GAAG,GAAG,CAAC;AAEhC,oBAAY,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,IAAI,MAAC;IACL,eAAe,MAAC;IAChB,OAAO,MAAC;IACR,WAAW,MAAC;CACb,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/framework-plugin-low-code",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.8-beta.0",
|
|
4
4
|
"description": "云开发 Tencent CloudBase Framework Low Code Plugin,将低码配置生成完整项目并一键部署云开发资源。",
|
|
5
5
|
"author": "yhsunshining@gmail.com",
|
|
6
6
|
"homepage": "https://github.com/TencentCloudBase/cloudbase-framework#readme",
|
|
@@ -35,7 +35,7 @@ function createGlboalApi() {
|
|
|
35
35
|
return <%= appConfig %>;
|
|
36
36
|
},
|
|
37
37
|
resolveStaticResourceUrl(staticUrl) {
|
|
38
|
-
if (/^\//.test(staticUrl)) {
|
|
38
|
+
if (/^\//.test(staticUrl) && !window._isPrivate) {
|
|
39
39
|
const domain = globalAPI?.__internal__?.getConfig?.()?.staticResourceDomain || globalAPI?.domain || ''
|
|
40
40
|
const url = `https://${domain}${staticUrl}`;
|
|
41
41
|
return url;
|
|
@@ -218,29 +218,44 @@ export async function checkAnonymous() {
|
|
|
218
218
|
return isAnonymous;
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
+
let loginConfig;
|
|
222
|
+
export async function getLoginConfig() {
|
|
223
|
+
if (loginConfig !== undefined) {
|
|
224
|
+
return loginConfig;
|
|
225
|
+
}
|
|
226
|
+
const { staticResourceDomain, id } = app.__internal__.getConfig();
|
|
227
|
+
const url = `https://${staticResourceDomain}/${id}/login.config.json?t=${Date.now()}`;
|
|
228
|
+
try {
|
|
229
|
+
let response = await fetch(url);
|
|
230
|
+
loginConfig = await response.json();
|
|
231
|
+
} catch (e) {
|
|
232
|
+
loginConfig = {};
|
|
233
|
+
console.error(`加载登录配置${url}失败`, e);
|
|
234
|
+
}
|
|
235
|
+
return loginConfig;
|
|
236
|
+
}
|
|
237
|
+
|
|
221
238
|
/**
|
|
222
239
|
* 检查页面权限
|
|
223
240
|
**/
|
|
224
241
|
export async function checkAuth(app, appId, $page) {
|
|
225
242
|
<% if (isAdminPortal || isXPage) { %>return true;<% } %>
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
return true
|
|
229
|
-
}
|
|
230
|
-
app.showNavigationBarLoading();
|
|
243
|
+
app.showNavigationBarLoading();
|
|
244
|
+
const loginConfig = await getLoginConfig();
|
|
231
245
|
const requestList = [getAccessPermission(app, appId, $page.id)];
|
|
232
|
-
//
|
|
233
|
-
if (
|
|
246
|
+
// 登录配置内有web登录项则认为开启web登录
|
|
247
|
+
if (loginConfig.web?.length > 0) {
|
|
234
248
|
requestList.push(getAuthConfig(app));
|
|
235
249
|
requestList.push(checkAnonymous());
|
|
250
|
+
requestList.push(getLoginConfig()); // 提前并行加载
|
|
236
251
|
}
|
|
237
252
|
const [isAccess, authConfig, isAnonymous] = await Promise.all(requestList);
|
|
238
253
|
app.hideNavigationBarLoading();
|
|
239
254
|
|
|
240
|
-
if (
|
|
255
|
+
if (loginConfig.web?.length > 0 && isAnonymous) {
|
|
241
256
|
if (authConfig.NeedLogin || (!isAccess && authConfig.RejectStrategy === 'to_login')) {
|
|
242
257
|
redirectToLogin($page);
|
|
243
|
-
return
|
|
258
|
+
return false;
|
|
244
259
|
}
|
|
245
260
|
}
|
|
246
261
|
|
|
@@ -253,25 +268,22 @@ export async function checkAuth(app, appId, $page) {
|
|
|
253
268
|
return isAccess;
|
|
254
269
|
}
|
|
255
270
|
|
|
256
|
-
export function redirectToLogin(currentPage) {
|
|
271
|
+
export async function redirectToLogin(currentPage) {
|
|
257
272
|
// 去登录则清空权限缓存。
|
|
258
273
|
_AUTH_CACHE_MAP = {};
|
|
259
274
|
const app = window.app;
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
if (loginPage) {
|
|
275
|
+
|
|
276
|
+
const loginConfig = await getLoginConfig();
|
|
277
|
+
if (loginConfig.web?.length > 0) {
|
|
278
|
+
const { staticResourceDomain, envId, id, clientId } = app.__internal__.getConfig();
|
|
279
|
+
const url = `${location.origin}/__auth/?redirect_uri=${encodeURIComponent(
|
|
280
|
+
location.href,
|
|
281
|
+
)}&app_id=${id}&env_id=${envId}&client_id=${clientId}&s_domain=${staticResourceDomain}`;
|
|
268
282
|
app.redirectTo({
|
|
269
|
-
|
|
270
|
-
params: {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
})
|
|
283
|
+
mode: 'web',
|
|
284
|
+
params: {},
|
|
285
|
+
url,
|
|
286
|
+
});
|
|
275
287
|
} else {
|
|
276
288
|
app.showToast({
|
|
277
289
|
title: '用户未登录',
|
package/template/src/index.jsx
CHANGED
|
@@ -12,7 +12,7 @@ import attachFastClick from 'fastclick'
|
|
|
12
12
|
import { initWebConfig } from 'handlers/lifecycle'
|
|
13
13
|
const AppConfig = require('../webpack/miniprogram.config')
|
|
14
14
|
import { app } from './app/global-api'
|
|
15
|
-
import { redirectToLogin,
|
|
15
|
+
import { redirectToLogin, getAuthConfig, checkAnonymous, getLoginConfig } from './handlers/utils'
|
|
16
16
|
// app 中注册配置页面以及app的全局配置miniprogram.config,h5里分app以及web页分别处理,使用process.env.isApp 区分判断
|
|
17
17
|
if (process.env.isApp) {
|
|
18
18
|
initWebConfig(app, AppConfig);
|
|
@@ -26,8 +26,7 @@ setConfig({
|
|
|
26
26
|
},
|
|
27
27
|
beforeCallFunction: async (params) => {
|
|
28
28
|
try{
|
|
29
|
-
const
|
|
30
|
-
|
|
29
|
+
const loginConfig = await getLoginConfig();
|
|
31
30
|
let skip = false;
|
|
32
31
|
switch (params?.data?.methodName) {
|
|
33
32
|
case 'callWedaApi': {
|
|
@@ -39,7 +38,7 @@ setConfig({
|
|
|
39
38
|
}
|
|
40
39
|
|
|
41
40
|
// 后续做过滤处理
|
|
42
|
-
if (!
|
|
41
|
+
if (!(loginConfig.web?.length > 0) || (params?.data?.mode === 'c' && skip)) {
|
|
43
42
|
return params;
|
|
44
43
|
}
|
|
45
44
|
const { accessToken } = await getAccessToken();
|
|
@@ -60,8 +59,8 @@ setConfig({
|
|
|
60
59
|
},
|
|
61
60
|
async afterCallFunction(params, error, res) {
|
|
62
61
|
if(params?.data?.params?.action != 'DescribeRuntimeResourceStrategy' && ['InnerError.AuthFailure','InvalidAccessToken'].includes(res?.result?.code)) {
|
|
63
|
-
const
|
|
64
|
-
if (
|
|
62
|
+
const loginConfig = await getLoginConfig();
|
|
63
|
+
if (loginConfig.web?.length > 0) {
|
|
65
64
|
const authConfig = await getAuthConfig();
|
|
66
65
|
const isAnonymous = await checkAnonymous();
|
|
67
66
|
if (isAnonymous && authConfig.RejectStrategy == 'to_login') {
|
|
@@ -157,33 +157,38 @@ export default function App() {
|
|
|
157
157
|
__html: `<%= pageStyleText %>`,
|
|
158
158
|
}}
|
|
159
159
|
/>
|
|
160
|
-
{weDaHasLogin &&
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
160
|
+
{weDaHasLogin &&
|
|
161
|
+
!isPure &&
|
|
162
|
+
(PageLifeCycle.onPageRender ? (
|
|
163
|
+
PageLifeCycle.onPageRender()
|
|
164
|
+
) : (
|
|
165
|
+
<AppRender
|
|
166
|
+
pageListenerInstances={pageListenerInstances}
|
|
167
|
+
virtualFields={virtualFields}
|
|
168
|
+
componentSchema={componentSchema}
|
|
169
|
+
context={dataContextRef.current}
|
|
170
|
+
/**
|
|
171
|
+
* 更新数据容器的上下文的方法
|
|
172
|
+
* 会传递到事件emit的地方,将从组件获取到的数据data赋值给上下文
|
|
173
|
+
* 当组件卸载时,传过来的data为undefined即可
|
|
174
|
+
* {
|
|
175
|
+
* id1: [{...}],
|
|
176
|
+
* id2: {...},
|
|
177
|
+
* id3: undefined,
|
|
178
|
+
* id4: null,
|
|
179
|
+
* ...
|
|
180
|
+
* }
|
|
181
|
+
* @param id
|
|
182
|
+
* @param data
|
|
183
|
+
*/
|
|
184
|
+
updateContext={(id, data) => {
|
|
185
|
+
if (id) {
|
|
186
|
+
dataContextRef.current[id] = { data };
|
|
187
|
+
// console.log('111', context[id])
|
|
188
|
+
}
|
|
189
|
+
}}
|
|
190
|
+
/>
|
|
191
|
+
))}
|
|
187
192
|
</div>
|
|
188
193
|
);
|
|
189
194
|
}
|