UNPKG

@hap-toolkit/packager

Version:

@hap-toolkit/packager

3 lines (2 loc) 1.61 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.EXPR_TYPE=void 0,exports.getExprType=getExprType,exports.isConstObjOrArray=isConstObjOrArray,exports.isExpr=isExpr,exports.isFunctionStr=isFunctionStr,exports.isObject=isObject,exports.isSimpleArr=isSimpleArr,exports.isSimplePath=isSimplePath;var _compiler=require("@hap-toolkit/compiler");const{validator:validator}=_compiler.templater,pathTestRE=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/,literalValueRE=/^(?:true|false|null|undefined|Infinity|NaN)$/,EXPR_TYPE={NOT_EXPRESSION:1,CONST_IN_EXPRESSION:2,EXPRESSION:3};function isExpr(t){return!!t&&validator.isExpr(t)}function getExprType(t){if(!t)return EXPR_TYPE.NOT_EXPRESSION;if(validator.isExpr(t)){const r=validator.parseText(t.trim());if(r.length>1)return EXPR_TYPE.EXPRESSION;return isConstObjOrArray(r[0].value)?EXPR_TYPE.CONST_IN_EXPRESSION:EXPR_TYPE.EXPRESSION}return EXPR_TYPE.NOT_EXPRESSION}function isFunctionStr(t){return/^\s*function\s*\([\w\s,$]*\)\s*\{[\s\S]*\}\s*$/.test(t.trim())}function isObject(t){return t&&"[object Object]"===Object.prototype.toString.call(t)&&null!==t}function isConstObjOrArray(exp){try{return eval(`(${exp})`),!0}catch(t){return!1}}function isSimpleArr(t){const r=/\[([^\[\]]+)\]/g;let e;const i=[];for(;null!==(e=r.exec(t));)i.push(e[1]);let s=!0;return i.forEach((t=>{/^\d+$/.test(t)||/^('|"|`)(.*)\1$/.test(t)||(s=!1)})),s}function isSimplePath(t){return pathTestRE.test(t)&&!literalValueRE.test(t)&&"Math."!==t.slice(0,5)}exports.EXPR_TYPE=EXPR_TYPE; //# sourceMappingURL=utils.js.map