formula-functionizer
Version:
A tool for parsing formulas and create reusable functions
67 lines • 5.7 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.operateJavascriptly = exports.operateExcely = exports.Operator = void 0;
const concatenate_1 = require("./operators/concatenate");
const divided_by_1 = require("./operators/divided-by");
const equal_1 = require("./operators/equal");
const greater_than_1 = require("./operators/greater-than");
const greater_than_or_equal_1 = require("./operators/greater-than-or-equal");
const less_than_1 = require("./operators/less-than");
const less_than_or_equal_1 = require("./operators/less-than-or-equal");
const minus_1 = require("./operators/minus");
const not_equal_1 = require("./operators/not-equal");
const plus_1 = require("./operators/plus");
const power_1 = require("./operators/power");
const times_1 = require("./operators/times");
var Operator;
(function (Operator) {
Operator["PLUS"] = "+";
Operator["MINUS"] = "-";
Operator["TIMES"] = "*";
Operator["DIVIDED_BY"] = "/";
Operator["EQUAL"] = "=";
Operator["NOT_EQUAL"] = "<>";
Operator["GREATER_THAN"] = ">";
Operator["GREATER_THAN_OR_EQUAL"] = ">=";
Operator["LESS_THAN"] = "<";
Operator["LESS_THAN_OR_EQUAL"] = "<=";
Operator["POWER"] = "^";
Operator["CONCATENATE"] = "&";
})(Operator = exports.Operator || (exports.Operator = {}));
const safeOperators = {
[]: plus_1.excelPlus,
[]: minus_1.excelMinus,
[]: times_1.excelTimes,
[]: divided_by_1.excelDividedBy,
[]: equal_1.equal,
[]: not_equal_1.notEqual,
[]: greater_than_1.excelGreaterThan,
[]: greater_than_or_equal_1.excelGreaterThanOrEqual,
[]: less_than_1.excelLessThan,
[]: less_than_or_equal_1.excelLessThanOrEqual,
[]: power_1.excelPower,
[]: concatenate_1.concatenate,
};
const javascriptOperators = {
[]: plus_1.javascriptPlus,
[]: minus_1.javascriptMinus,
[]: times_1.javascriptTimes,
[]: divided_by_1.javascriptDividedBy,
[]: equal_1.equal,
[]: not_equal_1.notEqual,
[]: greater_than_1.javascriptGreaterThan,
[]: greater_than_or_equal_1.javascriptGreaterThanOrEqual,
[]: less_than_1.javascriptLessThan,
[]: greater_than_or_equal_1.javascriptGreaterThanOrEqual,
[]: power_1.javascriptPower,
[]: concatenate_1.concatenate,
};
function operateExcely(operator, firstOperand, secondOperand) {
return safeOperators[operator](firstOperand, secondOperand);
}
exports.operateExcely = operateExcely;
function operateJavascriptly(operator, firstOperand, secondOperand) {
return javascriptOperators[operator](firstOperand, secondOperand);
}
exports.operateJavascriptly = operateJavascriptly;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvb3BlcmF0ZS9vcGVyYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlEQUFzRDtBQUN0RCx1REFBNkU7QUFDN0UsNkNBQTBDO0FBQzFDLDJEQUdrQztBQUNsQyw2RUFHMkM7QUFDM0MscURBQTBFO0FBQzFFLHVFQUFzRTtBQUN0RSw2Q0FBZ0U7QUFDaEUscURBQWlEO0FBQ2pELDJDQUE2RDtBQUM3RCw2Q0FBZ0U7QUFDaEUsNkNBQWdFO0FBRWhFLElBQVksUUFhWDtBQWJELFdBQVksUUFBUTtJQUNsQixzQkFBVSxDQUFBO0lBQ1YsdUJBQVcsQ0FBQTtJQUNYLHVCQUFXLENBQUE7SUFDWCw0QkFBZ0IsQ0FBQTtJQUNoQix1QkFBVyxDQUFBO0lBQ1gsNEJBQWdCLENBQUE7SUFDaEIsOEJBQWtCLENBQUE7SUFDbEIsd0NBQTRCLENBQUE7SUFDNUIsMkJBQWUsQ0FBQTtJQUNmLHFDQUF5QixDQUFBO0lBQ3pCLHVCQUFXLENBQUE7SUFDWCw2QkFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBYlcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFhbkI7QUFFRCxNQUFNLGFBQWEsR0FBaUQ7SUFDbEUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQVM7SUFDMUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsa0JBQVU7SUFDNUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsa0JBQVU7SUFDNUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsMkJBQWM7SUFDckMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsYUFBSztJQUN2QixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxvQkFBUTtJQUM5QixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSwrQkFBZ0I7SUFDekMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsRUFBRSwrQ0FBdUI7SUFDekQsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUseUJBQWE7SUFDbkMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSx5Q0FBb0I7SUFDbkQsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsa0JBQVU7SUFDNUIsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUseUJBQVc7Q0FDcEMsQ0FBQztBQUVGLE1BQU0sbUJBQW1CLEdBQXlDO0lBQ2hFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLHFCQUFjO0lBQy9CLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLHVCQUFlO0lBQ2pDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLHVCQUFlO0lBQ2pDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLGdDQUFtQjtJQUMxQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFLO0lBQ3ZCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLG9CQUFRO0lBQzlCLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLG9DQUFxQjtJQUM5QyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLG9EQUE0QjtJQUM5RCxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSw4QkFBa0I7SUFDeEMsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxvREFBNEI7SUFDM0QsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsdUJBQWU7SUFDakMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUseUJBQVc7Q0FDcEMsQ0FBQztBQUVGLFNBQWdCLGFBQWEsQ0FDM0IsUUFBa0IsRUFDbEIsWUFBaUIsRUFDakIsYUFBa0I7SUFFbEIsT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFORCxzQ0FNQztBQUVELFNBQWdCLG1CQUFtQixDQUNqQyxRQUFrQixFQUNsQixZQUFpQixFQUNqQixhQUFrQjtJQUVsQixPQUFPLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBTkQsa0RBTUMifQ==