@workablehr/idb
Advanced tools
Comparing version 0.0.2 to 0.0.3
284
dist/idb.js
@@ -1,1 +0,283 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@workablehr/idb"]=t():e["@workablehr/idb"]=t()}(window,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=0)}([function(e,t,r){"use strict";r.r(t);class n{constructor(e="keyval-store",t="keyval"){this.storeName=t,this._dbp=new Promise((r,n)=>{const o=indexedDB.open(e,1);o.onerror=()=>n(o.error),o.onsuccess=()=>r(o.result),o.onupgradeneeded=()=>{o.result.createObjectStore(t)}})}_withIDBStore(e,t){return this._dbp.then(r=>new Promise((n,o)=>{const u=r.transaction(this.storeName,e);u.oncomplete=()=>n(),u.onabort=u.onerror=()=>o(u.error),t(u.objectStore(this.storeName))}))}}let o;function u(){return o||(o=new n),o}function i(e,t=u()){let r;return t._withIDBStore("readonly",t=>{r=t.get(e)}).then(()=>r.result)}t.default=function(e){if(!e)throw new Error("Please pass a name for the idb store");var t=new n(e,"".concat(e,"-cache")),r=function(e,r){return function(e,t,r=u()){return r._withIDBStore("readwrite",r=>{r.put(t,e)})}(e,function(e){return{value:e,timestamp:Date.now()}}(r),t)};return{store:t,set:r,get:function(e){var n,o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=o.fetch,c=o.maxAge,a=void 0===c?86400:c,f=i(e,t).then((function(t){var o=1e3*a;return t&&t.timestamp+o>Date.now()?t.value:(n=u()).then((function(t){return r(e,t),t}))}));return f.abort=function(){return n&&n.abort()},f},clear:function(){return function(e=u()){return e._withIDBStore("readwrite",e=>{e.clear()})}(t)},del:function(e){return function(e,t=u()){return t._withIDBStore("readwrite",t=>{t.delete(e)})}(e,t)}}}}])})); | ||
module.exports = | ||
/******/ (function(modules) { // webpackBootstrap | ||
/******/ // The module cache | ||
/******/ var installedModules = {}; | ||
/******/ | ||
/******/ // The require function | ||
/******/ function __webpack_require__(moduleId) { | ||
/******/ | ||
/******/ // Check if module is in cache | ||
/******/ if(installedModules[moduleId]) { | ||
/******/ return installedModules[moduleId].exports; | ||
/******/ } | ||
/******/ // Create a new module (and put it into the cache) | ||
/******/ var module = installedModules[moduleId] = { | ||
/******/ i: moduleId, | ||
/******/ l: false, | ||
/******/ exports: {} | ||
/******/ }; | ||
/******/ | ||
/******/ // Execute the module function | ||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); | ||
/******/ | ||
/******/ // Flag the module as loaded | ||
/******/ module.l = true; | ||
/******/ | ||
/******/ // Return the exports of the module | ||
/******/ return module.exports; | ||
/******/ } | ||
/******/ | ||
/******/ | ||
/******/ // expose the modules object (__webpack_modules__) | ||
/******/ __webpack_require__.m = modules; | ||
/******/ | ||
/******/ // expose the module cache | ||
/******/ __webpack_require__.c = installedModules; | ||
/******/ | ||
/******/ // define getter function for harmony exports | ||
/******/ __webpack_require__.d = function(exports, name, getter) { | ||
/******/ if(!__webpack_require__.o(exports, name)) { | ||
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); | ||
/******/ } | ||
/******/ }; | ||
/******/ | ||
/******/ // define __esModule on exports | ||
/******/ __webpack_require__.r = function(exports) { | ||
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { | ||
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); | ||
/******/ } | ||
/******/ Object.defineProperty(exports, '__esModule', { value: true }); | ||
/******/ }; | ||
/******/ | ||
/******/ // create a fake namespace object | ||
/******/ // mode & 1: value is a module id, require it | ||
/******/ // mode & 2: merge all properties of value into the ns | ||
/******/ // mode & 4: return value when already ns object | ||
/******/ // mode & 8|1: behave like require | ||
/******/ __webpack_require__.t = function(value, mode) { | ||
/******/ if(mode & 1) value = __webpack_require__(value); | ||
/******/ if(mode & 8) return value; | ||
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; | ||
/******/ var ns = Object.create(null); | ||
/******/ __webpack_require__.r(ns); | ||
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); | ||
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); | ||
/******/ return ns; | ||
/******/ }; | ||
/******/ | ||
/******/ // getDefaultExport function for compatibility with non-harmony modules | ||
/******/ __webpack_require__.n = function(module) { | ||
/******/ var getter = module && module.__esModule ? | ||
/******/ function getDefault() { return module['default']; } : | ||
/******/ function getModuleExports() { return module; }; | ||
/******/ __webpack_require__.d(getter, 'a', getter); | ||
/******/ return getter; | ||
/******/ }; | ||
/******/ | ||
/******/ // Object.prototype.hasOwnProperty.call | ||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; | ||
/******/ | ||
/******/ // __webpack_public_path__ | ||
/******/ __webpack_require__.p = ""; | ||
/******/ | ||
/******/ | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 0); | ||
/******/ }) | ||
/************************************************************************/ | ||
/******/ ([ | ||
/* 0 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
// ESM COMPAT FLAG | ||
__webpack_require__.r(__webpack_exports__); | ||
// CONCATENATED MODULE: ./node_modules/idb-keyval/dist/idb-keyval.mjs | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } | ||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } | ||
var Store = /*#__PURE__*/function () { | ||
function Store() { | ||
var dbName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'keyval-store'; | ||
var storeName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'keyval'; | ||
_classCallCheck(this, Store); | ||
this.storeName = storeName; | ||
this._dbp = new Promise(function (resolve, reject) { | ||
var openreq = indexedDB.open(dbName, 1); | ||
openreq.onerror = function () { | ||
return reject(openreq.error); | ||
}; | ||
openreq.onsuccess = function () { | ||
return resolve(openreq.result); | ||
}; // First time setup: create an empty object store | ||
openreq.onupgradeneeded = function () { | ||
openreq.result.createObjectStore(storeName); | ||
}; | ||
}); | ||
} | ||
_createClass(Store, [{ | ||
key: "_withIDBStore", | ||
value: function _withIDBStore(type, callback) { | ||
var _this = this; | ||
return this._dbp.then(function (db) { | ||
return new Promise(function (resolve, reject) { | ||
var transaction = db.transaction(_this.storeName, type); | ||
transaction.oncomplete = function () { | ||
return resolve(); | ||
}; | ||
transaction.onabort = transaction.onerror = function () { | ||
return reject(transaction.error); | ||
}; | ||
callback(transaction.objectStore(_this.storeName)); | ||
}); | ||
}); | ||
} | ||
}]); | ||
return Store; | ||
}(); | ||
var idb_keyval_store; | ||
function getDefaultStore() { | ||
if (!idb_keyval_store) idb_keyval_store = new Store(); | ||
return idb_keyval_store; | ||
} | ||
function idb_keyval_get(key) { | ||
var store = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getDefaultStore(); | ||
var req; | ||
return store._withIDBStore('readonly', function (store) { | ||
req = store.get(key); | ||
}).then(function () { | ||
return req.result; | ||
}); | ||
} | ||
function idb_keyval_set(key, value) { | ||
var store = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getDefaultStore(); | ||
return store._withIDBStore('readwrite', function (store) { | ||
store.put(value, key); | ||
}); | ||
} | ||
function idb_keyval_del(key) { | ||
var store = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getDefaultStore(); | ||
return store._withIDBStore('readwrite', function (store) { | ||
store.delete(key); | ||
}); | ||
} | ||
function idb_keyval_clear() { | ||
var store = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getDefaultStore(); | ||
return store._withIDBStore('readwrite', function (store) { | ||
store.clear(); | ||
}); | ||
} | ||
function keys() { | ||
var store = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getDefaultStore(); | ||
var keys = []; | ||
return store._withIDBStore('readonly', function (store) { | ||
// This would be store.getAllKeys(), but it isn't supported by Edge or Safari. | ||
// And openKeyCursor isn't supported by Safari. | ||
(store.openKeyCursor || store.openCursor).call(store).onsuccess = function () { | ||
if (!this.result) return; | ||
keys.push(this.result.key); | ||
this.result.continue(); | ||
}; | ||
}).then(function () { | ||
return keys; | ||
}); | ||
} | ||
// CONCATENATED MODULE: ./src/index.js | ||
var defaultCacheAge = 24 * 60 * 60; | ||
var wrap = function wrap(value) { | ||
return { | ||
value: value, | ||
timestamp: Date.now() | ||
}; | ||
}; | ||
/** | ||
* @description A simple cache mechanisms that is based on IndexDB. | ||
* @example | ||
* const { store, set, get, clear, del } = makeIDB("workable-store"); | ||
* | ||
* idb.get("myKey", { fetch: performFetch, maxAge: 100 }); | ||
* // if 'myKey' does not exists, it fetches and stores the result for 100 seconds | ||
*/ | ||
/* harmony default export */ var src = __webpack_exports__["default"] = (function (name) { | ||
if (!name) { | ||
throw new Error("Please pass a name for the idb store"); | ||
} | ||
var store = new Store(name, "".concat(name, "-cache")); | ||
var set = function set(key, value) { | ||
return idb_keyval_set(key, wrap(value), store); | ||
}; | ||
var get = function get(key) { | ||
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, | ||
fetch = _ref.fetch, | ||
_ref$maxAge = _ref.maxAge, | ||
maxAge = _ref$maxAge === void 0 ? defaultCacheAge : _ref$maxAge; | ||
var fetchPromise; | ||
var getPromise = idb_keyval_get(key, store).then(function (datum) { | ||
var maxAgeInMs = maxAge * 1000; | ||
if (datum && datum.timestamp + maxAgeInMs > Date.now()) return datum.value; | ||
fetchPromise = fetch(); | ||
return fetchPromise.then(function (value) { | ||
set(key, value); | ||
return value; | ||
}); | ||
}); | ||
getPromise.abort = function () { | ||
return fetchPromise && fetchPromise.abort(); | ||
}; | ||
return getPromise; | ||
}; | ||
var clear = function clear() { | ||
return idb_keyval_clear(store); | ||
}; | ||
var del = function del(key) { | ||
return idb_keyval_del(key, store); | ||
}; | ||
return { | ||
store: store, | ||
set: set, | ||
get: get, | ||
clear: clear, | ||
del: del | ||
}; | ||
}); | ||
/***/ }) | ||
/******/ ]); |
@@ -5,5 +5,4 @@ { | ||
"license": "UNLICENSED", | ||
"version": "0.0.2", | ||
"main": "lib/index.js", | ||
"module": "es/index.js", | ||
"version": "0.0.3", | ||
"main": "dist/idb.js", | ||
"keywords": [ | ||
@@ -17,5 +16,3 @@ "json:api", | ||
"dist", | ||
"lib", | ||
"src", | ||
"es" | ||
"src" | ||
], | ||
@@ -34,6 +31,3 @@ "sideEffects": false, | ||
"clean": "rimraf lib dist es coverage", | ||
"build:commonjs": "BABEL_ENV=commonjs babel src --out-dir lib", | ||
"build:es": "babel src --out-dir es", | ||
"build:umd": "webpack", | ||
"build": "yarn build:commonjs && yarn build:es && yarn build:umd", | ||
"build": "webpack", | ||
"test": "jest --config ./jest/config.js", | ||
@@ -44,12 +38,14 @@ "prepublishOnly": "yarn clean && yarn build", | ||
}, | ||
"resolutions": { | ||
"babel-core": "7.0.0-bridge.0" | ||
}, | ||
"dependencies": { | ||
"@babel/runtime": "7.8.3", | ||
"idb-keyval": "3.2.0" | ||
}, | ||
"devDependencies": { | ||
"@babel/cli": "7.8.3", | ||
"@babel/core": "7.8.3", | ||
"@babel/plugin-transform-modules-commonjs": "7.8.3", | ||
"@babel/plugin-transform-runtime": "7.8.3", | ||
"@babel/preset-env": "7.8.3", | ||
"@babel/cli": "7.8.4", | ||
"@babel/core": "7.8.6", | ||
"@babel/plugin-transform-arrow-functions": "^7.8.3", | ||
"@babel/preset-env": "7.8.6", | ||
"babel-core": "7.0.0-bridge.0", | ||
"babel-jest": "25.1.0", | ||
@@ -61,5 +57,5 @@ "babel-loader": "8.0.6", | ||
"jest": "25.1.0", | ||
"webpack": "4.41.5", | ||
"webpack-cli": "3.3.10" | ||
"webpack": "4.42.0", | ||
"webpack-cli": "3.3.11" | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
1
18885
6
421
- Removed@babel/runtime@7.8.3
- Removed@babel/runtime@7.8.3(transitive)
- Removedregenerator-runtime@0.13.11(transitive)