UNPKG

ajsfw

Version:
137 lines (136 loc) 6.53 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var logger = require("ajsfw/dbg/logger"); var consts = require("./constants"); var logmsg = require("./Strings_Log.Debug"); var IndexedDbStorageProvider = (function () { function IndexedDbStorageProvider(db) { this.__db = db; } Object.defineProperty(IndexedDbStorageProvider.prototype, "length", { get: function () { return this.__length; }, enumerable: true, configurable: true }); IndexedDbStorageProvider.prototype.initialize = function () { return __awaiter(this, void 0, void 0, function () { return __generator(this, function (_a) { switch (_a.label) { case 0: logger.log(logger.LogType.Enter, 0, logmsg.LOG_AJSRESSTORP, this); if (this.__initialized) { return [2]; } this.__initialized = true; logger.log(logger.LogType.Info, 3, logmsg.LOG_AJSRESSTORP, this, logmsg.LOG_INITIALIZING_INDEXEDDB_STORAGE); return [4, this.__db.initialize()]; case 1: _a.sent(); return [4, this.__db.createStore(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME, { keyPath: "key", autoIncrement: false }, function (store) { })]; case 2: _a.sent(); logger.log(logger.LogType.Exit, 0, logmsg.LOG_AJSRESSTORP, this); return [2]; } }); }); }; IndexedDbStorageProvider.prototype.clear = function () { var _this = this; logger.log(logger.LogType.Enter, 0, logmsg.LOG_AJSRESSTORP, this); this.__length = 0; return this.__db.doStoreRequest(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME, "readwrite", function (store) { logger.log(logger.LogType.Info, 3, logmsg.LOG_AJSRESSTORP, _this, logmsg.LOG_CLEARING_INDEXEDDB_STORAGE); return store.clear(); }); }; IndexedDbStorageProvider.prototype.setItem = function (key, value) { return __awaiter(this, void 0, void 0, function () { var _this = this; var oldItem; return __generator(this, function (_a) { switch (_a.label) { case 0: logger.log(logger.LogType.Enter, 0, logmsg.LOG_AJSRESSTORP, this); return [4, this.getItem(key)]; case 1: oldItem = _a.sent(); return [4, this.__db.doStoreRequest(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME, "readwrite", function (store) { logger.log(logger.LogType.Info, 3, logmsg.LOG_AJSRESSTORP, _this, logmsg.LOG_SETTING_INDEXEDDB_STORAGE_ITEM + " " + key + ": " + value, value); return store.put({ key: key, value: value }); })]; case 2: _a.sent(); if (oldItem === null) { this.__length++; } return [2]; } }); }); }; IndexedDbStorageProvider.prototype.getItem = function (key) { return __awaiter(this, void 0, void 0, function () { var _this = this; var obj; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4, this.__db.doStoreRequest(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME, "readonly", function (store) { logger.log(logger.LogType.Info, 3, logmsg.LOG_AJSRESSTORP, _this, logmsg.LOG_GETTING_INDEXEDDB_STORAGE_ITEM + " " + key); var dbr = store.get(key); return dbr; })]; case 1: obj = _a.sent(); if (obj === undefined) { return [2, null]; } return [2, obj.value]; } }); }); }; IndexedDbStorageProvider.prototype.removeItem = function (key) { return __awaiter(this, void 0, void 0, function () { var _this = this; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4, this.__db.doStoreRequest(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME, "readonly", function (store) { logger.log(logger.LogType.Info, 3, logmsg.LOG_AJSRESSTORP, _this, logmsg.LOG_REMOVING_INDEXEDDB_STORAGE_ITEM + " " + key); return store.delete(key); })]; case 1: _a.sent(); this.__length--; return [2]; } }); }); }; IndexedDbStorageProvider.prototype.__count = function () { return __awaiter(this, void 0, void 0, function () { var _this = this; var c; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!this.__db.isOldIDbImplementation) return [3, 2]; return [4, this.__db.countItemsUsingCursor(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME)]; case 1: c = _a.sent(); return [2, c]; case 2: return [4, this.__db.doStoreRequest(consts.INDEXDB_STORAGE_PROVIDER_STORAGE_NAME, "readonly", function (store) { logger.log(logger.LogType.Info, 3, logmsg.LOG_AJSRESSTORP, _this, logmsg.LOG_COUNTING_INDEXEDDB_ITEMS); return store.count(); })]; case 3: c = _a.sent(); return [2, c]; } }); }); }; return IndexedDbStorageProvider; }()); exports.IndexedDbStorageProvider = IndexedDbStorageProvider;