UNPKG

tsbase

Version:

Base class libraries for TypeScript

74 lines 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.DomStorage = exports.DomStorageMode = void 0; var JsonSerializer_1 = require("../../Utility/Serialization/JsonSerializer"); var Command_1 = require("../../Patterns/CommandQuery/Command"); var Query_1 = require("../../Patterns/CommandQuery/Query"); var DomStorageMode; (function (DomStorageMode) { DomStorageMode[DomStorageMode["Session"] = 0] = "Session"; DomStorageMode[DomStorageMode["Local"] = 1] = "Local"; })(DomStorageMode || (exports.DomStorageMode = DomStorageMode = {})); /** * Provides a generic interface for interacting with DomStorage */ var DomStorage = /** @class */ (function () { function DomStorage(storageMode, serializer) { if (serializer === void 0) { serializer = new JsonSerializer_1.JsonSerializer(); } this.storageMode = storageMode; this.serializer = serializer; } DomStorage.prototype.Get = function (type, key) { var _this = this; return new Query_1.Query(function () { var value = _this.getStorageMedium().getItem(key); if (value) { return _this.serializer.Deserialize(type, JSON.parse(value)); } else { return null; } }).Execute(); }; DomStorage.prototype.Set = function (key, value) { var _this = this; return new Command_1.Command(function () { return _this.getStorageMedium().setItem(key, JSON.stringify(value)); }).Execute(); }; DomStorage.prototype.GetValue = function (key) { var _this = this; return new Query_1.Query(function () { var value = _this.getStorageMedium().getItem(key); if (value) { return value; } else { return null; } }).Execute(); }; DomStorage.prototype.SetValue = function (key, value) { var _this = this; return new Command_1.Command(function () { return _this.getStorageMedium().setItem(key, value); }).Execute(); }; DomStorage.prototype.Remove = function (key) { var _this = this; return new Command_1.Command(function () { return _this.getStorageMedium().removeItem(key); }).Execute(); }; DomStorage.prototype.getStorageMedium = function () { if (this.storageMode === DomStorageMode.Local) { return window.localStorage; } else { return window.sessionStorage; } }; return DomStorage; }()); exports.DomStorage = DomStorage; //# sourceMappingURL=DomStorage.js.map