sklad
Advanced tools
Comparing version 4.2.0 to 4.2.1-beta.1
@@ -0,5 +1,10 @@ | ||
## 4.2.1 | ||
* if you're using ES2015 modules, you can now import `sklad/es2015` | ||
* support for Rollup's [jsnext:main](https://github.com/rollup/rollup/wiki/jsnext:main) introduced | ||
## 4.2.0 | ||
* new: support for service workers introduced | ||
* bower config removed, you should install `sklad` with npm or access it via https://npmcdn.com/ instead | ||
* bower config removed, you should install `sklad` with npm or access it via https://unpkg.com/ instead | ||
* main exported file is now ES5-compatible code | ||
@@ -6,0 +11,0 @@ |
@@ -26,3 +26,3 @@ !function(e,r){"object"==typeof exports&&"object"==typeof module?module.exports=r():"function"==typeof define&&define.amd?define([],r):"object"==typeof exports?exports.sklad=r():e.sklad=r()}(this,function(){return function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){/** | ||
*/ | ||
"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r,t){var n=Object.prototype.isPrototypeOf.call(E,t),o=n?t.value:t,a=m.get(e).get(r.name),i=n?t.key:void 0,u=r.keyPath||a.keyPath,s=r.autoIncrement||a.autoIncrement;if(null===u)s||void 0!==i||(i=(0,l["default"])());else{if("object"!==("undefined"==typeof t?"undefined":c(t)))return!1;s||void 0!==t[u]||(t[u]=(0,l["default"])())}return i?[o,i]:[o]}function i(e){return e.every(function(e){return-1!==b.call(this.database.objectStoreNames,e)},this)}function u(e,r){var t=m.get(e.name),n=[];return r.forEach(function(r){if(!t.has(r)){var o=new Promise(function(n){var o=e.transaction([r],p.TRANSACTION_READWRITE);o.oncomplete=n,o.onabort=n;var a=o.objectStore(r);if(void 0!==a.autoIncrement)return void t.set(r,{autoIncrement:a.autoIncrement,keyPath:a.keyPath});var i=void 0;if(null!==a.keyPath)if(Array.isArray(a.keyPath))i=!1;else try{a.add({}),i=!0}catch(u){i=!1}else try{a.add("some value"),i=!0}catch(u){i=!1}t.set(r,{autoIncrement:i,keyPath:a.keyPath}),o.abort()});n.push(o)}}),Promise.all(n)}Object.defineProperty(r,"__esModule",{value:!0});var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},s=t(1),f=n(s),d=t(2),l=n(d),v=t(3),p=t(4),y={};y.ASC=p.SORT_ASC,y.ASC_UNIQUE=p.SORT_ASC_UNIQUE,y.DESC=p.SORT_DESC,y.DESC_UNIQUE=p.SORT_DESC_UNIQUE;var b=Array.prototype.indexOf,h="function"==typeof IDBObjectStore.prototype.getAll&&"function"==typeof IDBObjectStore.prototype.getAllKeys,m=new Map,E=Object.create(null),x={insert:function(){var e=this,r=1===arguments.length,t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var s=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(s)}var d=void 0;return r?d=arguments[0]:(d={},d[arguments[0]]=[arguments[1]]),u(this.database,t).then(function(){return new Promise(function(n,i){var u={},s=void 0,l=void 0;try{s=e.database.transaction(t,p.TRANSACTION_READWRITE)}catch(y){return void("NotFoundError"===y.name?!function(){var r={};t.forEach(function(t){var n=e.insert(o({},t,Array.isArray(d[t])?d[t]:[d[t]])).then(function(e){return e[t]});r[t]=n}),f["default"].all(r).then(n)["catch"](i)}():i(y))}s.oncomplete=s.onerror=s.onabort=function(e){var o=l||e.target.error,a=!o&&"complete"===e.type;a?n(r?u:u[t[0]][0]):i((0,v.ensureError)(o)),"error"===e.type&&e.preventDefault()};var b=function(r){for(var t=s.objectStore(r),n=function(n){var o=a(e.database.name,t,d[r][n]);if(!o)return l=(0,v.createError)("InvalidStateError","You must supply objects to be saved in the object store with set keyPath"),{v:{v:void 0}};var i=void 0;try{i=t.add.apply(t,o)}catch(c){return l=c,"continue"}i.onsuccess=function(e){u[r]=u[r]||[],u[r][n]=e.target.result}},o=0;o<d[r].length;o++){var i=n(o);switch(i){case"continue":continue;default:if("object"===("undefined"==typeof i?"undefined":c(i)))return i.v}}};for(var h in d){var m=b(h);if("object"===("undefined"==typeof m?"undefined":c(m)))return m.v}})})},upsert:function(){var e=this,r=1===arguments.length,t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var s=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(s)}var d=void 0;return r?d=arguments[0]:(d={},d[arguments[0]]=[arguments[1]]),u(this.database,t).then(function(){return new Promise(function(n,i){var u={},s=void 0,l=void 0;try{s=e.database.transaction(t,p.TRANSACTION_READWRITE)}catch(y){return void("NotFoundError"===y.name?!function(){var r={};t.forEach(function(t){var n=e.upsert(o({},t,Array.isArray(d[t])?d[t]:[d[t]])).then(function(e){return e[t]});r[t]=n}),f["default"].all(r).then(n)["catch"](i)}():i(y))}s.oncomplete=s.onerror=s.onabort=function(e){var o=l||e.target.error,a=!o&&"complete"===e.type;a?n(r?u:u[t[0]][0]):i((0,v.ensureError)(o)),"error"===e.type&&e.preventDefault()};var b=function(r){for(var t=s.objectStore(r),n=function(n){var o=a(e.database.name,t,d[r][n]);if(!o)return l=(0,v.createError)("InvalidStateError","You must supply objects to be saved in the object store with set keyPath"),{v:{v:void 0}};var i=void 0;try{i=t.put.apply(t,o)}catch(c){return l=c,"continue"}i.onsuccess=function(e){u[r]=u[r]||[],u[r][n]=e.target.result}},o=0;o<d[r].length;o++){var i=n(o);switch(i){case"continue":continue;default:if("object"===("undefined"==typeof i?"undefined":c(i)))return i.v}}};for(var h in d){var m=b(h);if("object"===("undefined"==typeof m?"undefined":c(m)))return m.v}})})},"delete":function(){var e=this,r=1===arguments.length,t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var o=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(o)}var a=void 0;return r?a=arguments[0]:(a={},a[arguments[0]]=[arguments[1]]),new Promise(function(r,n){var o=void 0,i=void 0;try{o=e.database.transaction(t,p.TRANSACTION_READWRITE)}catch(u){if("NotFoundError"===u.name){var c=t.map(function(r){return e["delete"](r,a[r])});Promise.all(c).then(function(){return r()})["catch"](n)}else n(u);return}o.oncomplete=o.onerror=o.onabort=function(e){var t=i||e.target.error;t?n((0,v.ensureError)(t)):r(),"error"===e.type&&e.preventDefault()};var s=function(e){var r=o.objectStore(e);a[e].forEach(function(e){if(!i)try{r["delete"](e)}catch(t){i=t}})};for(var f in a)s(f)})},clear:function(e){var r=this;e=Array.isArray(e)?e:[e];var t=i.call(this,e);if(!t){var n=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(n)}return new Promise(function(t,n){var o=void 0,a=void 0;try{o=r.database.transaction(e,p.TRANSACTION_READWRITE)}catch(i){if("NotFoundError"===i.name){var u=e.map(function(e){return r.clear([e])});Promise.all(u).then(function(){return t()})["catch"](n)}else n(i);return}o.oncomplete=o.onerror=o.onabort=function(e){var r=a||e.target.error;r?n((0,v.ensureError)(r)):t(),"error"===e.type&&e.preventDefault()},e.forEach(function(e){var r=o.objectStore(e);if(!a)try{r.clear()}catch(t){a=t}})})},get:function(){var e=this,r=1===arguments.length&&"object"===c(arguments[0]),t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var o=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(o)}var a={},u=void 0,s=void 0;return r?u=arguments[0]:(u={},u[arguments[0]]=arguments[1]),t.forEach(function(e){a[e]=[]}),new Promise(function(n,o){var i=void 0;try{i=e.database.transaction(t,p.TRANSACTION_READONLY)}catch(d){return void("NotFoundError"===d.name?!function(){var r={};t.forEach(function(t){var n=e.get(t,u[t]);r[t]=n}),f["default"].all(r).then(n)["catch"](o)}():o(d))}i.oncomplete=i.onerror=i.onabort=function(e){var i=s||e.target.error,u=!i&&"complete"===e.type;u?n(r?a:a[t[0]]):o((0,v.ensureError)(i)),"error"===e.type&&e.preventDefault()};var l=function(e){var r=i.objectStore(e),t=u[e]||{},n=t.direction||y.ASC,o=t.range instanceof p.IDBKeyRangeRef?t.range:null,f=!1,d=void 0;if(h&&(f=Object.keys(t).every(function(e){return"index"!==e&&"direction"!==e})),t.index){if(!r.indexNames.contains(t.index))return s=(0,v.createError)("NotFoundError","Object store "+r.name+" doesn't contain \""+t.index+'" index'),{v:void 0};try{d=r.index(t.index).openCursor(o,n)}catch(l){return s=l,{v:void 0}}}else if(f){var b=function(){var n=[o],i=0;t.limit&&(n.push(t.limit),t.offset&&(n[1]+=t.offset,i=t.offset));try{r.getAll.apply(r,n).onsuccess=function(r){var t=r.target.result;t.forEach(function(r,t){if(!(i>t)){var n=t-i;a[e][n]=a[e][n]||{},a[e][n].value=r}})},r.getAllKeys.apply(r,n).onsuccess=function(r){var t=r.target.result;t.forEach(function(r,t){if(!(i>t)){var n=t-i;a[e][n]=a[e][n]||{},a[e][n].key=r}})}}catch(u){s=u}finally{return{v:"continue"}}}();if("object"===("undefined"==typeof b?"undefined":c(b)))return b.v}else try{d=r.openCursor(o,n)}catch(l){return s=l,{v:void 0}}var m=!1;d.onsuccess=function(r){var n=r.target.result;if(n){if(t.offset&&!m)return m=!0,void n.advance(t.offset);a[e].push({key:n.key,value:n.value}),t.limit&&t.limit===a[e].length||n["continue"]()}}};for(var b in u){var m=l(b);switch(m){case"continue":continue;default:if("object"===("undefined"==typeof m?"undefined":c(m)))return m.v}}})},count:function(){var e=this,r=1===arguments.length&&"object"===c(arguments[0]),t=r?Object.keys(arguments[0]):[arguments[0]],n=void 0;r?n=arguments[0]:(n={},n[arguments[0]]="function"==typeof arguments[1]?null:arguments[1]);var o=i.call(this,t);if(!o){var a=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(a)}return new Promise(function(o,a){var i={},u=void 0,s=void 0,d=void 0;try{u=e.database.transaction(t,p.TRANSACTION_READONLY)}catch(l){return void("NotFoundError"===l.name?!function(){var r={};t.forEach(function(t){var o=e.count(t,n[t]);r[t]=o}),f["default"].all(r).then(o)["catch"](a)}():a(l))}u.oncomplete=u.onerror=u.onabort=function(e){var n=d||e.target.error,u=!n&&"complete"===e.type;u?o(r?i:i[t[0]]):a((0,v.ensureError)(n)),"error"===e.type&&e.preventDefault()};var y=function(e){var r=u.objectStore(e),t=n[e]||{},o=t.range instanceof p.IDBKeyRangeRef?[t.range]:[];if(t.index){if(!r.indexNames.contains(t.index))return d=(0,v.createError)("NotFoundError","Object store "+r.name+" doesn't contain \""+t.index+'" index'),{v:void 0};try{var a=r.index(t.index);s=a.count.apply(a,o)}catch(c){return d=c,{v:void 0}}}else try{s=r.count.apply(r,o)}catch(c){return d=c,{v:void 0}}s.onsuccess=function(r){i[e]=r.target.result||0}};for(var b in n){var h=y(b);if("object"===("undefined"==typeof h?"undefined":c(h)))return h.v}})},close:function(){this.database.close(),delete this.database}};y.open=function(e){var r=arguments.length<=1||void 0===arguments[1]?{version:1}:arguments[1];return new Promise(function(t,n){if(!p.indexedDbRef)return void n((0,v.createError)("NotSupportedError","Your browser doesn't support IndexedDB"));var o=p.indexedDbRef.open(e,r.version),a=!1;o.onupgradeneeded=function(e){if(!a){r.migration=r.migration||{};for(var t=e.oldVersion+1;t<=e.newVersion;t++)r.migration[t]&&r.migration[t].call(this,this.result)}},o.onerror=function(e){a||(e.preventDefault(),n((0,v.ensureError)(e.target.error)),a=!0)},o.onsuccess=function(i){if(!a){var u=this.result,c=parseInt(u.version||0,10);if("function"==typeof u.setVersion&&c<r.version){var s=u.setVersion(r.version);return s.onsuccess=function(a){var i=new Event("upgradeneeded");i.oldVersion=c,i.newVersion=r.version,o.onupgradeneeded.call({result:a.target.source},i),u.close(),y.open(e,r).then(t,n)},void(s.onerror=function(e){var r=e.target.errorMessage||e.target.webkitErrorMessage||e.target.mozErrorMessage||e.target.msErrorMessage||e.target.error.name;n((0,v.ensureError)(r))})}m.set(e,new Map),t(Object.create(x,{database:{configurable:!0,enumerable:!1,value:u,writable:!1}})),a=!0}},o.onblocked=function(r){a||(r.preventDefault(),n((0,v.createError)("InvalidStateError","Database "+e+" is blocked")),a=!0)}})},y.deleteDatabase=function(e){return new Promise(function(r,t){if(!p.indexedDbRef)return void t((0,v.createError)("NotSupportedError","Your browser doesn't support IndexedDB"));var n=p.indexedDbRef.deleteDatabase(e);n.onsuccess=n.onerror=n.onblocked=function(n){var o="blocked"===n.type?(0,v.createError)("InvalidStateError","Database "+e+" is blocked"):n.target.error;o?t((0,v.ensureError)(o)):r(),"success"!==n.type&&n.preventDefault()}})},y.keyValue=function(e,r){return Object.create(E,{key:{value:e,configurable:!1,writable:!1},value:{value:r,configurable:!1,writable:!1}})},r["default"]=y,e.exports=r["default"]},function(e,r){"use strict";function t(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function n(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r}function o(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)}function a(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},u=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(r,t,n){return t&&e(r.prototype,t),n&&e(r,n),r}}();Object.defineProperty(r,"__esModule",{value:!0});var c=function(e){function r(){return t(this,r),n(this,Object.getPrototypeOf(r).apply(this,arguments))}return o(r,e),u(r,[{key:"spread",value:function(e,r){function t(r){return Array.isArray(r)?e.apply(void 0,a(r)):void 0}return this.then(t,r)}}]),r}(Promise);c.all=function(e){return arguments.length>1||"object"!==("undefined"==typeof e?"undefined":i(e))?Promise.all.apply(Promise,arguments):new c(function(r,t){var n=Array.isArray(e),o=void 0,a=void 0;n?o=e:(a=Object.keys(e),o=a.map(function(r){return e[r]})),Promise.all(o).then(function(e){var t=void 0;t=n?e:e.reduce(function(e,r,t){return e[a[t]]=r,e},{}),r(t)})["catch"](t)})},r["default"]=c,e.exports=r["default"]},function(e,r){"use strict";function t(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var r=16*Math.random()|0,t="x"===e?r:3&r|8;return t.toString(16)})}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t,e.exports=r["default"]},function(e,r){"use strict";function t(e,r){var t=new Error(r);return t.name=e,t}function n(e){return e instanceof Error?e:t(e.name,e.message)}Object.defineProperty(r,"__esModule",{value:!0}),r.createError=t,r.ensureError=n},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t="undefined"!=typeof window;r.indexedDbRef=t?window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB:indexedDB,r.IDBKeyRangeRef=t?window.IDBKeyRange||window.mozIDBKeyRange||window.webkitIDBKeyRange||window.msIDBKeyRange:IDBKeyRange,r.TRANSACTION_READONLY=t?window.IDBTransaction.READ_ONLY||"readonly":"readonly",r.TRANSACTION_READWRITE=t?window.IDBTransaction.READ_WRITE||"readwrite":"readwrite",r.SORT_ASC=t?window.IDBCursor.NEXT||"next":"next",r.SORT_ASC_UNIQUE=t?window.IDBCursor.NEXT_NO_DUPLICATE||"nextunique":"nextunique",r.SORT_DESC=t?window.IDBCursor.PREV||"prev":"prev",r.SORT_DESC_UNIQUE=t?window.IDBCursor.PREV_NO_DUPLICATE||"prevunique":"prevunique"}])}); | ||
"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e,r,t){var n=Object.prototype.isPrototypeOf.call(E,t),o=n?t.value:t,a=m.get(e).get(r.name),i=n?t.key:void 0,u=r.keyPath||a.keyPath,s=r.autoIncrement||a.autoIncrement;if(null===u)s||void 0!==i||(i=(0,l["default"])());else{if("object"!==("undefined"==typeof t?"undefined":c(t)))return!1;s||void 0!==t[u]||(t[u]=(0,l["default"])())}return i?[o,i]:[o]}function i(e){return e.every(function(e){return b.call(this.database.objectStoreNames,e)!==-1},this)}function u(e,r){var t=m.get(e.name),n=[];return r.forEach(function(r){if(!t.has(r)){var o=new Promise(function(n){var o=e.transaction([r],p.TRANSACTION_READWRITE);o.oncomplete=n,o.onabort=n;var a=o.objectStore(r);if(void 0!==a.autoIncrement)return void t.set(r,{autoIncrement:a.autoIncrement,keyPath:a.keyPath});var i=void 0;if(null!==a.keyPath)if(Array.isArray(a.keyPath))i=!1;else try{a.add({}),i=!0}catch(u){i=!1}else try{a.add("some value"),i=!0}catch(u){i=!1}t.set(r,{autoIncrement:i,keyPath:a.keyPath}),o.abort()});n.push(o)}}),Promise.all(n)}Object.defineProperty(r,"__esModule",{value:!0});var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},s=t(1),f=n(s),d=t(2),l=n(d),v=t(3),p=t(4),y={};y.ASC=p.SORT_ASC,y.ASC_UNIQUE=p.SORT_ASC_UNIQUE,y.DESC=p.SORT_DESC,y.DESC_UNIQUE=p.SORT_DESC_UNIQUE;var b=Array.prototype.indexOf,h="function"==typeof IDBObjectStore.prototype.getAll&&"function"==typeof IDBObjectStore.prototype.getAllKeys,m=new Map,E=Object.create(null),x={insert:function(){var e=this,r=1===arguments.length,t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var s=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(s)}var d=void 0;return r?d=arguments[0]:(d={},d[arguments[0]]=[arguments[1]]),u(this.database,t).then(function(){return new Promise(function(n,i){var u={},s=void 0,l=void 0;try{s=e.database.transaction(t,p.TRANSACTION_READWRITE)}catch(y){return void("NotFoundError"===y.name?!function(){var r={};t.forEach(function(t){var n=e.insert(o({},t,Array.isArray(d[t])?d[t]:[d[t]])).then(function(e){return e[t]});r[t]=n}),f["default"].all(r).then(n)["catch"](i)}():i(y))}s.oncomplete=s.onerror=s.onabort=function(e){var o=l||e.target.error,a=!o&&"complete"===e.type;a?n(r?u:u[t[0]][0]):i((0,v.ensureError)(o)),"error"===e.type&&e.preventDefault()};var b=function(r){for(var t=s.objectStore(r),n=function(n){var o=a(e.database.name,t,d[r][n]);if(!o)return l=(0,v.createError)("InvalidStateError","You must supply objects to be saved in the object store with set keyPath"),{v:{v:void 0}};var i=void 0;try{i=t.add.apply(t,o)}catch(c){return l=c,"continue"}i.onsuccess=function(e){u[r]=u[r]||[],u[r][n]=e.target.result}},o=0;o<d[r].length;o++){var i=n(o);switch(i){case"continue":continue;default:if("object"===("undefined"==typeof i?"undefined":c(i)))return i.v}}};for(var h in d){var m=b(h);if("object"===("undefined"==typeof m?"undefined":c(m)))return m.v}})})},upsert:function(){var e=this,r=1===arguments.length,t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var s=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(s)}var d=void 0;return r?d=arguments[0]:(d={},d[arguments[0]]=[arguments[1]]),u(this.database,t).then(function(){return new Promise(function(n,i){var u={},s=void 0,l=void 0;try{s=e.database.transaction(t,p.TRANSACTION_READWRITE)}catch(y){return void("NotFoundError"===y.name?!function(){var r={};t.forEach(function(t){var n=e.upsert(o({},t,Array.isArray(d[t])?d[t]:[d[t]])).then(function(e){return e[t]});r[t]=n}),f["default"].all(r).then(n)["catch"](i)}():i(y))}s.oncomplete=s.onerror=s.onabort=function(e){var o=l||e.target.error,a=!o&&"complete"===e.type;a?n(r?u:u[t[0]][0]):i((0,v.ensureError)(o)),"error"===e.type&&e.preventDefault()};var b=function(r){for(var t=s.objectStore(r),n=function(n){var o=a(e.database.name,t,d[r][n]);if(!o)return l=(0,v.createError)("InvalidStateError","You must supply objects to be saved in the object store with set keyPath"),{v:{v:void 0}};var i=void 0;try{i=t.put.apply(t,o)}catch(c){return l=c,"continue"}i.onsuccess=function(e){u[r]=u[r]||[],u[r][n]=e.target.result}},o=0;o<d[r].length;o++){var i=n(o);switch(i){case"continue":continue;default:if("object"===("undefined"==typeof i?"undefined":c(i)))return i.v}}};for(var h in d){var m=b(h);if("object"===("undefined"==typeof m?"undefined":c(m)))return m.v}})})},"delete":function(){var e=this,r=1===arguments.length,t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var o=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(o)}var a=void 0;return r?a=arguments[0]:(a={},a[arguments[0]]=[arguments[1]]),new Promise(function(r,n){var o=void 0,i=void 0;try{o=e.database.transaction(t,p.TRANSACTION_READWRITE)}catch(u){if("NotFoundError"===u.name){var c=t.map(function(r){return e["delete"](r,a[r])});Promise.all(c).then(function(){return r()})["catch"](n)}else n(u);return}o.oncomplete=o.onerror=o.onabort=function(e){var t=i||e.target.error;t?n((0,v.ensureError)(t)):r(),"error"===e.type&&e.preventDefault()};var s=function(e){var r=o.objectStore(e);a[e].forEach(function(e){if(!i)try{r["delete"](e)}catch(t){i=t}})};for(var f in a)s(f)})},clear:function(e){var r=this;e=Array.isArray(e)?e:[e];var t=i.call(this,e);if(!t){var n=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(n)}return new Promise(function(t,n){var o=void 0,a=void 0;try{o=r.database.transaction(e,p.TRANSACTION_READWRITE)}catch(i){if("NotFoundError"===i.name){var u=e.map(function(e){return r.clear([e])});Promise.all(u).then(function(){return t()})["catch"](n)}else n(i);return}o.oncomplete=o.onerror=o.onabort=function(e){var r=a||e.target.error;r?n((0,v.ensureError)(r)):t(),"error"===e.type&&e.preventDefault()},e.forEach(function(e){var r=o.objectStore(e);if(!a)try{r.clear()}catch(t){a=t}})})},get:function(){var e=this,r=1===arguments.length&&"object"===c(arguments[0]),t=r?Object.keys(arguments[0]):[arguments[0]],n=i.call(this,t);if(!n){var o=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(o)}var a={},u=void 0,s=void 0;return r?u=arguments[0]:(u={},u[arguments[0]]=arguments[1]),t.forEach(function(e){a[e]=[]}),new Promise(function(n,o){var i=void 0;try{i=e.database.transaction(t,p.TRANSACTION_READONLY)}catch(d){return void("NotFoundError"===d.name?!function(){var r={};t.forEach(function(t){var n=e.get(t,u[t]);r[t]=n}),f["default"].all(r).then(n)["catch"](o)}():o(d))}i.oncomplete=i.onerror=i.onabort=function(e){var i=s||e.target.error,u=!i&&"complete"===e.type;u?n(r?a:a[t[0]]):o((0,v.ensureError)(i)),"error"===e.type&&e.preventDefault()};var l=function(e){var r=i.objectStore(e),t=u[e]||{},n=t.direction||y.ASC,o=t.range instanceof p.IDBKeyRangeRef?t.range:null,f=!1,d=void 0;if(h&&(f=Object.keys(t).every(function(e){return"index"!==e&&"direction"!==e})),t.index){if(!r.indexNames.contains(t.index))return s=(0,v.createError)("NotFoundError","Object store "+r.name+" doesn't contain \""+t.index+'" index'),{v:void 0};try{d=r.index(t.index).openCursor(o,n)}catch(l){return s=l,{v:void 0}}}else if(f){var b=function(){var n=[o],i=0;t.limit&&(n.push(t.limit),t.offset&&(n[1]+=t.offset,i=t.offset));try{r.getAll.apply(r,n).onsuccess=function(r){var t=r.target.result;t.forEach(function(r,t){if(!(t<i)){var n=t-i;a[e][n]=a[e][n]||{},a[e][n].value=r}})},r.getAllKeys.apply(r,n).onsuccess=function(r){var t=r.target.result;t.forEach(function(r,t){if(!(t<i)){var n=t-i;a[e][n]=a[e][n]||{},a[e][n].key=r}})}}catch(u){s=u}return{v:"continue"}}();if("object"===("undefined"==typeof b?"undefined":c(b)))return b.v}else try{d=r.openCursor(o,n)}catch(l){return s=l,{v:void 0}}var m=!1;d.onsuccess=function(r){var n=r.target.result;if(n){if(t.offset&&!m)return m=!0,void n.advance(t.offset);a[e].push({key:n.key,value:n.value}),t.limit&&t.limit===a[e].length||n["continue"]()}}};for(var b in u){var m=l(b);switch(m){case"continue":continue;default:if("object"===("undefined"==typeof m?"undefined":c(m)))return m.v}}})},count:function(){var e=this,r=1===arguments.length&&"object"===c(arguments[0]),t=r?Object.keys(arguments[0]):[arguments[0]],n=void 0;r?n=arguments[0]:(n={},n[arguments[0]]="function"==typeof arguments[1]?null:arguments[1]);var o=i.call(this,t);if(!o){var a=(0,v.createError)("NotFoundError","Database "+this.database.name+" (version "+this.database.version+") doesn't contain all needed stores");return Promise.reject(a)}return new Promise(function(o,a){var i={},u=void 0,s=void 0,d=void 0;try{u=e.database.transaction(t,p.TRANSACTION_READONLY)}catch(l){return void("NotFoundError"===l.name?!function(){var r={};t.forEach(function(t){var o=e.count(t,n[t]);r[t]=o}),f["default"].all(r).then(o)["catch"](a)}():a(l))}u.oncomplete=u.onerror=u.onabort=function(e){var n=d||e.target.error,u=!n&&"complete"===e.type;u?o(r?i:i[t[0]]):a((0,v.ensureError)(n)),"error"===e.type&&e.preventDefault()};var y=function(e){var r=u.objectStore(e),t=n[e]||{},o=t.range instanceof p.IDBKeyRangeRef?[t.range]:[];if(t.index){if(!r.indexNames.contains(t.index))return d=(0,v.createError)("NotFoundError","Object store "+r.name+" doesn't contain \""+t.index+'" index'),{v:void 0};try{var a=r.index(t.index);s=a.count.apply(a,o)}catch(c){return d=c,{v:void 0}}}else try{s=r.count.apply(r,o)}catch(c){return d=c,{v:void 0}}s.onsuccess=function(r){i[e]=r.target.result||0}};for(var b in n){var h=y(b);if("object"===("undefined"==typeof h?"undefined":c(h)))return h.v}})},close:function(){this.database.close(),delete this.database}};y.open=function(e){var r=arguments.length<=1||void 0===arguments[1]?{version:1}:arguments[1];return new Promise(function(t,n){if(!p.indexedDbRef)return void n((0,v.createError)("NotSupportedError","Your browser doesn't support IndexedDB"));var o=p.indexedDbRef.open(e,r.version),a=!1;o.onupgradeneeded=function(e){if(!a){r.migration=r.migration||{};for(var t=e.oldVersion+1;t<=e.newVersion;t++)r.migration[t]&&r.migration[t].call(this,this.result)}},o.onerror=function(e){a||(e.preventDefault(),n((0,v.ensureError)(e.target.error)),a=!0)},o.onsuccess=function(){if(!a){var i=this.result,u=parseInt(i.version||0,10);if("function"==typeof i.setVersion&&u<r.version){var c=i.setVersion(r.version);return c.onsuccess=function(a){var c=new Event("upgradeneeded");c.oldVersion=u,c.newVersion=r.version,o.onupgradeneeded.call({result:a.target.source},c),i.close(),y.open(e,r).then(t,n)},void(c.onerror=function(e){var r=e.target.errorMessage||e.target.webkitErrorMessage||e.target.mozErrorMessage||e.target.msErrorMessage||e.target.error.name;n((0,v.ensureError)(r))})}m.set(e,new Map),t(Object.create(x,{database:{configurable:!0,enumerable:!1,value:i,writable:!1}})),a=!0}},o.onblocked=function(r){a||(r.preventDefault(),n((0,v.createError)("InvalidStateError","Database "+e+" is blocked")),a=!0)}})},y.deleteDatabase=function(e){return new Promise(function(r,t){if(!p.indexedDbRef)return void t((0,v.createError)("NotSupportedError","Your browser doesn't support IndexedDB"));var n=p.indexedDbRef.deleteDatabase(e);n.onsuccess=n.onerror=n.onblocked=function(n){var o="blocked"===n.type?(0,v.createError)("InvalidStateError","Database "+e+" is blocked"):n.target.error;o?t((0,v.ensureError)(o)):r(),"success"!==n.type&&n.preventDefault()}})},y.keyValue=function(e,r){return Object.create(E,{key:{value:e,configurable:!1,writable:!1},value:{value:r,configurable:!1,writable:!1}})},r["default"]=y,e.exports=r["default"]},function(e,r){"use strict";function t(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}function n(e,r){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!r||"object"!=typeof r&&"function"!=typeof r?e:r}function o(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function, not "+typeof r);e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),r&&(Object.setPrototypeOf?Object.setPrototypeOf(e,r):e.__proto__=r)}function a(e){if(Array.isArray(e)){for(var r=0,t=Array(e.length);r<e.length;r++)t[r]=e[r];return t}return Array.from(e)}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},u=function(){function e(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(r,t,n){return t&&e(r.prototype,t),n&&e(r,n),r}}();Object.defineProperty(r,"__esModule",{value:!0});var c=function(e){function r(){return t(this,r),n(this,(r.__proto__||Object.getPrototypeOf(r)).apply(this,arguments))}return o(r,e),u(r,[{key:"spread",value:function(e,r){function t(r){if(Array.isArray(r))return e.apply(void 0,a(r))}return this.then(t,r)}}]),r}(Promise);c.all=function(e){return arguments.length>1||"object"!==("undefined"==typeof e?"undefined":i(e))?Promise.all.apply(Promise,arguments):new c(function(r,t){var n=Array.isArray(e),o=void 0,a=void 0;n?o=e:(a=Object.keys(e),o=a.map(function(r){return e[r]})),Promise.all(o).then(function(e){var t=void 0;t=n?e:e.reduce(function(e,r,t){return e[a[t]]=r,e},{}),r(t)})["catch"](t)})},r["default"]=c,e.exports=r["default"]},function(e,r){"use strict";function t(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var r=16*Math.random()|0,t="x"===e?r:3&r|8;return t.toString(16)})}Object.defineProperty(r,"__esModule",{value:!0}),r["default"]=t,e.exports=r["default"]},function(e,r){"use strict";function t(e,r){var t=new Error(r);return t.name=e,t}function n(e){return e instanceof Error?e:t(e.name,e.message)}Object.defineProperty(r,"__esModule",{value:!0}),r.createError=t,r.ensureError=n},function(e,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var t="undefined"!=typeof window;r.indexedDbRef=t?window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB:indexedDB,r.IDBKeyRangeRef=t?window.IDBKeyRange||window.mozIDBKeyRange||window.webkitIDBKeyRange||window.msIDBKeyRange:IDBKeyRange,r.TRANSACTION_READONLY=t?window.IDBTransaction.READ_ONLY||"readonly":"readonly",r.TRANSACTION_READWRITE=t?window.IDBTransaction.READ_WRITE||"readwrite":"readwrite",r.SORT_ASC=t?window.IDBCursor.NEXT||"next":"next",r.SORT_ASC_UNIQUE=t?window.IDBCursor.NEXT_NO_DUPLICATE||"nextunique":"nextunique",r.SORT_DESC=t?window.IDBCursor.PREV||"prev":"prev",r.SORT_DESC_UNIQUE=t?window.IDBCursor.PREV_NO_DUPLICATE||"prevunique":"prevunique"}])}); | ||
//# sourceMappingURL=sklad.min.js.map |
@@ -710,7 +710,7 @@ /** | ||
abortErr = ex; | ||
} finally { | ||
// there are 2 separate IDBRequests running | ||
// so there's no need to bind listener to success event of any of them | ||
continue; | ||
} | ||
// there are 2 separate IDBRequests running | ||
// so there's no need to bind listener to success event of any of them | ||
continue; | ||
} else { | ||
@@ -821,3 +821,3 @@ try { | ||
if (isSuccess) { | ||
resolve(isMulti ? result : result[objStoreNames[0]]) | ||
resolve(isMulti ? result : result[objStoreNames[0]]); | ||
} else { | ||
@@ -921,3 +921,3 @@ reject(ensureError(err)); | ||
openConnRequest.onsuccess = function (evt) { | ||
openConnRequest.onsuccess = function () { | ||
if (isResolvedOrRejected) { | ||
@@ -924,0 +924,0 @@ return; |
{ | ||
"name": "sklad", | ||
"version": "4.2.0", | ||
"version": "4.2.1-beta.1", | ||
"description": "Promise-based API for IndexedDB", | ||
@@ -9,7 +9,10 @@ "directories": { | ||
"main": "dist/sklad.uncompressed.js", | ||
"jsnext:main": "es2015.js", | ||
"scripts": { | ||
"lint": "./node_modules/.bin/eslint lib/ tests/", | ||
"test": "npm run prepublish && ./node_modules/karma/bin/karma start --single-run", | ||
"prepublish": "npm run release:dev && npm run release:prod", | ||
"prepublish": "npm run release:dev && npm run release:prod && npm run release:es2015", | ||
"release:dev": "NODE_ENV=development ./node_modules/.bin/webpack", | ||
"release:prod": "NODE_ENV=production ./node_modules/.bin/webpack", | ||
"release:es2015": "cp lib/sklad.js es2015.js", | ||
"watch": "IS_DEVELOPMENT_PROCESS=1 ./node_modules/.bin/webpack" | ||
@@ -36,15 +39,19 @@ }, | ||
"devDependencies": { | ||
"babel-core": "^6.9.1", | ||
"babel-loader": "^6.2.4", | ||
"babel-core": "^6.13.2", | ||
"babel-loader": "^6.2.5", | ||
"babel-plugin-add-module-exports": "^0.2.1", | ||
"babel-plugin-transform-es2015-typeof-symbol": "^6.8.0", | ||
"babel-preset-es2015": "^6.9.0", | ||
"babel-preset-es2015": "^6.13.2", | ||
"eslint": "^3.3.1", | ||
"eslint-plugin-jasmine": "^1.8.1", | ||
"jasmine-core": "^2.4.1", | ||
"karma": "^0.13.22", | ||
"karma": "^1.2.0", | ||
"karma-jasmine": "^1.0.2", | ||
"karma-mocha-reporter": "^2.0.3", | ||
"karma-mocha-reporter": "^2.1.0", | ||
"karma-sauce-launcher": "^1.0.0", | ||
"promise-polyfill": "^5.2.1", | ||
"webpack": "^1.13.1" | ||
} | ||
"pre-commit": "^1.1.3", | ||
"promise-polyfill": "^6.0.1", | ||
"webpack": "^1.13.2" | ||
}, | ||
"pre-commit": "lint" | ||
} |
194
README.md
@@ -12,3 +12,3 @@ # Sklad: Promise-based API for IndexedDB | ||
```javascript | ||
sklad.open(dbName, { | ||
const conn = await sklad.open(dbName, { | ||
version: 2, | ||
@@ -27,6 +27,2 @@ migration: { | ||
} | ||
}).then(conn => { | ||
// work with database connection | ||
}).catch(err => { | ||
// handle error | ||
}); | ||
@@ -37,21 +33,21 @@ ``` | ||
```javascript | ||
sklad.open(dbName, options).then(conn => { | ||
// insert one document into store | ||
conn.insert(objStoreName, 'hello world').then(insertedKey => ...) | ||
const conn = await sklad.open(dbName, options); | ||
// insert data into multiple stores inside one transaction | ||
conn.insert({ | ||
users: [ | ||
{email: 'example1@gmail.com', firstname: 'John'}, | ||
{email: 'example2@gmail.com', firstname: 'Jack'}, | ||
{email: 'example3@gmail.com', firstname: 'Peter'}, | ||
], | ||
foo_obj_store: ['truly', 'madly', 'deeply'] | ||
}).then(insertedKeys => { | ||
assert.equal(insertedKeys, { | ||
users: [id1, id2, id3], | ||
foo_obj_store: [id4, id5, id6] | ||
}); | ||
}); | ||
// insert one document into store | ||
const insertedKey = await conn.insert(objStoreName, 'hello world'); | ||
// insert data into multiple stores inside one transaction | ||
const insertedKeys = await conn.insert({ | ||
users: [ | ||
{email: 'example1@gmail.com', firstname: 'John'}, | ||
{email: 'example2@gmail.com', firstname: 'Jack'}, | ||
{email: 'example3@gmail.com', firstname: 'Peter'}, | ||
], | ||
foo_obj_store: ['truly', 'madly', 'deeply'] | ||
}); | ||
assert.equal(insertedKeys, { | ||
users: [id1, id2, id3], | ||
foo_obj_store: [id4, id5, id6] | ||
}); | ||
``` | ||
@@ -61,22 +57,21 @@ | ||
```javascript | ||
sklad.open(dbName, options).then(conn => { | ||
// upsert one document inside store | ||
conn.upsert(objStoreName, {id: 'BMTH', bandMembersCount: 5}).then(upsertedKey => ...) | ||
const conn = await sklad.open(dbName, options); | ||
// upsert data in multiple stores inside one transaction | ||
conn.upsert({ | ||
users: [ | ||
{email: 'example1@gmail.com', firstname: 'John'}, | ||
{email: 'example2@gmail.com', firstname: 'Jack'}, | ||
{email: 'example3@gmail.com', firstname: 'Peter'}, | ||
], | ||
foo_obj_store: ['truly', 'madly', 'deeply'] | ||
})) | ||
.then(upsertedKeys => { | ||
assert.equal(insertedKeys, { | ||
users: [id1, id2, id3], | ||
foo_obj_store: [id4, id5, id6] | ||
}); | ||
}); | ||
// upsert one document inside store | ||
const upsertedKey = await conn.upsert(objStoreName, {id: 'BMTH', bandMembersCount: 5}) | ||
// upsert data in multiple stores inside one transaction | ||
const upsertedKeys = await conn.upsert({ | ||
users: [ | ||
{email: 'example1@gmail.com', firstname: 'John'}, | ||
{email: 'example2@gmail.com', firstname: 'Jack'}, | ||
{email: 'example3@gmail.com', firstname: 'Peter'}, | ||
], | ||
foo_obj_store: ['truly', 'madly', 'deeply'] | ||
}); | ||
assert.equal(insertedKeys, { | ||
users: [id1, id2, id3], | ||
foo_obj_store: [id4, id5, id6] | ||
}); | ||
``` | ||
@@ -86,11 +81,11 @@ | ||
```javascript | ||
sklad.open(dbName, options).then(conn => { | ||
// delete document from the object store | ||
conn.delete(objStoreName, 'key').then(...) | ||
const conn = await sklad.open(dbName, options); | ||
// delete multiple documents from different object stores inside one transaction | ||
conn.delete({ | ||
objStoreName1: ['key_1', 'key_2', 'key_3'], | ||
objStoreName2: ['key1'] | ||
}).then(...); | ||
// delete document from the object store | ||
await conn.delete(objStoreName, 'key'); | ||
// delete multiple documents from different object stores inside one transaction | ||
await conn.delete({ | ||
objStoreName1: ['key_1', 'key_2', 'key_3'], | ||
objStoreName2: ['key1'] | ||
}); | ||
@@ -101,9 +96,9 @@ ``` | ||
```javascript | ||
sklad.open(dbName, options).then(conn => { | ||
// clear everything in one object store | ||
conn.clear(objStoreName).then(...); | ||
const conn = await sklad.open(dbName, options); | ||
// clear everything in multiple object stores | ||
conn.clear([objStoreName1, objStoreName2]).then(...); | ||
}); | ||
// clear everything in one object store | ||
await conn.clear(objStoreName); | ||
// clear everything in multiple object stores | ||
await conn.clear([objStoreName1, objStoreName2]); | ||
``` | ||
@@ -115,31 +110,31 @@ | ||
```javascript | ||
sklad.open(dbName, options).then(conn => { | ||
// get documents from one object store | ||
conn.get(objStoreName, { | ||
index: 'missing_index', // index name, optional | ||
direction: sklad.ASC_UNIQUE, // one of: ASC, ASC_UNIQUE, DESC, DESC_UNIQUE, optional | ||
limit: 4, // optional | ||
offset: 1, // optional | ||
range: IDBKeyRange.only('some_key') // range, instance of IDBKeyRange, optional | ||
}).then(res => { | ||
assert.equal(res, { | ||
[objStoreName]: [ | ||
{key: ..., value: ...}, | ||
{key: ..., value: ...}, | ||
... | ||
] | ||
}); | ||
}); | ||
const conn = await sklad.open(dbName, options); | ||
// get documents from multiple stores in one transaction | ||
conn.get({ | ||
objStoreName1: {}, | ||
objStoreName1: {limit: 1, offset: 1} | ||
}).then(res => { | ||
assert.equal(res, { | ||
objStoreName1: [{key: ..., value: ...}, ...], | ||
objStoreName2: [{key: ..., value: ...}, ...] | ||
}); | ||
}); | ||
// get documents from one object store | ||
const resOneStore = await conn.get(objStoreName, { | ||
index: 'missing_index', // index name, optional | ||
direction: sklad.ASC_UNIQUE, // one of: ASC, ASC_UNIQUE, DESC, DESC_UNIQUE, optional | ||
limit: 4, // optional | ||
offset: 1, // optional | ||
range: IDBKeyRange.only('some_key') // range, instance of IDBKeyRange, optional | ||
}); | ||
assert.equal(resOneStore, { | ||
[objStoreName]: [ | ||
{key: ..., value: ...}, | ||
{key: ..., value: ...}, | ||
... | ||
] | ||
}); | ||
// get documents from multiple stores in one transaction | ||
const resMultipleStores = await conn.get({ | ||
objStoreName1: {}, | ||
objStoreName1: {limit: 1, offset: 1} | ||
}); | ||
assert.equal(resMultipleStores, { | ||
objStoreName1: [{key: ..., value: ...}, ...], | ||
objStoreName2: [{key: ..., value: ...}, ...] | ||
}); | ||
``` | ||
@@ -149,20 +144,20 @@ | ||
```javascript | ||
sklad.open(dbName, options).then(conn => { | ||
// count documents inside one object store | ||
conn.count(objStoreName, { | ||
range: IDBKeyRange.bound(x, y, true, true), // range, instance of IDBKeyRange, optional | ||
index: 'index_name' // index name, optional | ||
}).then(total => ...); | ||
const conn = await sklad.open(dbName, options); | ||
// count documents inside multiple object stores | ||
conn.count({ | ||
objStoreName1: null, | ||
objStoreName2: {index: 'index_name'} | ||
}).then(res => { | ||
assert.equal(res, { | ||
objStoreName1: NUMBER_OF_DOCUMENTS_INSIDE_objStoreName1, | ||
objStoreName2: NUMBER_OF_DOCUMENTS_INSIDE_objStoreName2 | ||
}); | ||
}); | ||
// count documents inside one object store | ||
const total = await conn.count(objStoreName, { | ||
range: IDBKeyRange.bound(x, y, true, true), // range, instance of IDBKeyRange, optional | ||
index: 'index_name' // index name, optional | ||
}); | ||
// count documents inside multiple object stores | ||
const res = await conn.count({ | ||
objStoreName1: null, | ||
objStoreName2: {index: 'index_name'} | ||
}); | ||
assert.equal(res, { | ||
objStoreName1: NUMBER_OF_DOCUMENTS_INSIDE_objStoreName1, | ||
objStoreName2: NUMBER_OF_DOCUMENTS_INSIDE_objStoreName2 | ||
}); | ||
``` | ||
@@ -172,3 +167,4 @@ | ||
```javascript | ||
sklad.open(dbName, options).then(conn => conn.close()); | ||
const conn = await sklad.open(dbName, options); | ||
conn.close(); // it's sync | ||
``` | ||
@@ -178,3 +174,3 @@ | ||
```javascript | ||
sklad.deleteDatabase(dbName).then(...); | ||
await sklad.deleteDatabase(dbName) | ||
``` | ||
@@ -181,0 +177,0 @@ |
@@ -7,3 +7,3 @@ module.exports = { | ||
platform: 'OS X 10.11', | ||
version: '48' | ||
version: '52' | ||
}, | ||
@@ -14,3 +14,3 @@ chrome_stable_win: { | ||
platform: 'Windows 10', | ||
version: '48' | ||
version: '52' | ||
}, | ||
@@ -29,3 +29,3 @@ chrome_stable_linux: { | ||
platform: 'OS X 10.11', | ||
version: '44' | ||
version: '48' | ||
}, | ||
@@ -36,3 +36,3 @@ firefox_stable_win: { | ||
platform: 'Windows 10', | ||
version: '44' | ||
version: '48' | ||
}, | ||
@@ -53,8 +53,10 @@ firefox_stable_linux: { | ||
}, | ||
safari_9_ios: { | ||
base: 'SauceLabs', | ||
browserName: 'iphone', | ||
version: '9' | ||
}, | ||
// SauceLabs has no Safari@9 | ||
// safari_9_ios: { | ||
// base: 'SauceLabs', | ||
// browserName: 'iphone', | ||
// version: '' | ||
// }, | ||
// IE | ||
@@ -85,2 +87,2 @@ ie11_windows_10: { | ||
} | ||
} | ||
}; |
@@ -51,3 +51,3 @@ describe('Count operations', function () { | ||
done(); | ||
});; | ||
}); | ||
}); | ||
@@ -113,4 +113,2 @@ | ||
it('should count records in multiple stores', function (done) { | ||
conn.clear().then() | ||
conn.insert({ | ||
@@ -117,0 +115,0 @@ 'keypath_true__keygen_false_1': [ |
@@ -94,3 +94,2 @@ describe('Get operations', function () { | ||
var recordKey = Object.keys(records)[0]; | ||
expect(records).toEqual([{ | ||
@@ -250,3 +249,3 @@ key: 1, | ||
return record.key; | ||
})).toEqual(['Alex', 'Anton', 'Anton', 'Denis']) | ||
})).toEqual(['Alex', 'Anton', 'Anton', 'Denis']); | ||
@@ -253,0 +252,0 @@ done(); |
@@ -46,3 +46,3 @@ describe('API interface tests', function () { | ||
done(); | ||
}).catch(function (err) { | ||
}).catch(function () { | ||
done.fail('Open returns rejected promise'); | ||
@@ -58,3 +58,3 @@ }); | ||
migration: { | ||
'1': function (database) { | ||
'1': function () { | ||
// this migration part shoud not run at all | ||
@@ -83,3 +83,3 @@ // because previous spec has already created 1st version of databse | ||
done(); | ||
}).catch(function (err) { | ||
}).catch(function () { | ||
done.fail('Open returns rejected promise'); | ||
@@ -86,0 +86,0 @@ }); |
@@ -8,3 +8,3 @@ describe('Migration scripts context tests', function () { | ||
done(); | ||
}).catch(function (connection) { | ||
}).catch(function () { | ||
done.fail('Open connection op failed'); | ||
@@ -29,7 +29,7 @@ }); | ||
var objectStore = this.transaction.objectStore('keypath_true__keygen_false_0'); | ||
objectStore.createIndex("foo", "bar"); | ||
objectStore.createIndex('foo', 'bar'); | ||
expect(objectStore.indexNames.contains("sort_login")).toBe(true); | ||
expect(objectStore.indexNames.contains("sort_name")).toBe(true); | ||
expect(objectStore.indexNames.contains("foo")).toBe(true); | ||
expect(objectStore.indexNames.contains('sort_login')).toBe(true); | ||
expect(objectStore.indexNames.contains('sort_name')).toBe(true); | ||
expect(objectStore.indexNames.contains('foo')).toBe(true); | ||
} | ||
@@ -36,0 +36,0 @@ } |
@@ -19,3 +19,3 @@ describe('Basic open tests', function () { | ||
migration: { | ||
'1': function (database) { | ||
'1': function () { | ||
// this migration part should not run at all | ||
@@ -22,0 +22,0 @@ // because previous spec has already created 1st version of databse |
@@ -0,1 +1,2 @@ | ||
/* eslint-disable no-unused-vars */ | ||
// IE11 is sometimes waiting too much for 'success' event to fire | ||
@@ -16,6 +17,9 @@ // Microsoft Edge is sometimes waiting too much for 'onupgradeneeded' event to fire | ||
'1': function (database) { | ||
var objStore; | ||
var j; | ||
// @link https://developer.mozilla.org/en-US/docs/Web/API/IDBDatabase.createObjectStore | ||
// @link https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore.createIndex | ||
for (var i = 0; i < 3; i++) { | ||
var objStore = database.createObjectStore('keypath_true__keygen_false_' + i, {keyPath: 'some_unique_key'}); | ||
for (j = 0; j < 3; j++) { | ||
objStore = database.createObjectStore('keypath_true__keygen_false_' + j, {keyPath: 'some_unique_key'}); | ||
objStore.createIndex('sort_login', 'login', {unique: true}); | ||
@@ -25,4 +29,4 @@ objStore.createIndex('sort_name', 'name'); | ||
for (var i = 0; i < 3; i++) { | ||
var objStore = database.createObjectStore('keypath_false__keygen_true_' + i, {autoIncrement: true}); | ||
for (j = 0; j < 3; j++) { | ||
objStore = database.createObjectStore('keypath_false__keygen_true_' + j, {autoIncrement: true}); | ||
objStore.createIndex('some_index', 'some_field'); | ||
@@ -32,8 +36,8 @@ objStore.createIndex('some_multi_index', 'some_array_containing_field', {multiEntry: true}); | ||
for (var i = 0; i < 3; i++) { | ||
var objStore = database.createObjectStore('keypath_true__keygen_true_' + i, {keyPath: 'name', autoIncrement: true}); | ||
for (j = 0; j < 3; j++) { | ||
objStore = database.createObjectStore('keypath_true__keygen_true_' + j, {keyPath: 'name', autoIncrement: true}); | ||
} | ||
for (var i = 0; i < 3; i++) { | ||
var objStore = database.createObjectStore('keypath_false__keygen_false_' + i); | ||
for (j = 0; j < 3; j++) { | ||
objStore = database.createObjectStore('keypath_false__keygen_false_' + j); | ||
objStore.createIndex('sort_field_foo', 'foo'); | ||
@@ -232,1 +236,2 @@ } | ||
var is_ie_edge = navigator.userAgent.indexOf('Edge') !== -1; | ||
/* eslint-enable no-unused-vars */ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
31
4242
0
437513
15
1
227