UNPKG

superfly-timeline

Version:

Resolver for defining objects with temporal boolean logic relationships on a timeline

73 lines 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Operator = void 0; const lib_1 = require("./lib"); const reference_1 = require("./reference"); /** Helper class for various math operators, used in expressions */ class Operator { static get(operator) { switch (operator) { case '+': return Operator.Add; case '-': return Operator.Subtract; case '*': return Operator.Multiply; case '/': return Operator.Divide; case '%': return Operator.Modulo; default: { /* istanbul ignore next */ (0, lib_1.assertNever)(operator); /* istanbul ignore next */ return Operator.Null; } } } } exports.Operator = Operator; Operator.Add = (a, b) => { if (a === null || b === null) return null; return { value: a.value + b.value, references: (0, reference_1.joinReferences)(a.references, b.references), }; }; Operator.Subtract = (a, b) => { if (a === null || b === null) return null; return { value: a.value - b.value, references: (0, reference_1.joinReferences)(a.references, b.references), }; }; Operator.Multiply = (a, b) => { if (a === null || b === null) return null; return { value: a.value * b.value, references: (0, reference_1.joinReferences)(a.references, b.references), }; }; Operator.Divide = (a, b) => { if (a === null || b === null) return null; return { value: a.value / b.value, references: (0, reference_1.joinReferences)(a.references, b.references), }; }; Operator.Modulo = (a, b) => { if (a === null || b === null) return null; return { value: a.value % b.value, references: (0, reference_1.joinReferences)(a.references, b.references), }; }; Operator.Null = () => { return null; }; //# sourceMappingURL=operator.js.map