UNPKG

type-arango

Version:

ArangoDB Foxx decorators and utilities for TypeScript

49 lines 1.79 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Entities = void 0; var Collection_model_1 = require("./Collection.model"); function mapToInstances(Class, results) { return results.map(function (r) { return new Class(r, true); }); } var Entities = /** @class */ (function () { function Entities(doc) { if (doc) Object.assign(this, doc); } Object.defineProperty(Entities, "_col", { get: function () { return Collection_model_1.getCollectionForContainer(this); }, enumerable: false, configurable: true }); Object.defineProperty(Entities, "_db", { get: function () { return this._col.db; }, enumerable: false, configurable: true }); Entities._mapToInstances = function (results) { return mapToInstances(this._col.doc.Class, results); }; Entities.filter = function (options) { if (options === void 0) { options = {}; } return this._mapToInstances(this._col.query(options).toArray()); }; Entities.find = function (keyOrOptions, options) { if (options === void 0) { options = {}; } if (typeof keyOrOptions === 'string' || typeof keyOrOptions === 'number') options = Object.assign(options, { filter: { _key: keyOrOptions } }); else if (keyOrOptions) options = keyOrOptions; return this.filter(Object.assign(options, { limit: 1 }))[0]; }; Entities.count = function (options) { options.aggregate = true; return this._col.query(options).toArray()[0]; }; return Entities; }()); exports.Entities = Entities; //# sourceMappingURL=Entities.model.js.map