Initialisation
Added the packages and files for the backend server
This commit is contained in:
61
node_modules/graphql/execution/mapAsyncIterator.mjs
generated
vendored
Normal file
61
node_modules/graphql/execution/mapAsyncIterator.mjs
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/**
|
||||
* Given an AsyncIterable and a callback function, return an AsyncIterator
|
||||
* which produces values mapped via calling the callback function.
|
||||
*/
|
||||
export function mapAsyncIterator(iterable, callback) {
|
||||
const iterator = iterable[Symbol.asyncIterator]();
|
||||
|
||||
async function mapResult(result) {
|
||||
if (result.done) {
|
||||
return result;
|
||||
}
|
||||
|
||||
try {
|
||||
return {
|
||||
value: await callback(result.value),
|
||||
done: false,
|
||||
};
|
||||
} catch (error) {
|
||||
/* c8 ignore start */
|
||||
// FIXME: add test case
|
||||
if (typeof iterator.return === 'function') {
|
||||
try {
|
||||
await iterator.return();
|
||||
} catch (_e) {
|
||||
/* ignore error */
|
||||
}
|
||||
}
|
||||
|
||||
throw error;
|
||||
/* c8 ignore stop */
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
async next() {
|
||||
return mapResult(await iterator.next());
|
||||
},
|
||||
|
||||
async return() {
|
||||
// If iterator.return() does not exist, then type R must be undefined.
|
||||
return typeof iterator.return === 'function'
|
||||
? mapResult(await iterator.return())
|
||||
: {
|
||||
value: undefined,
|
||||
done: true,
|
||||
};
|
||||
},
|
||||
|
||||
async throw(error) {
|
||||
if (typeof iterator.throw === 'function') {
|
||||
return mapResult(await iterator.throw(error));
|
||||
}
|
||||
|
||||
throw error;
|
||||
},
|
||||
|
||||
[Symbol.asyncIterator]() {
|
||||
return this;
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user