tsbase
Version:
Base class libraries for TypeScript
74 lines • 2.69 kB
JavaScript
;
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