summaryrefslogtreecommitdiff
path: root/frontend-old/node_modules/idb/build/async-iterators.cjs
diff options
context:
space:
mode:
Diffstat (limited to 'frontend-old/node_modules/idb/build/async-iterators.cjs')
-rw-r--r--frontend-old/node_modules/idb/build/async-iterators.cjs57
1 files changed, 0 insertions, 57 deletions
diff --git a/frontend-old/node_modules/idb/build/async-iterators.cjs b/frontend-old/node_modules/idb/build/async-iterators.cjs
deleted file mode 100644
index 33a1f1a..0000000
--- a/frontend-old/node_modules/idb/build/async-iterators.cjs
+++ /dev/null
@@ -1,57 +0,0 @@
-'use strict';
-
-var wrapIdbValue = require('./wrap-idb-value.cjs');
-
-const advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];
-const methodMap = {};
-const advanceResults = new WeakMap();
-const ittrProxiedCursorToOriginalProxy = new WeakMap();
-const cursorIteratorTraps = {
- get(target, prop) {
- if (!advanceMethodProps.includes(prop))
- return target[prop];
- let cachedFunc = methodMap[prop];
- if (!cachedFunc) {
- cachedFunc = methodMap[prop] = function (...args) {
- advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));
- };
- }
- return cachedFunc;
- },
-};
-async function* iterate(...args) {
- // tslint:disable-next-line:no-this-assignment
- let cursor = this;
- if (!(cursor instanceof IDBCursor)) {
- cursor = await cursor.openCursor(...args);
- }
- if (!cursor)
- return;
- cursor = cursor;
- const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);
- ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);
- // Map this double-proxy back to the original, so other cursor methods work.
- wrapIdbValue.reverseTransformCache.set(proxiedCursor, wrapIdbValue.unwrap(cursor));
- while (cursor) {
- yield proxiedCursor;
- // If one of the advancing methods was not called, call continue().
- cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());
- advanceResults.delete(proxiedCursor);
- }
-}
-function isIteratorProp(target, prop) {
- return ((prop === Symbol.asyncIterator &&
- wrapIdbValue.instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor])) ||
- (prop === 'iterate' && wrapIdbValue.instanceOfAny(target, [IDBIndex, IDBObjectStore])));
-}
-wrapIdbValue.replaceTraps((oldTraps) => ({
- ...oldTraps,
- get(target, prop, receiver) {
- if (isIteratorProp(target, prop))
- return iterate;
- return oldTraps.get(target, prop, receiver);
- },
- has(target, prop) {
- return isIteratorProp(target, prop) || oldTraps.has(target, prop);
- },
-}));