UNPKG

amis

Version:

一种MIS页面生成工具

64 lines (63 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var enginers = {}; function reigsterTplEnginer(name, enginer) { enginers[name] = enginer; } exports.reigsterTplEnginer = reigsterTplEnginer; function filter(tpl, data) { if (data === void 0) { data = {}; } var rest = []; for (var _i = 2; _i < arguments.length; _i++) { rest[_i - 2] = arguments[_i]; } if (!tpl || typeof tpl !== 'string') { return ''; } var keys = Object.keys(enginers); for (var i = 0, len = keys.length; i < len; i++) { var enginer = enginers[keys[i]]; if (enginer.test(tpl)) { return enginer.compile.apply(enginer, tslib_1.__spreadArrays([tpl, data], rest)); } } return tpl; } exports.filter = filter; function evalExpression(expression, data) { if (!expression || typeof expression !== 'string') { return false; } /* jshint evil:true */ try { var debug = false; var idx = expression.indexOf('debugger'); if (~idx) { debug = true; expression = expression.replace(/debugger;?/, ''); } var fn = new Function('data', "with(data) {" + (debug ? 'debugger;' : '') + "return !!(" + expression + ");}"); data = data || {}; return fn.call(data, data); } catch (e) { console.warn(e); return false; } } exports.evalExpression = evalExpression; function evalJS(js, data) { /* jshint evil:true */ try { var fn = new Function('data', "with(data) {" + (~js.indexOf('return') ? '' : 'return ') + js + ";}"); data = data || {}; return fn.call(data, data); } catch (e) { console.warn(e); return null; } } exports.evalJS = evalJS; //# sourceMappingURL=./utils/tpl.js.map