UNPKG

numenor

Version:

Customizable, safe evaluator of JavaScript-like expressions.

39 lines (29 loc) 843 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Await = void 0; var _ = require("./"); var _Parser = require("../../Parser"); var _Error = require("../Error"); var Await = function Await(expr, options, compile) { if (expr.type !== _Parser.ExpressionType.Await) { throw new TypeError((0, _Error.UnknownExpression)(expr)); } var rhs = compile(expr.rhs, options, compile); var isConst = (0, _.hasConstValue)(rhs); return (0, _.mark)({ isConst: isConst, isAsync: true }, function (context, stack) { var thenable = rhs(context, stack); if (Array.isArray(thenable)) { return Promise.all(thenable); } if (!thenable || typeof thenable.then !== 'function') { return Promise.resolve(thenable); } return thenable; }); }; exports.Await = Await;