angel-eval
Version:
A conditional expression parser and interpreter.
42 lines (30 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _isArray = _interopRequireDefault(require("lodash/isArray"));
var _get = _interopRequireDefault(require("lodash/get"));
var _Evaluatable = _interopRequireDefault(require("../Evaluatable"));
var _utils = require("../utils");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Variable extends _Evaluatable.default {
constructor(name) {
super();
this.variableName = name;
}
evaluateVariableName(variableName, context) {
if ((0, _isArray.default)(variableName)) {
// console.log(variableName);
// we can have nested variables
return variableName.map(n => (0, _utils.evaluateNode)(n, context));
}
return variableName;
}
evaluate(context) {
const variableName = this.evaluateVariableName(this.variableName, context);
return (0, _get.default)(context, variableName);
}
}
var _default = Variable;
exports.default = _default;