ns2-front-module-common
Version: 
NS2 common module
132 lines • 4.47 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 { AbstractKeyValueStorage } from "./abstract-key-value-storage.service";
/**
 * Сервис для работы с sessionStorage
 */
var SessionStorageService = (function (_super) {
    __extends(SessionStorageService, _super);
    function SessionStorageService() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    /**
     * Установка значения по ключу
     * @param {string} key Ключ, по которому необходимо сохранить данные
     * @param {any} value Данные для сохранения
     * @returns {Promise<T>}
     * @protected
     */
    SessionStorageService.prototype._set = function (key, value) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            try {
                _this._getStorageInstance()
                    .then(function (storage) {
                    storage.setItem(key, value);
                    resolve();
                })
                    .catch(reject);
            }
            catch (err) {
                reject(err);
            }
        });
    };
    /**
     * Получение значения по ключу
     * @param {string} key Ключ, по которому необходимо получить значение
     * @returns {Promise<T>}
     * @protected
     */
    SessionStorageService.prototype._get = function (key) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            try {
                _this._getStorageInstance()
                    .then(function (storage) {
                    var value = storage.getItem(key);
                    (value === null) ? reject() : resolve(value);
                })
                    .catch(reject);
            }
            catch (err) {
                reject(err);
            }
        });
    };
    /**
     * Удаление значения по ключу
     * @param {string} key Ключ по которым необходимо удалить данные
     * @returns {Promise<T>}
     * @protected
     */
    SessionStorageService.prototype._remove = function (key) {
        var _this = this;
        return new Promise(function (resolve, reject) {
            try {
                _this._getStorageInstance()
                    .then(function (storage) {
                    storage.removeItem(key);
                    resolve();
                })
                    .catch(reject);
            }
            catch (err) {
                reject(err);
            }
        });
    };
    /**
     * Полная очистка хранилища
     * @returns {Promise<T>}
     * @protected
     */
    SessionStorageService.prototype._clear = function () {
        var _this = this;
        return new Promise(function (resolve, reject) {
            try {
                _this._getStorageInstance()
                    .then(function (storage) {
                    storage.clear();
                    resolve();
                })
                    .catch(reject);
            }
            catch (err) {
                reject(err);
            }
        });
    };
    /**
     * Возвращает экземпляр хранилища
     * @returns {Promise<T>}
     * @protected
     */
    SessionStorageService.prototype._getStorageInstance = function () {
        return new Promise(function (resolve, reject) {
            try {
                resolve(sessionStorage);
            }
            catch (err) {
                reject(err);
            }
        });
    };
    return SessionStorageService;
}(AbstractKeyValueStorage));
export { SessionStorageService };
SessionStorageService.decorators = [
    { type: Injectable },
];
/** @nocollapse */
SessionStorageService.ctorParameters = function () { return []; };
//# sourceMappingURL=session-storage.service.js.map