UNPKG

@neocomplexx/ngx-neo-indexeddb

Version:

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.5.

2 lines 4.42 kB
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/core")):"function"==typeof define&&define.amd?define("@neocomplexx/ngx-neo-indexeddb",["exports","@angular/core"],r):r((e.neocomplexx=e.neocomplexx||{},e.neocomplexx["ngx-neo-indexeddb"]={}),e.ng.core)}(this,function(e,r){"use strict";var o=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[]}},e.decorators=[{type:r.NgModule,args:[{declarations:[],imports:[],exports:[]}]}],e}(),t=function(){function e(e,r){this.dbName=e,this.dbVersion=r||1,this.db=null}return e.prototype.validateStoreName=function(e){return this.db.objectStoreNames.contains(e)},e.prototype.validateBeforeTransaction=function(e,r){this.db||r("You need to use the openDatabase function to create a database before you query it!"),this.validateStoreName(e)||r("objectStore does not exists: "+e)},e.prototype.createTransaction=function(e){var r=this.db.transaction(e.storeName,e.dbMode);return r.onerror=e.error,r.oncomplete=e.complete,r.onabort=e.abort,r},e}(),n=function i(){this.indexedDB=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},a=function(){function e(e,r){this.utils=new n,this.dbWrapper=new t(e,r)}return e.prototype.openDatabase=function(e,n){var a=this;return new Promise(function(r,o){a.dbWrapper.dbVersion=e;var t=a.utils.indexedDB.open(a.dbWrapper.dbName,e);t.onsuccess=function(e){a.dbWrapper.db=t.result,r()},t.onerror=function(e){o((e.target.errorCode,e.target.errorCode+" ("+e.target.error+")"))},"function"==typeof n&&(t.onupgradeneeded=function(e){n(e,a.dbWrapper.db)})})},e.prototype.getByKey=function(e,t){var n=this;return new Promise(function(r,o){n.dbWrapper.validateBeforeTransaction(e,o),n.dbWrapper.createTransaction({storeName:e,dbMode:"readonly",error:function(e){o(e)},complete:function(e){}}).objectStore(e).get(t).onsuccess=function(e){r(e.target.result)}})},e.prototype.getAll=function(c,d,u){var s=this;return new Promise(function(o,r){s.dbWrapper.validateBeforeTransaction(c,r);var e,t=s.dbWrapper.createTransaction({storeName:c,dbMode:"readonly",error:function(e){r(e)},complete:function(e){}}).objectStore(c),n=[];if(u){var a=t.index(u.indexName),i="desc"===u.order?"prev":"next";e=a.openCursor(d,i)}else e=t.openCursor(d);e.onerror=function(e){r(e)},e.onsuccess=function(e){var r=e.target.result;r?(n.push(r.value),r["continue"]()):o(n)}})},e.prototype.add=function(e,t,n){var a=this;return new Promise(function(r,o){a.dbWrapper.validateBeforeTransaction(e,o),a.dbWrapper.createTransaction({storeName:e,dbMode:"readwrite",error:function(e){o(e)},complete:function(e){r({key:n,value:t})}}).objectStore(e).add(t,n).onsuccess=function(e){n=e.target.result}})},e.prototype.update=function(e,t,n){var a=this;return new Promise(function(r,o){a.dbWrapper.validateBeforeTransaction(e,o),a.dbWrapper.createTransaction({storeName:e,dbMode:"readwrite",error:function(e){o(e)},complete:function(e){r(t)},abort:function(e){o(e)}}).objectStore(e).put(t,n)})},e.prototype["delete"]=function(e,t){var n=this;return new Promise(function(r,o){n.dbWrapper.validateBeforeTransaction(e,o),n.dbWrapper.createTransaction({storeName:e,dbMode:"readwrite",error:function(e){o(e)},complete:function(e){r()},abort:function(e){o(e)}}).objectStore(e)["delete"](t)})},e.prototype.openCursor=function(e,t,n){var a=this;return new Promise(function(r,o){a.dbWrapper.validateBeforeTransaction(e,o),a.dbWrapper.createTransaction({storeName:e,dbMode:"readonly",error:function(e){o(e)},complete:function(e){r()},abort:function(e){o(e)}}).objectStore(e).openCursor(n).onsuccess=function(e){t(e),r()}})},e.prototype.clear=function(e){var t=this;return new Promise(function(r,o){t.dbWrapper.validateBeforeTransaction(e,o),t.dbWrapper.createTransaction({storeName:e,dbMode:"readwrite",error:function(e){o(e)},complete:function(e){r()},abort:function(e){o(e)}}).objectStore(e).clear(),r()})},e.prototype.getByIndex=function(e,t,n){var a=this;return new Promise(function(r,o){a.dbWrapper.validateBeforeTransaction(e,o),a.dbWrapper.createTransaction({storeName:e,dbMode:"readonly",error:function(e){o(e)},abort:function(e){o(e)},complete:function(e){}}).objectStore(e).index(t).get(n).onsuccess=function(e){r(e.target.result)}})},e}();e.NgxNeoIndexedDbModule=o,e.NgxNeoIDB=a,Object.defineProperty(e,"__esModule",{value:!0})}); //# sourceMappingURL=neocomplexx-ngx-neo-indexeddb.umd.min.js.map