type-arango
Version:
ArangoDB Foxx decorators and utilities for TypeScript
49 lines • 1.79 kB
JavaScript
;
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