dogmaql.driver.redis
Version:
Redis driver for DogmaQL (Dogma Query Language).
42 lines (39 loc) • 2.63 kB
JavaScript
"use strict";
var _dogmalang = require("dogmalang");
var _dogmaql = require("dogmaql.syn");
const DeleteTrans = _dogmalang.dogma.use(require("./DeleteTrans"));const InsertTrans = _dogmalang.dogma.use(require("./InsertTrans"));const SearchTrans = _dogmalang.dogma.use(require("./SearchTrans"));const SelectTrans = _dogmalang.dogma.use(require("./SelectTrans"));const SetTrans = _dogmalang.dogma.use(require("./SetTrans"));const UpdateTrans = _dogmalang.dogma.use(require("./UpdateTrans"));
const $Builder = class Builder {
constructor() {
{
_dogmalang.dogma.update(this, { name: "parser", visib: ":", assign: "=", value: (0, _dogmaql.Parser)() }, { name: "deleteTrans", visib: ":", assign: "=", value: DeleteTrans() }, { name: "insertTrans", visib: ":", assign: "=", value: InsertTrans() }, { name: "searchTrans", visib: ":", assign: "=", value: SearchTrans() }, { name: "selectTrans", visib: ":", assign: "=", value: SelectTrans() }, { name: "setTrans", visib: ":", assign: "=", value: SetTrans() }, { name: "updateTrans", visib: ":", assign: "=", value: UpdateTrans() });
}
}
};
const Builder = new Proxy($Builder, { apply(receiver, self, args) {
return new $Builder(...args);
} });module.exports = exports = Builder;
Builder.prototype.parse = function (cmd, params) {
let rslt = [];_dogmalang.dogma.paramExpected("cmd", cmd, _dogmalang.text);_dogmalang.dogma.paramExpected("params", params, _dogmalang.map);{
const stmt = this._parser.parse("dogmaql.driver.redis", cmd).next(params);const $aux15187793584659 = (0, _dogmalang.typename)(stmt);if ($aux15187793584659 == "DeleteStmt") {
rslt = this._deleteTrans.transDeleteItem(stmt);
} else if ($aux15187793584659 == "DropTableStmt") {
rslt = this._deleteTrans.transDropTable(stmt);
} else if ($aux15187793584659 == "CreateTableStmt") {
rslt = this._insertTrans.transCreateTable(stmt);
} else if ($aux15187793584659 == "InsertStmt") {
rslt = this._insertTrans.transInsertItem(stmt);
} else if ($aux15187793584659 == "SetStmt") {
rslt = this._setTrans.transSetItem(stmt);
} else if ($aux15187793584659 == "AlterTableStmt") {
rslt = this._updateTrans.transAlterTable(stmt);
} else if ($aux15187793584659 == "UpdateStmt") {
rslt = this._updateTrans.transUpdateItem(stmt);
} else if ($aux15187793584659 == "SearchStmt") {
rslt = this._searchTrans.transSearchItem(stmt);
} else if ($aux15187793584659 == "ListTablesStmt") {
rslt = this._selectTrans.transListTables(stmt);
} else {
rslt = this._selectTrans.transSelectItem(stmt);
}
}return rslt;
};