@hap-toolkit/compiler 2.0.9-alpha.2 → 2.0.9-alpha.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/lib/data/validator.js +1 -1
- package/package.json +3 -2
package/lib/data/validator.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkUiData=checkUiData;var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.checkUiData=checkUiData;var _cardExpression=require("@aiot-toolkit/card-expression"),_exp=_interopRequireDefault(require("../template/exp"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const RESERVED_PREFIXES=["$","#"],ALLOWED_CALLS=["$t","$tc"];function isReservedKey(e){return RESERVED_PREFIXES.indexOf((e+"").charAt(0))>-1}function isObject(e){return e&&"[object Object]"===Object.prototype.toString.call(e)}function checkKey(e,r){if(isReservedKey(e))throw new Error(`<data> uiData 的 key 不能以 “$” 或 “#” 开头:${r}`);if(_exp.default.isExpr(e))throw new Error(`<data> uiData 的 key 必须为静态字符串,不支持表达式:${r}`)}function checkExprNode(e,r,t){if(Array.isArray(e)){if("()"===e[0]&&-1===ALLOWED_CALLS.indexOf(e[1]))throw new Error(`<data> uiData 中 "${r}" 的表达式禁止调用 Feature / 函数,仅支持静态系统变量引用(如 system.env.intentInfo)与表达式计算:${t.trim()}`);e.forEach((e=>checkExprNode(e,r,t)))}else isObject(e)&&Object.keys(e).forEach((c=>checkExprNode(e[c],r,t)))}function checkExpression(e,r){let t;try{t=(0,_cardExpression.templateValueToCardCode)(e)}catch(e){throw new Error(`<data> uiData 中 "${r}" 的表达式无法解析:${e.message}`)}checkExprNode(JSON.parse(t),r,e)}function checkValue(e,r){"string"!=typeof e?Array.isArray(e)?e.forEach(((e,t)=>checkValue(e,`${r}[${t}]`))):isObject(e)&&Object.keys(e).forEach((t=>{checkKey(t,`${r}.${t}`),checkValue(e[t],`${r}.${t}`)})):_exp.default.isExpr(e)&&checkExpression(e,r)}function checkUiData(e){if(e&&!isObject(e))throw new Error("<data> uiData 必须为 Object 对象");Object.keys(e||{}).forEach((r=>{checkKey(r,r),checkValue(e[r],r)}))}
|
|
2
2
|
//# sourceMappingURL=validator.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hap-toolkit/compiler",
|
|
3
|
-
"version": "2.0.9-alpha.
|
|
3
|
+
"version": "2.0.9-alpha.3",
|
|
4
4
|
"description": "compiler of hap-toolkit",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=14.0.0"
|
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
"lib/**/*.js"
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@
|
|
25
|
+
"@aiot-toolkit/card-expression": "^1.0.15",
|
|
26
|
+
"@hap-toolkit/shared-utils": "2.0.9-alpha.3",
|
|
26
27
|
"@jayfate/path": "^0.0.13",
|
|
27
28
|
"css": "^2.2.4",
|
|
28
29
|
"css-what": "^2.1.3",
|