amis-formula
Version:
负责 amis 里面的表达式实现,内置公式,编辑器等
72 lines (66 loc) • 2.73 kB
JavaScript
/**
* amis-formula v6.13.0
* Copyright 2021-2025 fex
*/
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib = require('tslib');
var evalutor = require('./evalutor.js');
var evalutorForAsync = require('./evalutorForAsync.js');
var parser = require('./parser.js');
var lexer = require('./lexer.js');
var filter = require('./filter.js');
var _function = require('./function.js');
function evaluate(astOrString, data, options) {
var ast = astOrString;
if (typeof astOrString === 'string') {
ast = parser.parse(astOrString, options);
}
return new evalutor.Evaluator(data, options).evalute(ast);
}
function evaluateForAsync(astOrString, data, options) {
return tslib.__awaiter(this, void 0, void 0, function () {
var ast;
return tslib.__generator(this, function (_a) {
ast = astOrString;
if (typeof astOrString === 'string') {
ast = parser.parse(astOrString, options);
}
return [2 /*return*/, new evalutorForAsync.AsyncEvaluator(data, options).evalute(ast)];
});
});
}
evalutor.Evaluator.extendDefaultFilters(filter.getFilters());
evalutorForAsync.AsyncEvaluator.setDefaultFilters(filter.getFilters());
function getFunctionsDoc() {
return tslib.__awaiter(this, void 0, void 0, function () {
return tslib.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, Promise.resolve().then(function() {return new Promise(function(fullfill) {require(['./doc.js', "tslib"], function(mod, tslib) {fullfill(tslib.__importStar(mod))})})})];
case 1:
_a.sent();
return [2 /*return*/, Object.entries(_function.functionDocs).map(function (_a) {
var _b = tslib.__read(_a, 2), k = _b[0], items = _b[1];
return ({
groupName: k,
items: items
});
})];
}
});
});
}
exports.Evaluator = evalutor.Evaluator;
exports.AsyncEvaluator = evalutorForAsync.AsyncEvaluator;
exports.parse = parser.parse;
exports.lexer = lexer.lexer;
exports.extendsFilters = filter.extendsFilters;
exports.filters = filter.filters;
exports.getFilters = filter.getFilters;
exports.registerFilter = filter.registerFilter;
exports.registerFormula = _function.registerFormula;
exports.registerFunction = _function.registerFunction;
exports.registerFunctionDoc = _function.registerFunctionDoc;
exports.evaluate = evaluate;
exports.evaluateForAsync = evaluateForAsync;
exports.getFunctionsDoc = getFunctionsDoc;