delta-store
Version:
An API for a store with change records
59 lines • 2.39 kB
JavaScript
/**
* Created by Papa on 1/6/2016.
*/
;
var GoogleDriveModel_1 = require("../drive/GoogleDriveModel");
var GoogleRealtime = (function () {
function GoogleRealtime(googleDrive) {
this.googleDrive = googleDrive;
}
GoogleRealtime.prototype.findOrCreateFileUniqueFile = function (fileName, folderId) {
return this.googleDrive.findOrCreateUniqueFile(fileName, GoogleDriveModel_1.MimeTypes.REALTIME, folderId);
};
GoogleRealtime.prototype.initializeFile = function (fileId) {
var _this = this;
return this.loadFile(fileId).then(function (document) {
_this.initializeModel(document);
return document;
});
};
GoogleRealtime.prototype.createInMemoryDocument = function () {
var document = gapi.drive.realtime.newInMemoryDocument();
this.initializeModel(document);
return document;
};
GoogleRealtime.prototype.initializeModel = function (document) {
var model = document.getModel();
var changeList = model.createList();
var root = model.getRoot();
root.set('changeList', changeList);
};
GoogleRealtime.prototype.getChangeList = function (document) {
var changeList = document.getModel().getRoot().get('changeList');
return changeList;
};
GoogleRealtime.prototype.loadFile = function (fileId) {
return new Promise(function (resolve, reject) {
gapi.drive.realtime.load(fileId, resolve, function () {
}, reject);
});
};
GoogleRealtime.prototype.subscribeToValuesAdded = function (list, subject) {
list.addEventListener(gapi.drive.realtime.EventType.VALUES_ADDED, function (event) {
subject.next(event);
});
};
GoogleRealtime.prototype.subscribeToValuesRemoved = function (list, subject) {
list.addEventListener(gapi.drive.realtime.EventType.VALUES_REMOVED, function (event) {
subject.next(event);
});
};
GoogleRealtime.prototype.subscribeToAnyObjectChanged = function (document, subject) {
document.getModel().getRoot().addEventListener(gapi.drive.realtime.EventType.OBJECT_CHANGED, function (event) {
subject.next(event);
});
};
return GoogleRealtime;
}());
exports.GoogleRealtime = GoogleRealtime;
//# sourceMappingURL=GoogleRealtime.js.map