UNPKG

amos-tool

Version:

amos ui tool

72 lines (70 loc) 2.66 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"), _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")), _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")), InvalidStorageDB = function() { return (0, _createClass2.default)(function e() { (0, _classCallCheck2.default)(this, e); }, [ { key: "init", value: function() {} }, { key: "get", value: function() {} }, { key: "set", value: function() {} }, { key: "clear", value: function() {} } ]); }(), StorageDB = function() { return (0, _createClass2.default)(function e(t) { (0, _classCallCheck2.default)(this, e); var a = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; if (void 0 === a) return console.warn("Storage: IndexedDB not available."), new InvalidStorageDB; this._name = t.name || "amostool-db", this.version = t.version || 1, this.storeName = t.storeName || "item", this.database, this.indexedDB = a, this.performance = window.performance || { now: function() {} }; }, [ { key: "init", value: function(e) { var t = this, a = t.storeName, n = t.indexedDB.open(t._name, t.version); n.onupgradeneeded = function(e) { var t = e.target.result; !1 === t.objectStoreNames.contains(a) && t.createObjectStore(a); }, n.onsuccess = function(a) { t.database = a.target.result, e && e(); }, n.onerror = function(e) { console.error("IndexedDB", e); }; } }, { key: "get", value: function(e) { var t = this.storeName; this.database.transaction([ t ], "readwrite").objectStore(t).get(0).onsuccess = function(t) { e && e(t.target.result); }; } }, { key: "set", value: function(e, t) { var a = this, n = a.performance.now(), r = a.storeName; a.database.transaction([ r ], "readwrite").objectStore(r).put(e, 0).onsuccess = function(e) { console.log("[".concat(/\d\d\:\d\d\:\d\d/.exec(new Date)[0], "]"), "Saved item to IndexedDB. ".concat((a.performance.now() - n).toFixed(2), "ms")), t && t(e.target.result); }; } }, { key: "clear", value: function() { var e = this; if (void 0 !== e.database) { var t = e.storeName; e.database.transaction([ t ], "readwrite").objectStore(t).clear().onsuccess = function(e) { console.log("[".concat(/\d\d\:\d\d\:\d\d/.exec(new Date)[0], "]"), "Cleared IndexedDB."); }; } } } ]); }(); module.exports = StorageDB;