@aca-1/a2-composer
Version:
Angular 2 Interface for composer
91 lines • 3.74 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import { Injectable } from '@angular/core';
import { ClientMessageBrokerFactory, FnArg, PRIMITIVE, UiArguments } from '@angular/platform-webworker';
import { DataStoreService } from './data-store.service';
var DataStoreWorkerService = (function (_super) {
__extends(DataStoreWorkerService, _super);
function DataStoreWorkerService(brokerFactory) {
var _this = _super.call(this) || this;
_this.brokerFactory = brokerFactory;
_this.broker = null;
if (_this.brokerFactory) {
_this.broker = brokerFactory.createMessageBroker('COMPOSER Storage Broker');
}
return _this;
}
DataStoreWorkerService.prototype.getItem = function (type, key) {
var _this = this;
return new Promise(function (resolve, reject) {
if (_this.broker) {
var exec = (type === 'local' ? 'localStorage' : 'sessionStorage') + "_getItem";
_this.execOnUI(exec, [key]).then(function (result) {
resolve(result);
});
}
});
};
DataStoreWorkerService.prototype.setItem = function (type, key, value) {
var _this = this;
return new Promise(function (resolve, reject) {
if (_this.broker) {
var exec = (type === 'local' ? 'localStorage' : 'sessionStorage') + "_setItem";
_this.execOnUI(exec, [key, value]).then(function (result) {
resolve(result);
});
}
});
};
DataStoreWorkerService.prototype.removeItem = function (type, key) {
var _this = this;
return new Promise(function (resolve, reject) {
if (_this.broker) {
var exec = (type === 'local' ? 'localStorage' : 'sessionStorage') + "_removeItem";
_this.execOnUI(exec, [key]).then(function (result) {
resolve(result);
});
}
});
};
DataStoreWorkerService.prototype.keys = function (type) {
return new Promise(function (resolve, reject) {
resolve([]);
});
};
DataStoreWorkerService.prototype.execOnUI = function (fn, args) {
var _this = this;
return new Promise(function (resolve, reject) {
if (_this.broker) {
var argments = [];
for (var _i = 0, args_1 = args; _i < args_1.length; _i++) {
var arg = args_1[_i];
argments.push(new FnArg(arg, PRIMITIVE));
}
var method = new UiArguments(fn, argments);
_this.broker.runOnService(method, PRIMITIVE).then(function (result) {
resolve(result);
});
}
else {
reject({ message: 'Message Broker does not exist or has not been initialised.' });
}
});
};
return DataStoreWorkerService;
}(DataStoreService));
export { DataStoreWorkerService };
DataStoreWorkerService.decorators = [
{ type: Injectable },
];
DataStoreWorkerService.ctorParameters = function () { return [
{ type: ClientMessageBrokerFactory, },
]; };
//# sourceMappingURL=data-store-worker.service.js.map