UNPKG

filestack-js

Version:

Official JavaScript library for Filestack

89 lines (87 loc) 9.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Store = void 0; var tslib_1 = require("tslib"); /* * Copyright (c) 2018 by Filestack. * Some rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ var debug_1 = tslib_1.__importDefault(require("debug")); var store_1 = require("./store"); var debug = (0, debug_1.default)('fs:storage'); var Store = /** @class */ (function () { function Store() { this.availableTypes = []; if (window.localStorage !== undefined) { this.availableTypes.push(store_1.STORE_TYPE.LOCAL); debug('Local storage exists'); } if (window.sessionStorage !== undefined) { this.availableTypes.push(store_1.STORE_TYPE.SESSION); debug('Session storage exists'); } debug('availableTypes - %O', this.availableTypes); } Store.prototype.hasAccess = function (prefType) { debug('Checking access to storage for %s. Available types: %O', prefType, this.availableTypes); if (prefType) { return this.availableTypes.indexOf(prefType) > -1; } return !!this.availableTypes.length; }; Store.prototype.getItem = function (key, prefType) { var store = this.getStore(prefType); debug('getItem %s from %O', key, store); if (!store) { return undefined; } return store.getItem(key); }; Store.prototype.setItem = function (key, value, prefType) { var store = this.getStore(prefType); debug('setItem %s to %O', key, store); if (!store) { return undefined; } return store.setItem(key, value); }; Store.prototype.removeItem = function (key, prefType) { var store = this.getStore(prefType); debug('removeItem %s from %O', key, store); if (!store) { return undefined; } return store.removeItem(key); }; Store.prototype.getStore = function (prefType) { debug('get store with pref type - %s', prefType); if (!this.hasAccess(prefType)) { debug('User dont have access to any storage'); return undefined; } switch (prefType) { case store_1.STORE_TYPE.LOCAL: return window.localStorage; case store_1.STORE_TYPE.SESSION: return window.sessionStorage; default: // @ts-ignore return window[this.availableTypes[0]]; } }; return Store; }()); exports.Store = Store; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvdXRpbHMvc3RvcmUuYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsd0RBQTBCO0FBQzFCLGlDQUFxQztBQUVyQyxJQUFNLEtBQUssR0FBRyxJQUFBLGVBQUssRUFBQyxZQUFZLENBQUMsQ0FBQztBQUVsQztJQUlFO1FBRlEsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFHMUIsSUFBSSxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsS0FBSyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRU0seUJBQVMsR0FBaEIsVUFBaUIsUUFBcUI7UUFDcEMsS0FBSyxDQUFDLHdEQUF3RCxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFL0YsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVNLHVCQUFPLEdBQWQsVUFBZSxHQUFXLEVBQUUsUUFBcUI7UUFDL0MsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRU0sdUJBQU8sR0FBZCxVQUFlLEdBQVcsRUFBRSxLQUFhLEVBQUUsUUFBcUI7UUFDOUQsSUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLDBCQUFVLEdBQWpCLFVBQWtCLEdBQVcsRUFBRSxRQUFxQjtRQUNsRCxJQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBRUQsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyx3QkFBUSxHQUFoQixVQUFpQixRQUFxQjtRQUNwQyxLQUFLLENBQUMsK0JBQStCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUM7WUFDOUMsT0FBTyxTQUFTLENBQUM7U0FDbEI7UUFFRCxRQUFRLFFBQVEsRUFBRTtZQUNoQixLQUFLLGtCQUFVLENBQUMsS0FBSztnQkFDbkIsT0FBTyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQzdCLEtBQUssa0JBQVUsQ0FBQyxPQUFPO2dCQUNyQixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUM7WUFDL0I7Z0JBQ0UsYUFBYTtnQkFDYixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFZLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBQ0gsWUFBQztBQUFELENBL0VBLEFBK0VDLElBQUE7QUEvRVksc0JBQUsiLCJmaWxlIjoibGliL3V0aWxzL3N0b3JlLmJyb3dzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IERlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7IFNUT1JFX1RZUEUgfSBmcm9tICcuL3N0b3JlJztcblxuY29uc3QgZGVidWcgPSBEZWJ1ZygnZnM6c3RvcmFnZScpO1xuXG5leHBvcnQgY2xhc3MgU3RvcmUge1xuXG4gIHByaXZhdGUgYXZhaWxhYmxlVHlwZXMgPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAod2luZG93LmxvY2FsU3RvcmFnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmF2YWlsYWJsZVR5cGVzLnB1c2goU1RPUkVfVFlQRS5MT0NBTCk7XG4gICAgICBkZWJ1ZygnTG9jYWwgc3RvcmFnZSBleGlzdHMnKTtcbiAgICB9XG5cbiAgICBpZiAod2luZG93LnNlc3Npb25TdG9yYWdlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYXZhaWxhYmxlVHlwZXMucHVzaChTVE9SRV9UWVBFLlNFU1NJT04pO1xuICAgICAgZGVidWcoJ1Nlc3Npb24gc3RvcmFnZSBleGlzdHMnKTtcbiAgICB9XG5cbiAgICBkZWJ1ZygnYXZhaWxhYmxlVHlwZXMgLSAlTycsIHRoaXMuYXZhaWxhYmxlVHlwZXMpO1xuICB9XG5cbiAgcHVibGljIGhhc0FjY2VzcyhwcmVmVHlwZT86IFNUT1JFX1RZUEUpOiBib29sZWFuIHtcbiAgICBkZWJ1ZygnQ2hlY2tpbmcgYWNjZXNzIHRvIHN0b3JhZ2UgZm9yICVzLiBBdmFpbGFibGUgdHlwZXM6ICVPJywgcHJlZlR5cGUsIHRoaXMuYXZhaWxhYmxlVHlwZXMpO1xuXG4gICAgaWYgKHByZWZUeXBlKSB7XG4gICAgICByZXR1cm4gdGhpcy5hdmFpbGFibGVUeXBlcy5pbmRleE9mKHByZWZUeXBlKSA+IC0xO1xuICAgIH1cblxuICAgIHJldHVybiAhIXRoaXMuYXZhaWxhYmxlVHlwZXMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldEl0ZW0oa2V5OiBzdHJpbmcsIHByZWZUeXBlPzogU1RPUkVfVFlQRSkge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5nZXRTdG9yZShwcmVmVHlwZSk7XG4gICAgZGVidWcoJ2dldEl0ZW0gJXMgZnJvbSAlTycsIGtleSwgc3RvcmUpO1xuXG4gICAgaWYgKCFzdG9yZSkge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3RvcmUuZ2V0SXRlbShrZXkpO1xuICB9XG5cbiAgcHVibGljIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHByZWZUeXBlPzogU1RPUkVfVFlQRSkge1xuICAgIGNvbnN0IHN0b3JlID0gdGhpcy5nZXRTdG9yZShwcmVmVHlwZSk7XG4gICAgZGVidWcoJ3NldEl0ZW0gJXMgdG8gJU8nLCBrZXksIHN0b3JlKTtcblxuICAgIGlmICghc3RvcmUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0b3JlLnNldEl0ZW0oa2V5LCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZywgcHJlZlR5cGU/OiBTVE9SRV9UWVBFKSB7XG4gICAgY29uc3Qgc3RvcmUgPSB0aGlzLmdldFN0b3JlKHByZWZUeXBlKTtcbiAgICBkZWJ1ZygncmVtb3ZlSXRlbSAlcyBmcm9tICVPJywga2V5LCBzdG9yZSk7XG5cbiAgICBpZiAoIXN0b3JlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJldHVybiBzdG9yZS5yZW1vdmVJdGVtKGtleSk7XG4gIH1cblxuICBwcml2YXRlIGdldFN0b3JlKHByZWZUeXBlPzogU1RPUkVfVFlQRSk6IGZhbHNlIHwgU3RvcmFnZSB7XG4gICAgZGVidWcoJ2dldCBzdG9yZSB3aXRoIHByZWYgdHlwZSAtICVzJywgcHJlZlR5cGUpO1xuXG4gICAgaWYgKCF0aGlzLmhhc0FjY2VzcyhwcmVmVHlwZSkpIHtcbiAgICAgIGRlYnVnKCdVc2VyIGRvbnQgaGF2ZSBhY2Nlc3MgdG8gYW55IHN0b3JhZ2UnKTtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc3dpdGNoIChwcmVmVHlwZSkge1xuICAgICAgY2FzZSBTVE9SRV9UWVBFLkxPQ0FMOlxuICAgICAgICByZXR1cm4gd2luZG93LmxvY2FsU3RvcmFnZTtcbiAgICAgIGNhc2UgU1RPUkVfVFlQRS5TRVNTSU9OOlxuICAgICAgICByZXR1cm4gd2luZG93LnNlc3Npb25TdG9yYWdlO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gd2luZG93W3RoaXMuYXZhaWxhYmxlVHlwZXNbMF1dIGFzIFN0b3JhZ2U7XG4gICAgfVxuICB9XG59XG4iXX0=