@cloudbase/framework-plugin-low-code 0.7.22 → 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.
- package/lib/builder/mp/index.d.ts +2 -2
- package/lib/builder/mp/index.d.ts.map +1 -1
- package/lib/builder/mp/index.js +3 -3
- package/lib/generate.d.ts +1 -2
- package/lib/generate.d.ts.map +1 -1
- package/lib/index.d.ts +2 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -13
- package/lib/utils/dataSource.d.ts +0 -4
- package/lib/utils/dataSource.d.ts.map +1 -1
- package/lib/utils/dataSource.js +4 -20
- package/package.json +3 -2
- package/template/html/index.html.ejs +1 -1
- package/template/mp/app/app-global.js +0 -4
- package/template/mp/app/common.js +0 -26
- package/template/mp/app/handlers.js +0 -15
- package/template/mp/app/weapps-api.js +0 -89
- package/template/mp/app.js +0 -114
- package/template/mp/app.json +0 -1
- package/template/mp/app.wxss +0 -15
- package/template/mp/common/data-patch-test.js +0 -60
- package/template/mp/common/data-patch.js +0 -44
- package/template/mp/common/merge-renderer.js +0 -67
- package/template/mp/common/process.js +0 -1
- package/template/mp/common/style.js +0 -34
- package/template/mp/common/url.js +0 -21
- package/template/mp/common/util.js +0 -395
- package/template/mp/common/utils.wxs +0 -11
- package/template/mp/common/weapp-component.js +0 -250
- package/template/mp/common/weapp-page.js +0 -204
- package/template/mp/common/weapp-sdk.js +0 -76
- package/template/mp/common/widget.js +0 -381
- package/template/mp/common/wx_yypt_report_v2.js +0 -460
- package/template/mp/component/index.js +0 -66
- package/template/mp/component/index.json +0 -4
- package/template/mp/component/index.wxml +0 -1
- package/template/mp/component/index.wxss +0 -1
- package/template/mp/datasources/config.js.tpl +0 -25
- package/template/mp/datasources/dataset-profiles.js.tpl +0 -5
- package/template/mp/datasources/datasource-profiles.js.tpl +0 -4
- package/template/mp/datasources/index.js +0 -31
- package/template/mp/package.json +0 -17
- package/template/mp/page/api.js +0 -1
- package/template/mp/page/index.js +0 -42
- package/template/mp/page/index.json +0 -3
- package/template/mp/page/index.wxml +0 -1
- package/template/mp/page/index.wxss +0 -3
- package/template/mp/project.config.json +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { IMaterialItem, IWeAppData, IPlugin } from '
|
|
1
|
+
import { IMaterialItem, IWeAppData, IPlugin } from '../../weapps-core';
|
|
2
2
|
import { IBuildContext } from './BuildContext';
|
|
3
3
|
import { DEPLOY_MODE } from '../../types';
|
|
4
|
-
import { BuildType, IAppUsedComp, IUsedComps } from '
|
|
4
|
+
import { BuildType, IAppUsedComp, IUsedComps } from '../types/common';
|
|
5
5
|
export declare function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isProduction, deployMode, extraData, isMixMode, options, buildTypeList, }: {
|
|
6
6
|
weapps: IWeAppData[];
|
|
7
7
|
projDir: string;
|
|
@@ -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,
|
|
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;AAM3B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAW/C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAiC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAQrG,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,CA+OvC;AAsJD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,iBAuB9F;AAiBD,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;;;EA6BA"}
|
package/lib/builder/mp/index.js
CHANGED
|
@@ -36,7 +36,7 @@ const chalk_1 = __importDefault(require("chalk"));
|
|
|
36
36
|
const path_1 = __importDefault(require("path"));
|
|
37
37
|
const util_1 = require("util");
|
|
38
38
|
const fs = __importStar(require("fs-extra"));
|
|
39
|
-
const weapps_core_1 = require("
|
|
39
|
+
const weapps_core_1 = require("../../weapps-core");
|
|
40
40
|
const config_1 = require("../config");
|
|
41
41
|
const mp_1 = require("../config/mp");
|
|
42
42
|
const generateFiles_1 = __importStar(require("../util/generateFiles"));
|
|
@@ -52,7 +52,7 @@ const util_3 = require("../util");
|
|
|
52
52
|
const style_1 = require("../util/style");
|
|
53
53
|
const dataSource_1 = require("../../utils/dataSource");
|
|
54
54
|
const types_1 = require("../../types");
|
|
55
|
-
const
|
|
55
|
+
const common_1 = require("../types/common");
|
|
56
56
|
const lodash_1 = require("lodash");
|
|
57
57
|
const junk = __importStar(require("../util/junk"));
|
|
58
58
|
const net_1 = require("../util/net");
|
|
@@ -107,7 +107,7 @@ function generateWxMp({ weapps, projDir, appId, domain, materials, plugins, isPr
|
|
|
107
107
|
appFileData = Object.assign(Object.assign({}, appFileData), { 'common/style.js': {}, 'common/utils.wxs': {
|
|
108
108
|
domain,
|
|
109
109
|
}, 'common/util.js': {
|
|
110
|
-
isAdminPortal: (0,
|
|
110
|
+
isAdminPortal: (0, common_1.buildAsAdminPortalByBuildType)(buildTypeList),
|
|
111
111
|
}, 'common/widget.js': {}, 'common/url.js': {}, 'common/weapp-sdk.js': {}, 'common/weapp-page.js': {
|
|
112
112
|
dataPropNames: wxmlDataPrefix,
|
|
113
113
|
debug: !buildContext.isProduction,
|
package/lib/generate.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare function handleMpPlugins(plugins: IPlugin[] | undefined, appBuildDir: string): Promise<void>;
|
|
1
|
+
export declare function handleMpPlugins(plugins: any[] | undefined, appBuildDir: string): Promise<void>;
|
|
3
2
|
//# sourceMappingURL=generate.d.ts.map
|
package/lib/generate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../src/generate.ts"],"names":[],"mappings":"AAMA,wBAAsB,eAAe,CAAC,OAAO,mBAAwB,EAAE,WAAW,EAAE,MAAM,iBAuBzF"}
|
package/lib/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { PathLike } from 'fs-extra';
|
|
3
3
|
import { Plugin, PluginServiceApi } from '@cloudbase/framework-core';
|
|
4
4
|
import { BuildType, GenerateMpType, DEPLOY_MODE, RUNTIME } from '@cloudbase/lowcode-builder';
|
|
5
|
-
import { IMaterialItem, IPlugin } from '@cloudbase/lowcode-generator/lib/weapps-core';
|
|
6
5
|
export declare const DIST_PATH = "./dist";
|
|
7
6
|
declare const DEFAULT_INPUTS: {
|
|
8
7
|
_inputFile: string;
|
|
@@ -35,12 +34,12 @@ export interface IFrameworkPluginLowCodeInputs {
|
|
|
35
34
|
appId: string;
|
|
36
35
|
mainAppSerializeData: any;
|
|
37
36
|
subAppSerializeDataList?: any[];
|
|
38
|
-
dependencies?:
|
|
37
|
+
dependencies?: any[];
|
|
39
38
|
buildTypeList?: BuildType[];
|
|
40
39
|
generateMpType?: GenerateMpType;
|
|
41
40
|
mpAppId?: string;
|
|
42
41
|
generateMpPath?: string;
|
|
43
|
-
plugins?:
|
|
42
|
+
plugins?: any[];
|
|
44
43
|
mpDeployPrivateKey?: string;
|
|
45
44
|
deployOptions: {
|
|
46
45
|
mode: DEPLOY_MODE;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAOA,OAAW,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,OAAO,EAEL,SAAS,EAET,cAAc,EACd,WAAW,EACX,OAAO,EAMR,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -510,19 +510,24 @@ class LowCodePlugin extends framework_core_1.Plugin {
|
|
|
510
510
|
this.api.logger.error('创建私有化JS文件失败:', e);
|
|
511
511
|
throw e;
|
|
512
512
|
}
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
513
|
+
if (!(0, lowcode_builder_1.buildAsXPageByBuildType)(this._resolvedInputs.buildTypeList)) {
|
|
514
|
+
const deployContent = [
|
|
515
|
+
...(this._webPlugin.buildOutput.static || []),
|
|
516
|
+
...(this._webPlugin.buildOutput.staticConfig || []),
|
|
517
|
+
{
|
|
518
|
+
src: privateJsPath,
|
|
519
|
+
cloudPath: `/weda-config/${private_1.PRIVATE_JS_NAME}`,
|
|
520
|
+
},
|
|
521
|
+
];
|
|
522
|
+
yield Promise.all(deployContent.map((options) => this.api.cloudbaseManager.hosting.uploadFiles({
|
|
523
|
+
localPath: options.src,
|
|
524
|
+
cloudPath: options.cloudPath,
|
|
525
|
+
ignore: this._webPlugin.resolvedInputs.ignore,
|
|
526
|
+
})));
|
|
527
|
+
}
|
|
528
|
+
else {
|
|
529
|
+
this.api.logger.info('xpage 跳过部署流程');
|
|
530
|
+
}
|
|
526
531
|
}
|
|
527
532
|
if (!Object.keys(res.Resources || {}).length && !Object.keys(res.Config || {}).length) {
|
|
528
533
|
this._skipInstallExt = true;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { IWebRuntimeAppData } from '@cloudbase/lowcode-generator/lib/weapps-core';
|
|
2
1
|
export declare const CLOUD_FUNCTION_TYPE = "cloud-function";
|
|
3
2
|
export declare const EXTERNAL_FUNCTION_TYPE = "http";
|
|
4
3
|
export declare const DATABASE_TYPE = "database";
|
|
@@ -9,9 +8,6 @@ export declare function mergeDependencies(...pkgs: any[]): {};
|
|
|
9
8
|
export declare function lowercaseKey(obj: any, deep?: boolean): any;
|
|
10
9
|
export declare function standardizeDataSource(ds: any): any;
|
|
11
10
|
export declare function getDatasourceProfiles(datasources: any): any;
|
|
12
|
-
export declare function getDataVarProfiles(appData: IWebRuntimeAppData): {
|
|
13
|
-
$global: any[];
|
|
14
|
-
};
|
|
15
11
|
export declare function getDatasetProfiles(mainAppData: {
|
|
16
12
|
dataset?: any;
|
|
17
13
|
rootPath?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSource.d.ts","sourceRoot":"","sources":["../../src/utils/dataSource.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dataSource.d.ts","sourceRoot":"","sources":["../../src/utils/dataSource.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AACpD,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAC7C,eAAO,MAAM,aAAa,aAAa,CAAC;AAMxC,wBAAgB,yBAAyB,CAAC,UAAU,KAAA,EAAE,IAAI,KAAA,UAGzD;AAED,wBAAgB,4BAA4B,CAAC,KAAK,KAAA,EAAE,UAAU,KAAA,EAAE,IAAI,KAAA,UAGnE;AAMD,wBAAgB,yBAAyB,CAAC,QAAQ,KAAA,EAAE,IAAI,KAAA,iBAEvD;AAMD,wBAAgB,iBAAiB,CAAC,GAAG,IAAI,OAAA,MAaxC;AAmBD,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,CAU1D;AAOD,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,OA6C5C;AAOD,wBAAgB,qBAAqB,CAAC,WAAW,KAAA,OAehD;AA+BD,wBAAgB,kBAAkB,CAChC,WAAW,EAAE;IACX,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACxC,EACD,IAAI,CAAC,EAAE;IACL,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;CACxC,EAAE,MAeJ"}
|
package/lib/utils/dataSource.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getDatasetProfiles = exports.
|
|
6
|
+
exports.getDatasetProfiles = exports.getDatasourceProfiles = exports.standardizeDataSource = exports.lowercaseKey = exports.mergeDependencies = exports.getDatasourceDatabaseName = exports.getAppDatasourceResourceName = exports.getDatasourceResourceName = exports.DATABASE_TYPE = exports.EXTERNAL_FUNCTION_TYPE = exports.CLOUD_FUNCTION_TYPE = void 0;
|
|
7
7
|
const merge_package_json_1 = __importDefault(require("merge-package-json"));
|
|
8
8
|
const lowcode_builder_1 = require("@cloudbase/lowcode-builder");
|
|
9
9
|
const cals_1 = require("@cloudbase/cals");
|
|
@@ -23,9 +23,7 @@ function getAppDatasourceResourceName(appId, datasrouce, mode) {
|
|
|
23
23
|
}
|
|
24
24
|
exports.getAppDatasourceResourceName = getAppDatasourceResourceName;
|
|
25
25
|
function getDatasourceDatabaseName(dsConfig, mode) {
|
|
26
|
-
return dsConfig.type === exports.DATABASE_TYPE
|
|
27
|
-
? getDatasourceResourceName(dsConfig, mode)
|
|
28
|
-
: null;
|
|
26
|
+
return dsConfig.type === exports.DATABASE_TYPE ? getDatasourceResourceName(dsConfig, mode) : null;
|
|
29
27
|
}
|
|
30
28
|
exports.getDatasourceDatabaseName = getDatasourceDatabaseName;
|
|
31
29
|
function mergeDependencies(...pkgs) {
|
|
@@ -35,9 +33,7 @@ function mergeDependencies(...pkgs) {
|
|
|
35
33
|
const formated = getDependencies(pkg);
|
|
36
34
|
for (let key in formated.dependencies) {
|
|
37
35
|
formated.dependencies[key] =
|
|
38
|
-
formated.dependencies[key] === '*' && ((_a = acc === null || acc === void 0 ? void 0 : acc.dependencies) === null || _a === void 0 ? void 0 : _a[key]) === '*'
|
|
39
|
-
? 'latest'
|
|
40
|
-
: formated.dependencies[key];
|
|
36
|
+
formated.dependencies[key] === '*' && ((_a = acc === null || acc === void 0 ? void 0 : acc.dependencies) === null || _a === void 0 ? void 0 : _a[key]) === '*' ? 'latest' : formated.dependencies[key];
|
|
41
37
|
}
|
|
42
38
|
const merged = (0, merge_package_json_1.default)(formated, acc);
|
|
43
39
|
return JSON.parse(merged);
|
|
@@ -113,17 +109,6 @@ function getDatasourceProfiles(datasources) {
|
|
|
113
109
|
})) || []);
|
|
114
110
|
}
|
|
115
111
|
exports.getDatasourceProfiles = getDatasourceProfiles;
|
|
116
|
-
function getDataVarProfiles(appData) {
|
|
117
|
-
const result = {
|
|
118
|
-
$global: (appData.vars && appData.vars.data) || [],
|
|
119
|
-
};
|
|
120
|
-
appData.pageInstanceList.forEach((pageInstance) => {
|
|
121
|
-
let p = pageInstance;
|
|
122
|
-
result[p.id] = (p.vars && p.vars.data) || [];
|
|
123
|
-
});
|
|
124
|
-
return result;
|
|
125
|
-
}
|
|
126
|
-
exports.getDataVarProfiles = getDataVarProfiles;
|
|
127
112
|
function _generateDynamicDataset(dataset) {
|
|
128
113
|
var _a;
|
|
129
114
|
let { state } = dataset;
|
|
@@ -162,8 +147,7 @@ function getDatasetProfiles(mainAppData, apps) {
|
|
|
162
147
|
(_a = app.pageInstanceList) === null || _a === void 0 ? void 0 : _a.forEach((pageInstance) => {
|
|
163
148
|
let p = pageInstance;
|
|
164
149
|
if (p.dataset) {
|
|
165
|
-
result[app.rootPath ? `${app.rootPath}/${p.id}` : p.id] =
|
|
166
|
-
_generateDynamicDataset(p.dataset);
|
|
150
|
+
result[app.rootPath ? `${app.rootPath}/${p.id}` : p.id] = _generateDynamicDataset(p.dataset);
|
|
167
151
|
}
|
|
168
152
|
});
|
|
169
153
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/framework-plugin-low-code",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.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,11 +35,12 @@
|
|
|
35
35
|
"url": "https://github.com/TencentCloudBase/cloudbase-framework/issues"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@cloudbase/cals": "0.3.
|
|
38
|
+
"@cloudbase/cals": "^0.3.31",
|
|
39
39
|
"@cloudbase/framework-core": "^1.8.16",
|
|
40
40
|
"@cloudbase/framework-plugin-auth": "^1.8.16",
|
|
41
41
|
"@cloudbase/framework-plugin-mp": "v1.3.6-beta.8",
|
|
42
42
|
"@cloudbase/framework-plugin-website": "^1.8.17",
|
|
43
|
+
"@cloudbase/lowcode-builder": "^1.0.1",
|
|
43
44
|
"@formily/react-schema-renderer": "1.1.7",
|
|
44
45
|
"archiver": "^4.0.1",
|
|
45
46
|
"axios": "^0.21.0",
|
|
@@ -450,7 +450,7 @@
|
|
|
450
450
|
></script>
|
|
451
451
|
<script
|
|
452
452
|
crossorigin="anonymous"
|
|
453
|
-
src="https://qbase.cdn-go.cn//lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-client@0.2.
|
|
453
|
+
src="https://qbase.cdn-go.cn//lcap/lcap-resource-cdngo/-/release/_npm/@cloudbase/weda-client@0.2.15/dist/web.browser.js"
|
|
454
454
|
></script>
|
|
455
455
|
</body>
|
|
456
456
|
</html>
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
<% mods.forEach((mod) => {%>
|
|
2
|
-
import * as <%= mod %> from '../lowcode/common/<%= mod %>'<%}) %>
|
|
3
|
-
|
|
4
|
-
const _weapps_app_common = {}
|
|
5
|
-
|
|
6
|
-
function getDefaultModule(targetModule) {
|
|
7
|
-
if (!targetModule) {
|
|
8
|
-
return
|
|
9
|
-
}
|
|
10
|
-
const keys = Object.keys(targetModule)
|
|
11
|
-
if (keys.length === 1 && keys[0] === 'default') {
|
|
12
|
-
return targetModule.default
|
|
13
|
-
}
|
|
14
|
-
return targetModule
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
Object.defineProperties(_weapps_app_common, {
|
|
18
|
-
<% mods.forEach((mod) => {%>
|
|
19
|
-
<%= mod %>: {
|
|
20
|
-
get() {
|
|
21
|
-
return getDefaultModule(<%= mod %>)
|
|
22
|
-
}
|
|
23
|
-
},<%}) %>
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
export default _weapps_app_common
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<% pageModules.forEach(({id: pageId, lowCodes}) => { %>
|
|
2
|
-
<% lowCodes.filter(mod => mod.type === 'handler-fn' && mod.name !== '____index____').forEach(mod => {%>
|
|
3
|
-
import <%= pageId%>_<%= mod.name%> from '../lowcode/<%= pageId%>/handler/<%= mod.name%>'
|
|
4
|
-
<% }) %>
|
|
5
|
-
<% }) %>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<% pageModules.forEach(({id: pageId, lowCodes}) => { %>
|
|
10
|
-
export const <%=pageId %> = {
|
|
11
|
-
<% lowCodes.filter(mod => mod.type === 'handler-fn' && mod.name !== '____index____').forEach(mod => {%>
|
|
12
|
-
['<%= mod.name%>']: <%= pageId%>_<%= mod.name%>,
|
|
13
|
-
<% }) %>
|
|
14
|
-
}
|
|
15
|
-
<% }) %>
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { observable } from 'mobx'
|
|
2
|
-
import { createMpApp } from '@cloudbase/weda-client';
|
|
3
|
-
import { createComputed, formatEnum, enumOptions} from '<%= subLevelPath %>../common/util'
|
|
4
|
-
import process from '<%= subLevelPath %>../common/process'
|
|
5
|
-
import appGlobal from '<%= subLevelPath %>../app/app-global'
|
|
6
|
-
import { CLOUD_SDK, createDataset, EXTRA_API } from '<%= subLevelPath %>../datasources/index'
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
<% if (!isBare) {%>
|
|
10
|
-
import state from '../lowcode/state'
|
|
11
|
-
import computed from '../lowcode/computed'
|
|
12
|
-
import common from './common'
|
|
13
|
-
<%} else {%>
|
|
14
|
-
const state = {}
|
|
15
|
-
const computed ={}
|
|
16
|
-
const common = {}
|
|
17
|
-
<%}%>
|
|
18
|
-
|
|
19
|
-
const mainAppKey = '__weappsMainApp'
|
|
20
|
-
|
|
21
|
-
export const app = createGlboalApi()
|
|
22
|
-
export { process }
|
|
23
|
-
|
|
24
|
-
function createGlboalApi() {
|
|
25
|
-
const mpApp = createMpApp({
|
|
26
|
-
appConfig: <%= appConfig %>
|
|
27
|
-
})
|
|
28
|
-
const globalAPI = {
|
|
29
|
-
id: '<%= appId %>',
|
|
30
|
-
domain: '<%= domain %>',
|
|
31
|
-
platform: 'MINIPROGRAME',
|
|
32
|
-
pages: {},
|
|
33
|
-
session: {
|
|
34
|
-
//configure: sdk.configure,
|
|
35
|
-
//request: sdk.request,
|
|
36
|
-
//getSessionId: sdk.getSessionId,
|
|
37
|
-
},
|
|
38
|
-
state: observable(state),
|
|
39
|
-
computed: createComputed(computed),
|
|
40
|
-
common,
|
|
41
|
-
invoke(params) {
|
|
42
|
-
return app.__internal__.activePage.invokeComponentMethod(params)
|
|
43
|
-
},
|
|
44
|
-
...mpApp,
|
|
45
|
-
} // The global api exposed to lowcode
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
globalAPI.__internal__.enumOptions = enumOptions
|
|
49
|
-
globalAPI.utils.formatEnum = formatEnum
|
|
50
|
-
/**
|
|
51
|
-
* @deprecated utils._getConfig
|
|
52
|
-
*/
|
|
53
|
-
globalAPI.utils._getConfig = () => {
|
|
54
|
-
return globalAPI.__internal__.getConfig()
|
|
55
|
-
}
|
|
56
|
-
globalAPI.utils.getWXContext = async function() {
|
|
57
|
-
const { Data } = await globalAPI.cloud.callWedaApi({
|
|
58
|
-
action: 'InvokeComponentWxModule',
|
|
59
|
-
data: {
|
|
60
|
-
Method: 'GetWxContext',
|
|
61
|
-
},
|
|
62
|
-
});
|
|
63
|
-
return typeof Data === 'string' ? JSON.parse(Data) : Data
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
let dataset = createDataset('$global')
|
|
67
|
-
globalAPI.dataset = dataset
|
|
68
|
-
globalAPI.state.dataset = dataset
|
|
69
|
-
globalAPI.setState = (userSetState) => {
|
|
70
|
-
Object.keys(userSetState).forEach((keyPath) => {
|
|
71
|
-
globalAPI.utils.set(globalAPI.dataset.state, keyPath, userSetState[keyPath]);
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
const subPackageName = '<%= subPackageName %>'
|
|
76
|
-
if (subPackageName) {
|
|
77
|
-
// is sub app
|
|
78
|
-
globalAPI.mainApp = appGlobal[mainAppKey]
|
|
79
|
-
const mpApp = getApp()
|
|
80
|
-
mpApp && (mpApp.subApp = globalAPI)
|
|
81
|
-
} else {
|
|
82
|
-
// is mainApp
|
|
83
|
-
appGlobal[mainAppKey] = globalAPI
|
|
84
|
-
}
|
|
85
|
-
// 避免被wx.cloud 覆盖
|
|
86
|
-
globalAPI.cloud = CLOUD_SDK
|
|
87
|
-
|
|
88
|
-
return globalAPI
|
|
89
|
-
}
|
package/template/mp/app.js
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import lifeCycle from './lowcode/lifecycle'
|
|
2
|
-
import { app } from './app/weapps-api'
|
|
3
|
-
// 引入数据源管理器并进行初始化
|
|
4
|
-
import { setConfig, getAccessToken, EXTRA_API, createStateDataSourceVar, generateParamsParser } from './datasources/index';
|
|
5
|
-
import { redirectToLogin, findLoginPage, getAuthConfig } from './common/util'
|
|
6
|
-
|
|
7
|
-
// 设置数据源请求的 loading 及 toast 处理
|
|
8
|
-
setConfig({
|
|
9
|
-
beforeDSRequest: (cfg) => {
|
|
10
|
-
if (!cfg.options || !cfg.options.showLoading) return
|
|
11
|
-
app.showLoading()
|
|
12
|
-
},
|
|
13
|
-
beforeCallFunction: async (params) => {
|
|
14
|
-
try {
|
|
15
|
-
const loginPage = findLoginPage();
|
|
16
|
-
|
|
17
|
-
let skip = false;
|
|
18
|
-
switch (params?.data?.methodName) {
|
|
19
|
-
case 'callWedaApi': {
|
|
20
|
-
if (['GetMiniProgramUserTicket', 'DescribeRuntimeResourceStrategy'].includes(params?.data?.params.action)) {
|
|
21
|
-
skip = true;
|
|
22
|
-
}
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// 后续做过滤处理
|
|
28
|
-
if (!loginPage || (params?.data?.mode === 'c' && skip)) {
|
|
29
|
-
return params;
|
|
30
|
-
}
|
|
31
|
-
// await initTcb();
|
|
32
|
-
const { accessToken } = await getAccessToken();
|
|
33
|
-
if (accessToken) {
|
|
34
|
-
params.data.accessToken = accessToken;
|
|
35
|
-
}
|
|
36
|
-
} catch (e) {
|
|
37
|
-
if (app?.cloud?.currentUser?.userType === "externalUser" && e?.error === 'unauthenticated') {
|
|
38
|
-
app.showToast({
|
|
39
|
-
title: '登录态失效',
|
|
40
|
-
icon: 'error',
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
console.error('beforeCallFunction error', e);
|
|
44
|
-
}
|
|
45
|
-
return params;
|
|
46
|
-
},
|
|
47
|
-
afterDSRequest: (cfg, error, result) => {
|
|
48
|
-
if (!cfg.options) return
|
|
49
|
-
if (cfg.options.showLoading) app.hideLoading()
|
|
50
|
-
if (!cfg.options.showToast) return
|
|
51
|
-
const isSuccess = !error && result && !result.code
|
|
52
|
-
app.showToast({ icon: isSuccess ? 'success' : 'error' })
|
|
53
|
-
},
|
|
54
|
-
async afterCallFunction(params, error, res) {
|
|
55
|
-
if (params?.data?.params?.action != 'DescribeRuntimeResourceStrategy' && ['InnerError.AuthFailure', 'InvalidAccessToken'].includes(res?.result?.code)) {
|
|
56
|
-
const loginPage = findLoginPage();
|
|
57
|
-
if (loginPage) {
|
|
58
|
-
const authConfig = await getAuthConfig();
|
|
59
|
-
let isAnonymous = true;
|
|
60
|
-
try {
|
|
61
|
-
const { accessToken } = await getAccessToken();
|
|
62
|
-
isAnonymous = !accessToken;
|
|
63
|
-
} catch (e) { }
|
|
64
|
-
if (isAnonymous && authConfig.RejectStrategy == 'to_login') {
|
|
65
|
-
redirectToLogin();
|
|
66
|
-
} else if (authConfig.RejectStrategy == 'show_warning') {
|
|
67
|
-
app.showToast({
|
|
68
|
-
title: '接口无访问权限',
|
|
69
|
-
icon: 'error',
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
})
|
|
76
|
-
|
|
77
|
-
App({
|
|
78
|
-
onLaunch(options) {
|
|
79
|
-
this.app = app
|
|
80
|
-
const onLaunch = lifeCycle.onLaunch || lifeCycle.onAppLaunch
|
|
81
|
-
let { query = {} } = options
|
|
82
|
-
EXTRA_API.setParams('$global', query)
|
|
83
|
-
createStateDataSourceVar('$global', generateParamsParser({ app }))
|
|
84
|
-
|
|
85
|
-
onLaunch && onLaunch.call(this, options)
|
|
86
|
-
<% if (yyptConfig.yyptAppKey) { %>
|
|
87
|
-
// 挂运营平台上报对象到app里
|
|
88
|
-
app.yyptReport = wxReport
|
|
89
|
-
<% }%>
|
|
90
|
-
},
|
|
91
|
-
onShow(options) {
|
|
92
|
-
const fn = lifeCycle.onShow || lifeCycle.onAppShow
|
|
93
|
-
fn && fn.call(this, options)
|
|
94
|
-
<% if (yyptConfig.yyptAppKey) { %>
|
|
95
|
-
wxReport.startReport()
|
|
96
|
-
<% }%>
|
|
97
|
-
},
|
|
98
|
-
onHide() {
|
|
99
|
-
const fn = lifeCycle.onHide || lifeCycle.onAppHide
|
|
100
|
-
fn && fn.call(this)
|
|
101
|
-
},
|
|
102
|
-
onError(msg) {
|
|
103
|
-
const fn = lifeCycle.onError || lifeCycle.onAppError
|
|
104
|
-
fn && fn.call(this, msg)
|
|
105
|
-
},
|
|
106
|
-
onPageNotFound() {
|
|
107
|
-
const fn = lifeCycle.onPageNotFound
|
|
108
|
-
fn && fn.call(this)
|
|
109
|
-
},
|
|
110
|
-
onUnhandledRejection() {
|
|
111
|
-
const fn = lifeCycle.onUnhandledRejection
|
|
112
|
-
fn && fn.call(this)
|
|
113
|
-
},
|
|
114
|
-
})
|
package/template/mp/app.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<%= JSON.stringify(content, ' ', 2) %>
|
package/template/mp/app.wxss
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/** common.wxss **/
|
|
2
|
-
page {
|
|
3
|
-
/* 修复小程序 Picker 组件滑动体验问题 */
|
|
4
|
-
touch-action: pan-y;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
page view, page element, page text, page image {
|
|
8
|
-
box-sizing: border-box;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/** import styles specified by material libs*/<% importStyles.map(style => {%>
|
|
12
|
-
@import '<%= style %>';<%})%>
|
|
13
|
-
|
|
14
|
-
/** import lowcode styles */
|
|
15
|
-
@import 'lowcode/style.wxss';
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import assert from 'assert'
|
|
2
|
-
import { getDatapatch } from './data-patch.js'
|
|
3
|
-
|
|
4
|
-
const cases = [
|
|
5
|
-
{
|
|
6
|
-
desc: 'New component',
|
|
7
|
-
base: {},
|
|
8
|
-
data: { id1: { a: 1 } },
|
|
9
|
-
patch: { id1: { a: 1 } }
|
|
10
|
-
}, {
|
|
11
|
-
desc: 'Component prop update',
|
|
12
|
-
base: { id1: { a: 1, b: 2 } },
|
|
13
|
-
data: { id1: { a: 1, b: 3 } },
|
|
14
|
-
patch: { 'id1.b': 3 }
|
|
15
|
-
}, {
|
|
16
|
-
desc: 'More than 1/3 of props changed',
|
|
17
|
-
base: { id1: { a: 1, b: 2, c: 3 } },
|
|
18
|
-
data: { id1: { a: 1, b: 4, c: 5 } },
|
|
19
|
-
patch: { id1: { a: 1, b: 4, c: 5 } }
|
|
20
|
-
}, {
|
|
21
|
-
desc: 'New multiple components',
|
|
22
|
-
base: {},
|
|
23
|
-
data: { id1: { a: 1 }, id2: { c: 2 }, id3: [{ c: 1 }] },
|
|
24
|
-
patch: { id1: { a: 1 }, id2: { c: 2 }, id3: [{ c: 1 }] }
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
desc: 'Update component prop in array',
|
|
28
|
-
base: { id1: [{ a: 1 }, { a: 2 }, { a: 8 }] },
|
|
29
|
-
data: { id1: [{ a: 1 }, { a: 3 }, { a: 8 }] },
|
|
30
|
-
patch: { 'id1[1].a': 3 }
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
desc: 'Update component prop in 2d array',
|
|
34
|
-
base: { id1: [[{ a: 1 }, { a: 2 }], [{ a: 1 }]] },
|
|
35
|
-
data: { id1: [[{ a: 1 }, { a: 3 }], [{ a: 1 }]] },
|
|
36
|
-
patch: { 'id1[0][1].a': 3 }
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
desc: 'Add component in array',
|
|
40
|
-
base: { id1: [{ a: 1 }, { a: 2 }] },
|
|
41
|
-
data: { id1: [{ a: 1 }, { a: 2 }, { a: 9 }] },
|
|
42
|
-
patch: { 'id1[2]': { a: 9 } }
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
desc: 'Add 2 components in array',
|
|
46
|
-
base: { id1: [{ a: 1 }, { a: 2 }] },
|
|
47
|
-
data: { id1: [{ a: 1 }, { a: 2 }, { a: 9 }, { a: 8 }] },
|
|
48
|
-
patch: { 'id1[2]': { a: 9 }, 'id1[3]': { a: 8 } }
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
desc: 'array: delete component',
|
|
52
|
-
base: { id1: [{ a: 1 }, { a: 2 }, { a: 2 }] },
|
|
53
|
-
data: { id1: [{ a: 1 }, { a: 2 }] },
|
|
54
|
-
patch: { id1: [{ a: 1 }, { a: 2 }] }
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
|
|
58
|
-
for (const c of cases) {
|
|
59
|
-
assert.deepStrictEqual(getDatapatch(c.base, c.data), c.patch, c.desc)
|
|
60
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
export function getDatapatch(base, pendingData) {
|
|
3
|
-
const patch = {}
|
|
4
|
-
for (const widgetId in pendingData) {
|
|
5
|
-
const baseWidget = base[widgetId]
|
|
6
|
-
const pendingWidget = pendingData[widgetId]
|
|
7
|
-
if (!baseWidget) {
|
|
8
|
-
patch[widgetId] = pendingWidget
|
|
9
|
-
} else {
|
|
10
|
-
patchProp(baseWidget, pendingWidget, patch, widgetId)
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
return patch
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function patchProp(baseWidget, pendingWidget, patch, prefixes) {
|
|
17
|
-
if (Array.isArray(pendingWidget)) {
|
|
18
|
-
if (pendingWidget.length < baseWidget.length) { // array element deleted
|
|
19
|
-
patch[prefixes] = pendingWidget
|
|
20
|
-
return
|
|
21
|
-
}
|
|
22
|
-
for (let i = 0; i < pendingWidget.length; i++) {
|
|
23
|
-
if (!baseWidget[i]) { // new array element
|
|
24
|
-
patch[prefixes + '[' + i + ']'] = pendingWidget[i]
|
|
25
|
-
} else {
|
|
26
|
-
patchProp(baseWidget[i], pendingWidget[i], patch, prefixes + '[' + i + ']')
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
} else {
|
|
30
|
-
if (pendingWidget._waIf === false && baseWidget._waIf === false) {
|
|
31
|
-
return
|
|
32
|
-
}
|
|
33
|
-
const allProps = Object.keys(pendingWidget)
|
|
34
|
-
// Attention: since setData will copy data deeply, if property is object, it should be treated as different
|
|
35
|
-
const differentProps = allProps.filter(prop => typeof pendingWidget[prop] === 'object' || pendingWidget[prop] !== baseWidget[prop])
|
|
36
|
-
if (differentProps.length === 1 || differentProps.length <= allProps.length / 3) {
|
|
37
|
-
differentProps.map(patchProp => {
|
|
38
|
-
patch[prefixes + '.' + patchProp] = pendingWidget[patchProp]
|
|
39
|
-
})
|
|
40
|
-
} else {
|
|
41
|
-
patch[prefixes] = pendingWidget
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|