UNPKG

numenor

Version:

Customizable, safe evaluator of JavaScript-like expressions.

49 lines (41 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.mark = mark; exports.hasAsyncValue = hasAsyncValue; exports.hasConstValue = hasConstValue; exports.makeConstEval = makeConstEval; exports.evalConst = evalConst; exports.AsyncValue = exports.ConstValue = exports.ValueLookup = void 0; var ValueLookup = Symbol.for('numenor:context:lookup'); exports.ValueLookup = ValueLookup; var ConstValue = Symbol.for('numenor:eval:const'); exports.ConstValue = ConstValue; var AsyncValue = Symbol.for('numenor:eval:async'); exports.AsyncValue = AsyncValue; function mark(attrib, evaluator) { if (attrib.isConst) { evaluator[ConstValue] = true; } if (attrib.isAsync) { evaluator[AsyncValue] = true; } return evaluator; } function hasAsyncValue(object) { return object[AsyncValue] === true; } function hasConstValue(object) { return object[ConstValue] === true; } function makeConstEval(value) { return mark({ isConst: true }, function () { return value; }); } function evalConst(evaluator) { return evaluator(Object.create(null), []); }