@cloudbase/cals 0.5.13-alpha.5 → 0.5.13-alpha.7
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/utils/dts/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/dts/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/dts/index.ts"],"names":[],"mappings":"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"}
|
package/lib/utils/dts/index.js
CHANGED
|
@@ -8,9 +8,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
exports.compileJSONToDTS = exports.jsonToDTSWorkerCode = exports.transpileToDTS = exports.workerCode = exports.generateWeDaAppDTS = exports.WeDaDTS = exports.IInputDataType = void 0;
|
|
13
16
|
const lodash_1 = require("lodash");
|
|
17
|
+
const json_easy_filter_1 = __importDefault(require("json-easy-filter"));
|
|
14
18
|
const auto_generated_1 = require("./auto-generated");
|
|
15
19
|
var IInputDataType;
|
|
16
20
|
(function (IInputDataType) {
|
|
@@ -129,7 +133,10 @@ function generateWeDaAppDTS(inputData = {}, options = { isCompMode: false, needG
|
|
|
129
133
|
if (placeholder) {
|
|
130
134
|
// 防止某项错误导致全部都错误
|
|
131
135
|
try {
|
|
132
|
-
const [dts] = yield _generateOneItemDTS(inputData[key], key);
|
|
136
|
+
const [dts, replaceRules] = yield _generateOneItemDTS(inputData[key], key);
|
|
137
|
+
replaceRules.forEach(rule => {
|
|
138
|
+
resultDts = resultDts.replace(rule.from, rule.to);
|
|
139
|
+
});
|
|
133
140
|
resultDts = resultDts.replace(placeholder, dts + '\n' + placeholder);
|
|
134
141
|
}
|
|
135
142
|
catch (e) {
|
|
@@ -163,9 +170,9 @@ exports.generateWeDaAppDTS = generateWeDaAppDTS;
|
|
|
163
170
|
/**
|
|
164
171
|
* 生成 weda 专有的注释信息
|
|
165
172
|
*/
|
|
166
|
-
function genWeDaCodeComment({ fieldName, title, description, type, group }) {
|
|
167
|
-
const desc = `${title || fieldName}\n${description || ''}
|
|
168
|
-
return desc + `\n@privateForWeDa\n${JSON.stringify({ group, displayType: type, displayName: title || '' })}`;
|
|
173
|
+
function genWeDaCodeComment({ fieldName, title, description, type, group, schema, subGroup, }) {
|
|
174
|
+
const desc = (title || fieldName) ? `${title || fieldName}\n${description || ''}` : '';
|
|
175
|
+
return desc + `\n@privateForWeDa\n${JSON.stringify({ group, displayType: type, displayName: title || '', schema, subGroup })}`;
|
|
169
176
|
}
|
|
170
177
|
/**
|
|
171
178
|
* 生成指定类型的 DTS
|
|
@@ -176,24 +183,32 @@ function _generateOneItemDTS(inputData, itemType) {
|
|
|
176
183
|
/**
|
|
177
184
|
* 处理注释信息
|
|
178
185
|
*/
|
|
179
|
-
function _handleComment(inputData, group) {
|
|
186
|
+
function _handleComment(inputData, group, needKeepSchema) {
|
|
180
187
|
const _inputData = (0, lodash_1.cloneDeep)(inputData);
|
|
181
|
-
|
|
188
|
+
json_easy_filter_1.default.traverse(_inputData, function (key, value, path) {
|
|
182
189
|
var _a;
|
|
183
190
|
if ((value === null || value === void 0 ? void 0 : value.type) && !((_a = value === null || value === void 0 ? void 0 : value.type) === null || _a === void 0 ? void 0 : _a.type)) {
|
|
184
191
|
// value?.type?.type 有值,则证明 type 是自定义的字段,而非 JSONSchema 中的 type
|
|
192
|
+
let schema = null;
|
|
193
|
+
if (needKeepSchema) {
|
|
194
|
+
const isFirstLevel = path.length === 2 && (path === null || path === void 0 ? void 0 : path[0]) === 'properties';
|
|
195
|
+
if (isFirstLevel) {
|
|
196
|
+
// 只需要第一级属性需要保存,且只保存子信息(对象或数组的子项)
|
|
197
|
+
schema = (value.properties || value.items) ? value : null;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
185
200
|
value.description = genWeDaCodeComment({
|
|
186
201
|
fieldName: key,
|
|
187
202
|
title: value.title,
|
|
188
203
|
description: value.description,
|
|
189
204
|
group: group,
|
|
190
|
-
type: value.type
|
|
205
|
+
type: value.type,
|
|
206
|
+
schema
|
|
191
207
|
});
|
|
192
208
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
return schema;
|
|
209
|
+
});
|
|
210
|
+
_inputData.description = ''; // 避免第一层出现注释
|
|
211
|
+
return _inputData;
|
|
197
212
|
}
|
|
198
213
|
/**
|
|
199
214
|
* 获取用于显示的数据类型(仅有 number, string , boolean, array, object 等内置基础类型)
|
|
@@ -234,14 +249,14 @@ function _generateOneItemDTS(inputData, itemType) {
|
|
|
234
249
|
[IInputDataType.globalState]: function (inputData) {
|
|
235
250
|
return __awaiter(this, void 0, void 0, function* () {
|
|
236
251
|
// 完善注释信息
|
|
237
|
-
const handledInputData = _handleComment(inputData, GroupEnum.GLOBAL_VAR);
|
|
252
|
+
const handledInputData = _handleComment(inputData, GroupEnum.GLOBAL_VAR, true);
|
|
238
253
|
return yield _compile(handledInputData);
|
|
239
254
|
});
|
|
240
255
|
},
|
|
241
256
|
[IInputDataType.pageState]: function (inputData) {
|
|
242
257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
243
258
|
// 完善注释信息
|
|
244
|
-
const handledInputData = _handleComment(inputData, GroupEnum.PAGE_VAR);
|
|
259
|
+
const handledInputData = _handleComment(inputData, GroupEnum.PAGE_VAR, true);
|
|
245
260
|
return yield _compile(handledInputData);
|
|
246
261
|
});
|
|
247
262
|
},
|
|
@@ -373,25 +388,37 @@ function _generateOneItemDTS(inputData, itemType) {
|
|
|
373
388
|
[IInputDataType.repeaterScope]: function (inputData) {
|
|
374
389
|
return __awaiter(this, void 0, void 0, function* () {
|
|
375
390
|
const results = yield Promise.all(inputData.map((item) => __awaiter(this, void 0, void 0, function* () {
|
|
376
|
-
let itemDataDTS =
|
|
391
|
+
let itemDataDTS = '';
|
|
392
|
+
if (item.itemData.title) {
|
|
393
|
+
// 特殊场景:数据字段
|
|
394
|
+
const handledInputData = _handleComment(item.itemData, GroupEnum.DATA_FIELD);
|
|
395
|
+
itemDataDTS = yield _compile(handledInputData, true);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
// 普通的循环项数据
|
|
399
|
+
itemDataDTS = yield _compile(item.itemData, true);
|
|
400
|
+
}
|
|
377
401
|
return `
|
|
378
402
|
/**
|
|
379
403
|
${genWeDaCodeComment({
|
|
380
404
|
fieldName: item.currentItemAlias,
|
|
381
|
-
title: '',
|
|
405
|
+
title: '当前项值',
|
|
382
406
|
description: '',
|
|
383
407
|
group: GroupEnum.REPEATER,
|
|
384
|
-
type: getDisplayReturnType(itemDataDTS)
|
|
408
|
+
type: getDisplayReturnType(itemDataDTS),
|
|
409
|
+
schema: item.itemData,
|
|
410
|
+
subGroup: item.widgetId
|
|
385
411
|
}).split('\n').map(item => `* ${item}`).join('\n')}
|
|
386
412
|
*/
|
|
387
413
|
const ${item.currentItemAlias}: ${itemDataDTS}
|
|
388
414
|
/**
|
|
389
415
|
${genWeDaCodeComment({
|
|
390
416
|
fieldName: item.currentIndexAlias,
|
|
391
|
-
title: '',
|
|
417
|
+
title: '当前下标',
|
|
392
418
|
description: '',
|
|
393
419
|
group: GroupEnum.REPEATER,
|
|
394
|
-
type: 'number'
|
|
420
|
+
type: 'number',
|
|
421
|
+
subGroup: item.widgetId
|
|
395
422
|
}).split('\n').map(item => `* ${item}`).join('\n')}
|
|
396
423
|
*/
|
|
397
424
|
const ${item.currentIndexAlias}: number
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudbase/cals",
|
|
3
|
-
"version": "0.5.13-alpha.
|
|
3
|
+
"version": "0.5.13-alpha.7",
|
|
4
4
|
"description": "Common application specifications",
|
|
5
5
|
"main": "lib/utils/index.js",
|
|
6
6
|
"source": "src/utils/index.ts",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"license": "MIT",
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"acorn": "^8.0.4",
|
|
33
|
+
"json-easy-filter": "^0.3.1",
|
|
33
34
|
"json-schema-to-typescript-for-browser": "^11.0.3",
|
|
34
35
|
"lodash": "^4.17.20",
|
|
35
36
|
"postcss": "^8.4.20",
|