@kodeko/akita-core
Version:
A powerfull string interpreter
73 lines (72 loc) • 3.45 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var lodash_1 = require("lodash");
var classes_1 = require("../../../classes");
var default_1 = (function (_super) {
tslib_1.__extends(default_1, _super);
function default_1() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.name_in = "akita-core:condition";
_this.name = "condition";
return _this;
}
default_1.prototype.solve = function (self, data) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, operator, left, right;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0: return [4, this.solve_fields(data, self)];
case 1:
_b.sent();
_a = self.fields, operator = _a[0], left = _a[1], right = _a[2];
switch (operator.value) {
case "equal":
case "eq":
this.resolve(data, self, (0, lodash_1.isEqual)(left, right));
break;
case "strict equal":
case "seq":
this.resolve(data, self, (0, lodash_1.eq)(left, right));
break;
case "not equal":
case "ueq":
this.resolve(data, self, left != right);
break;
case "strict not equal":
case "sueq":
this.resolve(data, self, left !== right);
break;
case "lesser":
case "lt":
this.resolve(data, self, (0, lodash_1.lt)(left, right));
break;
case "lesser or equal":
case "lte":
this.resolve(data, self, (0, lodash_1.lte)(left, right));
break;
case "greater":
case "gt":
this.resolve(data, self, (0, lodash_1.gt)(left, right));
break;
case "greater or equal":
case "gte":
this.resolve(data, self, (0, lodash_1.gte)(left, right));
break;
default:
throw SyntaxError("Invalid operator provided in ".concat(self.total));
}
return [2, data];
}
});
});
};
tslib_1.__decorate([
(0, classes_1.requiredFields)(2),
tslib_1.__metadata("design:type", Function),
tslib_1.__metadata("design:paramtypes", [classes_1.LexerAkitaFunction, Object]),
tslib_1.__metadata("design:returntype", Promise)
], default_1.prototype, "solve", null);
return default_1;
}(classes_1.AbstractAkitaFunction));
exports.default = default_1;