lan-low-code-cli 2.1.0 → 2.2.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/README.md +241 -7
- package/bin/llc.js +0 -0
- package/dist/api/formDefine.js +12 -0
- package/dist/commands/control.js +34 -3
- package/dist/commands/form.js +44 -4
- package/dist/constants.js +326 -2
- package/dist/generator/index.js +319 -27
- package/dist/index.js +10 -1
- package/dist/relation.js +130 -0
- package/dist/widgets.js +39 -4
- package/package.json +45 -43
package/dist/widgets.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.WidgetRegistry = void 0;
|
|
|
4
4
|
exports.originOf = originOf;
|
|
5
5
|
exports.collectWidgetDefaults = collectWidgetDefaults;
|
|
6
6
|
exports.hasConfigItem = hasConfigItem;
|
|
7
|
+
exports.collectFrontExtendKeys = collectFrontExtendKeys;
|
|
7
8
|
exports.validateRequiredProps = validateRequiredProps;
|
|
8
9
|
exports.elementLangKey = elementLangKey;
|
|
9
10
|
const fs_1 = require("fs");
|
|
@@ -60,6 +61,40 @@ function hasConfigItem(meta, key) {
|
|
|
60
61
|
});
|
|
61
62
|
return found;
|
|
62
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* 收集控件 `config.json` 中声明为「前端扩展数据」(`frontExtendData`)的属性项。
|
|
66
|
+
*
|
|
67
|
+
* 平台把这类属性**同时**存在两处:控件属性 `controlProps` 与数据项
|
|
68
|
+
* `fdFontExtendData`(前端 `syncApi.frontExtendData2Config` 用它反向同步,
|
|
69
|
+
* 公式/接口 Schema 的 `$ref` 也依赖它,如 address 的 `orgTypeArr`)。
|
|
70
|
+
*
|
|
71
|
+
* 声明形式:
|
|
72
|
+
* - `frontExtendData: true` → 键自身(如 address 的 `range` / `multi`);
|
|
73
|
+
* - `frontExtendData: { children: ['orgTypeArr', …] }` → 取 `controlProps[键]` 的子键
|
|
74
|
+
* (如 address 的 `org.orgTypeArr`)。
|
|
75
|
+
*
|
|
76
|
+
* @returns `path` 为在 controlProps 中的取值路径,`key` 为写入 fdFontExtendData 的键
|
|
77
|
+
*/
|
|
78
|
+
function collectFrontExtendKeys(meta) {
|
|
79
|
+
const out = [];
|
|
80
|
+
walkConfig(meta?.config, (item) => {
|
|
81
|
+
const decl = item.frontExtendData;
|
|
82
|
+
if (!decl || typeof item.key !== 'string')
|
|
83
|
+
return;
|
|
84
|
+
if (decl === true) {
|
|
85
|
+
out.push({ path: item.key, key: item.key });
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const children = decl.children;
|
|
89
|
+
if (Array.isArray(children)) {
|
|
90
|
+
for (const child of children) {
|
|
91
|
+
if (typeof child === 'string')
|
|
92
|
+
out.push({ path: `${item.key}.${child}`, key: child });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return out;
|
|
97
|
+
}
|
|
63
98
|
/**
|
|
64
99
|
* 校验控件必填属性值(对齐设计器发布前校验)。
|
|
65
100
|
*
|
|
@@ -120,10 +155,10 @@ function validateRequiredProps(meta, config) {
|
|
|
120
155
|
if ((value === undefined || value === null || value === '') && item.type === 'inputLocale') {
|
|
121
156
|
value = labelProps.title ?? controlProps.title;
|
|
122
157
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
158
|
+
// 空数组**不算空**:设计器规则是 `{ required: true, message }`(不带 type),
|
|
159
|
+
// async-validator 的 isEmptyValue 仅在 `type === 'array'` 时把 `[]` 判为空,
|
|
160
|
+
// 因此设计器允许保存 `preSelectValue: []`(address/地址本自定义范围的真实结构)。
|
|
161
|
+
const empty = value === undefined || value === null || value === '';
|
|
127
162
|
if (empty) {
|
|
128
163
|
errors.push({ key: item.key, label: String(item.label ?? item.key) });
|
|
129
164
|
}
|
package/package.json
CHANGED
|
@@ -1,43 +1,45 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "lan-low-code-cli",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "lan-low-code cli:低代码表单引擎命令行工具(创建表单、获取可用字段、自动完善表单字段)",
|
|
5
|
-
"keywords": [
|
|
6
|
-
"low-code",
|
|
7
|
-
"lan-low-code",
|
|
8
|
-
"llc",
|
|
9
|
-
"form",
|
|
10
|
-
"cli"
|
|
11
|
-
],
|
|
12
|
-
"license": "MIT",
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "lan-low-code-cli",
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "lan-low-code cli:低代码表单引擎命令行工具(创建表单、获取可用字段、自动完善表单字段)",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"low-code",
|
|
7
|
+
"lan-low-code",
|
|
8
|
+
"llc",
|
|
9
|
+
"form",
|
|
10
|
+
"cli"
|
|
11
|
+
],
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"packageManager": "pnpm@10.26.2",
|
|
14
|
+
"bin": {
|
|
15
|
+
"llc": "bin/llc.js"
|
|
16
|
+
},
|
|
17
|
+
"main": "dist/index.js",
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc -p tsconfig.json",
|
|
20
|
+
"clean": "rimraf dist",
|
|
21
|
+
"rebuild": "pnpm run clean && pnpm run build",
|
|
22
|
+
"start": "pnpm run build && node bin/llc.js",
|
|
23
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
24
|
+
"prepare": "pnpm run build",
|
|
25
|
+
"bump": "node scripts/bump-version.js",
|
|
26
|
+
"bump:check": "node scripts/bump-version.js --check"
|
|
27
|
+
},
|
|
28
|
+
"dependencies": {
|
|
29
|
+
"commander": "^11.1.0"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/node": "^20.11.30",
|
|
33
|
+
"rimraf": "^5.0.5",
|
|
34
|
+
"typescript": "^5.4.5"
|
|
35
|
+
},
|
|
36
|
+
"engines": {
|
|
37
|
+
"node": ">=18",
|
|
38
|
+
"pnpm": ">=8"
|
|
39
|
+
},
|
|
40
|
+
"files": [
|
|
41
|
+
"bin",
|
|
42
|
+
"dist",
|
|
43
|
+
"README.md"
|
|
44
|
+
]
|
|
45
|
+
}
|