UNPKG

@berish/orm-web-file-adapter

Version:

Адаптер файловой базы данных по сети для @berish/orm

76 lines 3.18 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.WebDBReceiver = void 0; const orm_1 = require("@berish/orm"); class WebDBReceiver { constructor(manager, params) { this._manager = null; this._params = null; this._manager = manager; this._params = params; } get manager() { return this._manager; } get params() { return this._params || {}; } call(name, ...args) { return __awaiter(this, void 0, void 0, function* () { if (orm_1.baseDBMethods.indexOf(name) === -1) throw new Error('orm db method not found'); if (name === 'get') { const [query] = args; const queryWithBy = yield this.withBy(query); return this.manager.db.get(queryWithBy); } if (name === 'create') { const [table, items] = args; return this.manager.db.create(table, items); } if (name === 'update') { const [table, items] = args; return this.manager.db.update(table, items); } if (name === 'delete') { const [queryData] = args; const queryWithBy = yield this.withBy(queryData); return this.manager.db.delete(queryWithBy); } if (name === 'index') { const [table, indexName, keys] = args; return this.manager.db.index(table, indexName, keys); } if (name === 'find') { const [queryData] = args; const queryWithBy = yield this.withBy(queryData); return this.manager.db.find(queryWithBy); } if (name === 'subscribe') { const [queryData, cb] = args; const queryWithBy = yield this.withBy(queryData); return this.manager.db.subscribe(queryWithBy, cb); } }); } withBy(queryData) { return __awaiter(this, void 0, void 0, function* () { if (!queryData) throw new Error('FP-ORM: queryData is undefined'); const query = orm_1.Query.fromJSON(queryData); const withByQuery = (yield (this.params.by && this.params.by(query))) || query; return withByQuery.json; }); } } exports.WebDBReceiver = WebDBReceiver; //# sourceMappingURL=webDBReceiver.js.map