@kitmi/config
Version:
JavaScript env-aware config system
72 lines (71 loc) • 1.84 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
ES6_TEMPLATE_TOKEN: function() {
return ES6_TEMPLATE_TOKEN;
},
FN_TOKEN: function() {
return FN_TOKEN;
},
JS_SWIG_TOKEN: function() {
return JS_SWIG_TOKEN;
},
JS_VALUE_TOKEN: function() {
return JS_VALUE_TOKEN;
},
PROCESSOR_PREFIX: function() {
return PROCESSOR_PREFIX;
},
default: function() {
return _default;
}
});
const _utils = require("@kitmi/utils");
const PROCESSOR_PREFIX = '#!';
const JS_VALUE_TOKEN = 'jsv';
const ES6_TEMPLATE_TOKEN = 'es6';
const JS_SWIG_TOKEN = 'swig';
const FN_TOKEN = 'fn';
const esTemplateSetting = {
interpolate: /\$\{([\s\S]+?)\}/g
};
const swigTemplateSetting = {
interpolate: /{{([\s\S]+?)}}/g
};
const processors = {
[JS_VALUE_TOKEN]: (str, variables)=>{
// eslint-disable-next-line no-new-func
return new Function('v', 'with (v) { return (' + str + ')}')(variables);
},
[ES6_TEMPLATE_TOKEN]: (str, variables)=>{
str = str.trim();
if (str) {
return _utils._.template(str, esTemplateSetting)(variables);
}
return str;
},
[JS_SWIG_TOKEN]: (str, variables)=>{
str = str.trim();
if (str) {
return _utils._.template(str, swigTemplateSetting)(variables);
}
return str;
},
[FN_TOKEN]: (str)=>{
// eslint-disable-next-line no-new-func
return new Function('v', `with (v) { ${str} }`);
}
};
const _default = {
prefix: PROCESSOR_PREFIX,
processors
};
//# sourceMappingURL=defaultSyntax.js.map