baasic-sdk-javascript
Version:
JavaScript SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).
43 lines (42 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var contracts_1 = require("../contracts");
var inversify_1 = require("inversify");
var LocalStorageHandler = /** @class */ (function () {
function LocalStorageHandler(config) {
config = config || {};
if (!localStorage) {
throw new Error("Local storage not found.");
}
var parseKey = config.keyGenerator;
var getHandler;
if (parseKey) {
getHandler = function (fn) { return function () { arguments[0] = parseKey(arguments[0]); return fn.apply(this, arguments); }; };
}
else {
getHandler = function (fn) { return fn; };
}
this.clear = localStorage.clear;
this.remove = getHandler(this.removeItem);
this.set = getHandler(this.setItem);
this.get = getHandler(this.getItem);
}
LocalStorageHandler.prototype.removeItem = function (key) {
localStorage.removeItem(key);
};
LocalStorageHandler.prototype.getItem = function (key) {
return JSON.parse(localStorage.getItem(key));
};
LocalStorageHandler.prototype.setItem = function (key, data) {
localStorage.setItem(key, JSON.stringify(data));
};
LocalStorageHandler = tslib_1.__decorate([
inversify_1.injectable(),
tslib_1.__param(0, inversify_1.inject(contracts_1.TYPES.IDefaultStorageConfig)), tslib_1.__param(0, inversify_1.optional()),
tslib_1.__metadata("design:paramtypes", [Object])
], LocalStorageHandler);
return LocalStorageHandler;
}());
exports.LocalStorageHandler = LocalStorageHandler;
;