UNPKG

mysql-live-client

Version:
80 lines (79 loc) 4.21 kB
var __extends = (this && this.__extends) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; /// <reference path="../../typings/lodash/lodash.d.ts" /> var ObservableCollection_1 = require("./ObservableCollection"); var Helper_1 = require("./Helper"); var JoinerBuilder_1 = require("./tasks/JoinerBuilder"); var Collection = (function (_super) { __extends(Collection, _super); function Collection(handler, name) { _super.call(this, name); this.handler = handler; } Collection.prototype.fireJoinedEvent = function (evt) { //edw gia ta joins. as paw na dw sto ObservableCollection.fireChangeNow ta comments. //loipon, auto doulevie sxedon apsoga, to mono 9ema einai oti kanei update to event eite exei allaksei kati eixe oxi //pragma pou borousa na elenksw mesa sto joiner, alla edw den ginete h fash mas. //ara na to metaferw olo auto sto Joiner? //oxi oute sto joiner 9a eixe noima gt kanw fireChangeNow, borei na evlepa gia primary collection an einai //alou se join alla 9a diwr9wne tin katastasi me ta infos,users kai storiesCollection, alla an eixa akoma ena pio vathu //join dn 9a to ekane fire, giauto thelw ena entelws new method sto collection. //to opoio 9a to kalw katw apto joinedChangeEvent() sto Joiner... var _this = this; Helper_1.default.forEachKey(this.handler.collections, function (colName) { var col = _this.handler.collections[colName]; col.tasks.forEach(function (task) { if (task.collectionNames[1] === _this.name) { var primaryEvt = {}; if (evt.name === ObservableCollection_1.default.ON_INSERT) { var newItemForEvent = {}; newItemForEvent[task.params.as] = evt['newItem']; primaryEvt['newItem'] = newItemForEvent; primaryEvt['name'] = evt.name; } else if (evt.name === ObservableCollection_1.default.ON_UPDATE) { var newItemForEvent = {}; newItemForEvent[task.params.as] = evt['newItem']; primaryEvt['newItem'] = newItemForEvent; var newSelectorForEvent = {}; newSelectorForEvent[task.params.as] = evt['selector']; primaryEvt['selector'] = newSelectorForEvent; primaryEvt['name'] = evt.name; } else if (evt.name === ObservableCollection_1.default.ON_REMOVE) { var removeSelectorForEvent = {}; removeSelectorForEvent[task.params.as] = evt['selector']; primaryEvt['selector'] = removeSelectorForEvent; primaryEvt['name'] = evt.name; } _this.handler.collections[task.collectionNames[0]].fireChangeNow(primaryEvt); _this.handler.collections[task.collectionNames[0]].fireJoinedEvent(primaryEvt); } }); }); }; Collection.prototype.refresh = function (cb) { this.handler.dispatcher.requestRefresh(this.name, cb); }; Collection.prototype.save = function (object, cb) { this.handler.dispatcher.requestSaveObject(this.name, object, cb); }; Collection.prototype.insert = function (object, cb) { this.save(object, cb); }; Collection.prototype.update = function (object, cb) { this.save(object, cb); }; Collection.prototype.remove = function (primaryKey, cb) { this.handler.dispatcher.requestRemoveObject(this.name, primaryKey, cb); }; Collection.prototype.join = function (relatedCollection) { return new JoinerBuilder_1.default(this, relatedCollection); }; return Collection; })(ObservableCollection_1.default); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = Collection;