UNPKG

mysql-live-client

Version:
78 lines (77 loc) 2.55 kB
var Helper_1 = require("./Helper"); var _ = require("lodash"); var BaseCollection = (function () { function BaseCollection(name) { var _this = this; this.items = []; this.__single_item_collection__ = false; this.loop = (function (fn) { if (fn) { _this.items.forEach(function (item, index) { fn(item); }); } }); this.name = name; } Object.defineProperty(BaseCollection.prototype, "item", { get: function () { return this.items && this.items.length > 0 ? this.items[0] : undefined; }, enumerable: true, configurable: true }); Object.defineProperty(BaseCollection.prototype, "get", { get: function () { if (!this.items) return undefined; return this.items.length > 0 && this.__single_item_collection__ === true ? this.items[0] : this.items; }, enumerable: true, configurable: true }); BaseCollection.prototype.setId = function (objectToPassId, theValueOnlyId) { objectToPassId[this.primaryKeyColumn] = theValueOnlyId; return objectToPassId; }; BaseCollection.prototype.getId = function (objectToGetIdOf) { return objectToGetIdOf[this.primaryKeyColumn]; }; BaseCollection.prototype.find = function (criteria) { return _.filter(this.items, function (_item) { var ok = true; Helper_1.default.forEachKey(criteria, function (key) { if (criteria[key] !== _item[key]) { ok = false; } }); return ok; }); }; BaseCollection.prototype.findSingle = function (criteria) { if (_.isString(criteria) || _.isNumber(criteria)) { criteria = {}; criteria[this.primaryKeyColumn] = criteria; } var match; this.items.every(function (_item) { var ok = true; Helper_1.default.forEachKey(criteria, function (key) { if (criteria[key] !== _item[key]) { ok = false; } }); if (ok) { match = _item; return false; } else { return true; } }); return match; }; return BaseCollection; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = BaseCollection;