UNPKG

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
"use strict"; 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; ;