@graphitation/supermassive 3.9.0 → 3.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +10 -2
- package/lib/__testUtils__/execute.js +77 -121
- package/lib/__testUtils__/execute.js.map +1 -1
- package/lib/__testUtils__/execute.mjs +77 -124
- package/lib/__testUtils__/execute.mjs.map +1 -1
- package/lib/benchmarks/index.js +41 -63
- package/lib/benchmarks/index.js.map +1 -1
- package/lib/benchmarks/index.mjs +152 -184
- package/lib/benchmarks/index.mjs.map +1 -1
- package/lib/benchmarks/nice-benchmark.js +3 -23
- package/lib/benchmarks/nice-benchmark.js.map +1 -1
- package/lib/benchmarks/nice-benchmark.mjs +3 -24
- package/lib/benchmarks/nice-benchmark.mjs.map +1 -1
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.js +78 -68
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.js.map +1 -1
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs +78 -71
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs.map +1 -1
- package/lib/benchmarks/swapi-schema/resolvers.js +31 -71
- package/lib/benchmarks/swapi-schema/resolvers.js.map +1 -1
- package/lib/benchmarks/swapi-schema/resolvers.mjs +31 -74
- package/lib/benchmarks/swapi-schema/resolvers.mjs.map +1 -1
- package/lib/executeWithoutSchema.js +199 -248
- package/lib/executeWithoutSchema.js.map +1 -1
- package/lib/executeWithoutSchema.mjs +199 -251
- package/lib/executeWithoutSchema.mjs.map +1 -1
- package/lib/legacyAST/addTypesToRequestDocument.js +6 -21
- package/lib/legacyAST/addTypesToRequestDocument.js.map +1 -1
- package/lib/legacyAST/addTypesToRequestDocument.mjs +6 -24
- package/lib/legacyAST/addTypesToRequestDocument.mjs.map +1 -1
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +9 -23
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +1 -1
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +9 -26
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +1 -1
- package/lib/utilities/mapAsyncIterator.js +19 -47
- package/lib/utilities/mapAsyncIterator.js.map +1 -1
- package/lib/utilities/mapAsyncIterator.mjs +19 -48
- package/lib/utilities/mapAsyncIterator.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,23 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
|
|
21
1
|
// src/utilities/addMinimalViableSchemaToRequestDocument.ts
|
|
22
2
|
import {
|
|
23
3
|
Kind
|
|
@@ -28,7 +8,8 @@ import {
|
|
|
28
8
|
} from "../schema/directives.mjs";
|
|
29
9
|
import { extractMinimalViableSchemaForRequestDocument } from "./extractMinimalViableSchemaForRequestDocument.mjs";
|
|
30
10
|
function addMinimalViableSchemaToRequestDocument(schema, document, options) {
|
|
31
|
-
return
|
|
11
|
+
return {
|
|
12
|
+
...document,
|
|
32
13
|
definitions: document.definitions.map(
|
|
33
14
|
(node) => node.kind === Kind.OPERATION_DEFINITION || node.kind === Kind.FRAGMENT_DEFINITION ? addMinimalViableSchemaToExecutableDefinitionNode(
|
|
34
15
|
schema,
|
|
@@ -36,7 +17,7 @@ function addMinimalViableSchemaToRequestDocument(schema, document, options) {
|
|
|
36
17
|
options
|
|
37
18
|
) : node
|
|
38
19
|
)
|
|
39
|
-
}
|
|
20
|
+
};
|
|
40
21
|
}
|
|
41
22
|
function addMinimalViableSchemaToExecutableDefinitionNode(schema, node, options) {
|
|
42
23
|
const { definitions } = extractMinimalViableSchemaForRequestDocument(schema, {
|
|
@@ -49,9 +30,10 @@ function addToExecutableDefinitionNodeProperty(schemaFragment, node) {
|
|
|
49
30
|
if (node.__defs) {
|
|
50
31
|
return node;
|
|
51
32
|
}
|
|
52
|
-
return
|
|
33
|
+
return {
|
|
34
|
+
...node,
|
|
53
35
|
__defs: schemaFragment
|
|
54
|
-
}
|
|
36
|
+
};
|
|
55
37
|
}
|
|
56
38
|
function addToExecutableDefinitionNodeDirective(schemaFragment, node) {
|
|
57
39
|
var _a, _b;
|
|
@@ -68,9 +50,10 @@ function addToExecutableDefinitionNodeDirective(schemaFragment, node) {
|
|
|
68
50
|
)
|
|
69
51
|
]
|
|
70
52
|
};
|
|
71
|
-
return
|
|
53
|
+
return {
|
|
54
|
+
...node,
|
|
72
55
|
directives: [...(_b = node.directives) != null ? _b : [], directive]
|
|
73
|
-
}
|
|
56
|
+
};
|
|
74
57
|
}
|
|
75
58
|
function getSchemaDefinitions(node) {
|
|
76
59
|
var _a, _b;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/addMinimalViableSchemaToRequestDocument.ts"],
|
|
4
4
|
"sourcesContent": ["import {\n ArgumentNode,\n DirectiveNode,\n DocumentNode,\n ExecutableDefinitionNode,\n GraphQLSchema,\n Kind,\n NameNode,\n} from \"graphql\";\nimport {\n SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,\n SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n} from \"../schema/directives\";\nimport { extractMinimalViableSchemaForRequestDocument } from \"./extractMinimalViableSchemaForRequestDocument\";\nimport { SchemaDefinitions } from \"../schema/definition\";\n\nexport type AddMinimalViableSchemaToRequestDocumentOptions = {\n addTo?: \"DIRECTIVE\" | \"PROPERTY\";\n};\n\nexport function addMinimalViableSchemaToRequestDocument(\n schema: GraphQLSchema,\n document: DocumentNode,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n): DocumentNode {\n return {\n ...document,\n definitions: document.definitions.map((node) =>\n node.kind === Kind.OPERATION_DEFINITION ||\n node.kind === Kind.FRAGMENT_DEFINITION\n ? addMinimalViableSchemaToExecutableDefinitionNode(\n schema,\n node,\n options,\n )\n : node,\n ),\n };\n}\n\nexport function addMinimalViableSchemaToExecutableDefinitionNode(\n schema: GraphQLSchema,\n node: ExecutableDefinitionNode,\n options?: AddMinimalViableSchemaToRequestDocumentOptions,\n) {\n const { definitions } = extractMinimalViableSchemaForRequestDocument(schema, {\n kind: Kind.DOCUMENT,\n definitions: [node],\n });\n\n return options?.addTo === \"PROPERTY\"\n ? addToExecutableDefinitionNodeProperty(definitions, node)\n : addToExecutableDefinitionNodeDirective(definitions, node);\n}\n\nexport type ExecutableDefinitionNodeWithInlinedSchema =\n ExecutableDefinitionNode & {\n __defs?: SchemaDefinitions;\n };\n\n/**\n * Adds directive with minimal viable schema to every individual executable node (operation, fragment)\n */\nfunction addToExecutableDefinitionNodeProperty<\n T extends ExecutableDefinitionNodeWithInlinedSchema,\n>(schemaFragment: SchemaDefinitions, node: T): T {\n if (node.__defs) {\n return node;\n }\n return {\n ...node,\n __defs: schemaFragment,\n };\n}\n\n/**\n * Adds directive with minimal viable schema to every individual executable node (operation, fragment)\n */\nfunction addToExecutableDefinitionNodeDirective<\n T extends ExecutableDefinitionNode,\n>(schemaFragment: SchemaDefinitions, node: T): T {\n if (node.directives?.some((directive) => directive.name.value === \"schema\")) {\n return node;\n }\n const directive: DirectiveNode = {\n kind: Kind.DIRECTIVE,\n name: nameNode(SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME),\n arguments: [\n argNode(\n SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,\n schemaFragment,\n ),\n ],\n };\n return {\n ...node,\n directives: [...(node.directives ?? []), directive],\n };\n}\n\nexport function getSchemaDefinitions(\n node: ExecutableDefinitionNodeWithInlinedSchema,\n): SchemaDefinitions | undefined {\n if (node.__defs) {\n return node.__defs;\n }\n const directive = node.directives?.find(\n (directive) => directive.name.value === SUPERMASSIVE_SCHEMA_DIRECTIVE_NAME,\n );\n const arg = directive?.arguments?.find(\n (arg) =>\n arg.name.value ===\n SUPERMASSIVE_SCHEMA_DIRECTIVE_DEFINITIONS_ARGUMENT_NAME,\n );\n if (arg?.value.kind === Kind.STRING) {\n return JSON.parse(arg.value.value);\n }\n return undefined;\n}\n\nfunction nameNode(name: string): NameNode {\n return { kind: Kind.NAME, value: name };\n}\n\nfunction argNode(name: string, value: unknown): ArgumentNode {\n return {\n kind: Kind.ARGUMENT,\n name: nameNode(name),\n value: { kind: Kind.STRING, value: JSON.stringify(value) },\n };\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAAA;AAAA,EAME;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP,SAAS,oDAAoD;AAOtD,SAAS,wCACd,QACA,UACA,SACc;AACd,SAAO;AAAA,IACL,GAAG;AAAA,IACH,aAAa,SAAS,YAAY;AAAA,MAAI,CAAC,SACrC,KAAK,SAAS,KAAK,wBACnB,KAAK,SAAS,KAAK,sBACf;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,MACF,IACA;AAAA,IACN;AAAA,EACF;AACF;AAEO,SAAS,iDACd,QACA,MACA,SACA;AACA,QAAM,EAAE,YAAY,IAAI,6CAA6C,QAAQ;AAAA,IAC3E,MAAM,KAAK;AAAA,IACX,aAAa,CAAC,IAAI;AAAA,EACpB,CAAC;AAED,UAAO,mCAAS,WAAU,aACtB,sCAAsC,aAAa,IAAI,IACvD,uCAAuC,aAAa,IAAI;AAC9D;AAUA,SAAS,sCAEP,gBAAmC,MAAY;AAC/C,MAAI,KAAK,QAAQ;AACf,WAAO;AAAA,EACT;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,QAAQ;AAAA,EACV;AACF;AAKA,SAAS,uCAEP,gBAAmC,MAAY;AAhFjD;AAiFE,OAAI,UAAK,eAAL,mBAAiB,KAAK,CAACA,eAAcA,WAAU,KAAK,UAAU,WAAW;AAC3E,WAAO;AAAA,EACT;AACA,QAAM,YAA2B;AAAA,IAC/B,MAAM,KAAK;AAAA,IACX,MAAM,SAAS,kCAAkC;AAAA,IACjD,WAAW;AAAA,MACT;AAAA,QACE;AAAA,QACA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,YAAY,CAAC,IAAI,UAAK,eAAL,YAAmB,CAAC,GAAI,SAAS;AAAA,EACpD;AACF;AAEO,SAAS,qBACd,MAC+B;AAtGjC;AAuGE,MAAI,KAAK,QAAQ;AACf,WAAO,KAAK;AAAA,EACd;AACA,QAAM,aAAY,UAAK,eAAL,mBAAiB;AAAA,IACjC,CAACA,eAAcA,WAAU,KAAK,UAAU;AAAA;AAE1C,QAAM,OAAM,4CAAW,cAAX,mBAAsB;AAAA,IAChC,CAACC,SACCA,KAAI,KAAK,UACT;AAAA;AAEJ,OAAI,2BAAK,MAAM,UAAS,KAAK,QAAQ;AACnC,WAAO,KAAK,MAAM,IAAI,MAAM,KAAK;AAAA,EACnC;AACA,SAAO;AACT;AAEA,SAAS,SAAS,MAAwB;AACxC,SAAO,EAAE,MAAM,KAAK,MAAM,OAAO,KAAK;AACxC;AAEA,SAAS,QAAQ,MAAc,OAA8B;AAC3D,SAAO;AAAA,IACL,MAAM,KAAK;AAAA,IACX,MAAM,SAAS,IAAI;AAAA,IACnB,OAAO,EAAE,MAAM,KAAK,QAAQ,OAAO,KAAK,UAAU,KAAK,EAAE;AAAA,EAC3D;AACF;",
|
|
6
6
|
"names": ["directive", "arg"]
|
|
7
7
|
}
|
|
@@ -16,26 +16,6 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var __async = (__this, __arguments, generator) => {
|
|
20
|
-
return new Promise((resolve, reject) => {
|
|
21
|
-
var fulfilled = (value) => {
|
|
22
|
-
try {
|
|
23
|
-
step(generator.next(value));
|
|
24
|
-
} catch (e) {
|
|
25
|
-
reject(e);
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
var rejected = (value) => {
|
|
29
|
-
try {
|
|
30
|
-
step(generator.throw(value));
|
|
31
|
-
} catch (e) {
|
|
32
|
-
reject(e);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
36
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
19
|
var mapAsyncIterator_exports = {};
|
|
40
20
|
__export(mapAsyncIterator_exports, {
|
|
41
21
|
mapAsyncIterator: () => mapAsyncIterator
|
|
@@ -43,39 +23,31 @@ __export(mapAsyncIterator_exports, {
|
|
|
43
23
|
module.exports = __toCommonJS(mapAsyncIterator_exports);
|
|
44
24
|
function mapAsyncIterator(iterable, callback) {
|
|
45
25
|
const iterator = iterable[Symbol.asyncIterator]();
|
|
46
|
-
function mapResult(result) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
} catch (_e) {
|
|
58
|
-
}
|
|
26
|
+
async function mapResult(result) {
|
|
27
|
+
if (result.done) {
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
return { value: await callback(result.value), done: false };
|
|
32
|
+
} catch (error) {
|
|
33
|
+
if (typeof iterator.return === "function") {
|
|
34
|
+
try {
|
|
35
|
+
await iterator.return();
|
|
36
|
+
} catch (_e) {
|
|
59
37
|
}
|
|
60
|
-
throw error;
|
|
61
38
|
}
|
|
62
|
-
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
63
41
|
}
|
|
64
42
|
return {
|
|
65
|
-
next() {
|
|
66
|
-
return
|
|
67
|
-
return mapResult(yield iterator.next());
|
|
68
|
-
});
|
|
43
|
+
async next() {
|
|
44
|
+
return mapResult(await iterator.next());
|
|
69
45
|
},
|
|
70
|
-
return() {
|
|
71
|
-
return
|
|
72
|
-
return typeof iterator.return === "function" ? mapResult(yield iterator.return()) : { value: void 0, done: true };
|
|
73
|
-
});
|
|
46
|
+
async return() {
|
|
47
|
+
return typeof iterator.return === "function" ? mapResult(await iterator.return()) : { value: void 0, done: true };
|
|
74
48
|
},
|
|
75
|
-
throw(error) {
|
|
76
|
-
return
|
|
77
|
-
return typeof iterator.throw === "function" ? mapResult(yield iterator.throw(error)) : Promise.reject(error);
|
|
78
|
-
});
|
|
49
|
+
async throw(error) {
|
|
50
|
+
return typeof iterator.throw === "function" ? mapResult(await iterator.throw(error)) : Promise.reject(error);
|
|
79
51
|
},
|
|
80
52
|
[Symbol.asyncIterator]() {
|
|
81
53
|
return this;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/mapAsyncIterator.ts"],
|
|
4
4
|
"sourcesContent": ["/*\n * Taken from https://github.com/graphql/graphql-js/blob/40c160e9fb0e1ff92fc954c03274adf94c3004a9/src/execution/mapAsyncIterator.ts\n * MIT license https://github.com/graphql/graphql-js/blob/40c160e9fb0e1ff92fc954c03274adf94c3004a9/LICENSE\n */\n\nimport type { PromiseOrValue } from \"../jsutils/PromiseOrValue\";\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport function mapAsyncIterator<T, U, R = undefined>(\n iterable: AsyncGenerator<T, R, void> | AsyncIterable<T>,\n callback: (value: T) => PromiseOrValue<U>,\n): AsyncGenerator<U, R, void> {\n const iterator = iterable[Symbol.asyncIterator]();\n\n async function mapResult(\n result: IteratorResult<T, R>,\n ): Promise<IteratorResult<U, R>> {\n if (result.done) {\n return result;\n }\n\n try {\n return { value: await callback(result.value), done: false };\n } catch (error) {\n // istanbul ignore else (FIXME: add test case)\n if (typeof iterator.return === \"function\") {\n try {\n await iterator.return();\n } catch (_e) {\n /* ignore error */\n }\n }\n throw error;\n }\n }\n\n return {\n async next() {\n return mapResult(await iterator.next());\n },\n async return(): Promise<IteratorResult<U, R>> {\n // If iterator.return() does not exist, then type R must be undefined.\n return typeof iterator.return === \"function\"\n ? mapResult(await iterator.return())\n : { value: undefined as unknown as R, done: true };\n },\n async throw(error?: unknown) {\n return typeof iterator.throw === \"function\"\n ? mapResult(await iterator.throw(error))\n : Promise.reject(error);\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAWO,SAAS,iBACd,UACA,UAC4B;AAC5B,QAAM,WAAW,SAAS,OAAO,aAAa,EAAE;AAEhD,iBAAe,UACb,QAC+B;AAC/B,QAAI,OAAO,MAAM;AACf,aAAO;AAAA,IACT;AAEA,QAAI;AACF,aAAO,EAAE,OAAO,MAAM,SAAS,OAAO,KAAK,GAAG,MAAM,MAAM;AAAA,IAC5D,SAAS,OAAP;AAEA,UAAI,OAAO,SAAS,WAAW,YAAY;AACzC,YAAI;AACF,gBAAM,SAAS,OAAO;AAAA,QACxB,SAAS,IAAP;AAAA,QAEF;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM,OAAO;AACX,aAAO,UAAU,MAAM,SAAS,KAAK,CAAC;AAAA,IACxC;AAAA,IACA,MAAM,SAAwC;AAE5C,aAAO,OAAO,SAAS,WAAW,aAC9B,UAAU,MAAM,SAAS,OAAO,CAAC,IACjC,EAAE,OAAO,QAA2B,MAAM,KAAK;AAAA,IACrD;AAAA,IACA,MAAM,MAAM,OAAiB;AAC3B,aAAO,OAAO,SAAS,UAAU,aAC7B,UAAU,MAAM,SAAS,MAAM,KAAK,CAAC,IACrC,QAAQ,OAAO,KAAK;AAAA,IAC1B;AAAA,IACA,CAAC,OAAO,aAAa,IAAI;AACvB,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,60 +1,31 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
|
|
22
1
|
// src/utilities/mapAsyncIterator.ts
|
|
23
2
|
function mapAsyncIterator(iterable, callback) {
|
|
24
3
|
const iterator = iterable[Symbol.asyncIterator]();
|
|
25
|
-
function mapResult(result) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
} catch (_e) {
|
|
37
|
-
}
|
|
4
|
+
async function mapResult(result) {
|
|
5
|
+
if (result.done) {
|
|
6
|
+
return result;
|
|
7
|
+
}
|
|
8
|
+
try {
|
|
9
|
+
return { value: await callback(result.value), done: false };
|
|
10
|
+
} catch (error) {
|
|
11
|
+
if (typeof iterator.return === "function") {
|
|
12
|
+
try {
|
|
13
|
+
await iterator.return();
|
|
14
|
+
} catch (_e) {
|
|
38
15
|
}
|
|
39
|
-
throw error;
|
|
40
16
|
}
|
|
41
|
-
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
42
19
|
}
|
|
43
20
|
return {
|
|
44
|
-
next() {
|
|
45
|
-
return
|
|
46
|
-
return mapResult(yield iterator.next());
|
|
47
|
-
});
|
|
21
|
+
async next() {
|
|
22
|
+
return mapResult(await iterator.next());
|
|
48
23
|
},
|
|
49
|
-
return() {
|
|
50
|
-
return
|
|
51
|
-
return typeof iterator.return === "function" ? mapResult(yield iterator.return()) : { value: void 0, done: true };
|
|
52
|
-
});
|
|
24
|
+
async return() {
|
|
25
|
+
return typeof iterator.return === "function" ? mapResult(await iterator.return()) : { value: void 0, done: true };
|
|
53
26
|
},
|
|
54
|
-
throw(error) {
|
|
55
|
-
return
|
|
56
|
-
return typeof iterator.throw === "function" ? mapResult(yield iterator.throw(error)) : Promise.reject(error);
|
|
57
|
-
});
|
|
27
|
+
async throw(error) {
|
|
28
|
+
return typeof iterator.throw === "function" ? mapResult(await iterator.throw(error)) : Promise.reject(error);
|
|
58
29
|
},
|
|
59
30
|
[Symbol.asyncIterator]() {
|
|
60
31
|
return this;
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/mapAsyncIterator.ts"],
|
|
4
4
|
"sourcesContent": ["/*\n * Taken from https://github.com/graphql/graphql-js/blob/40c160e9fb0e1ff92fc954c03274adf94c3004a9/src/execution/mapAsyncIterator.ts\n * MIT license https://github.com/graphql/graphql-js/blob/40c160e9fb0e1ff92fc954c03274adf94c3004a9/LICENSE\n */\n\nimport type { PromiseOrValue } from \"../jsutils/PromiseOrValue\";\n\n/**\n * Given an AsyncIterable and a callback function, return an AsyncIterator\n * which produces values mapped via calling the callback function.\n */\nexport function mapAsyncIterator<T, U, R = undefined>(\n iterable: AsyncGenerator<T, R, void> | AsyncIterable<T>,\n callback: (value: T) => PromiseOrValue<U>,\n): AsyncGenerator<U, R, void> {\n const iterator = iterable[Symbol.asyncIterator]();\n\n async function mapResult(\n result: IteratorResult<T, R>,\n ): Promise<IteratorResult<U, R>> {\n if (result.done) {\n return result;\n }\n\n try {\n return { value: await callback(result.value), done: false };\n } catch (error) {\n // istanbul ignore else (FIXME: add test case)\n if (typeof iterator.return === \"function\") {\n try {\n await iterator.return();\n } catch (_e) {\n /* ignore error */\n }\n }\n throw error;\n }\n }\n\n return {\n async next() {\n return mapResult(await iterator.next());\n },\n async return(): Promise<IteratorResult<U, R>> {\n // If iterator.return() does not exist, then type R must be undefined.\n return typeof iterator.return === \"function\"\n ? mapResult(await iterator.return())\n : { value: undefined as unknown as R, done: true };\n },\n async throw(error?: unknown) {\n return typeof iterator.throw === \"function\"\n ? mapResult(await iterator.throw(error))\n : Promise.reject(error);\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n };\n}\n"],
|
|
5
|
-
"mappings": "
|
|
5
|
+
"mappings": ";AAWO,SAAS,iBACd,UACA,UAC4B;AAC5B,QAAM,WAAW,SAAS,OAAO,aAAa,EAAE;AAEhD,iBAAe,UACb,QAC+B;AAC/B,QAAI,OAAO,MAAM;AACf,aAAO;AAAA,IACT;AAEA,QAAI;AACF,aAAO,EAAE,OAAO,MAAM,SAAS,OAAO,KAAK,GAAG,MAAM,MAAM;AAAA,IAC5D,SAAS,OAAP;AAEA,UAAI,OAAO,SAAS,WAAW,YAAY;AACzC,YAAI;AACF,gBAAM,SAAS,OAAO;AAAA,QACxB,SAAS,IAAP;AAAA,QAEF;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AAAA,IACL,MAAM,OAAO;AACX,aAAO,UAAU,MAAM,SAAS,KAAK,CAAC;AAAA,IACxC;AAAA,IACA,MAAM,SAAwC;AAE5C,aAAO,OAAO,SAAS,WAAW,aAC9B,UAAU,MAAM,SAAS,OAAO,CAAC,IACjC,EAAE,OAAO,QAA2B,MAAM,KAAK;AAAA,IACrD;AAAA,IACA,MAAM,MAAM,OAAiB;AAC3B,aAAO,OAAO,SAAS,UAAU,aAC7B,UAAU,MAAM,SAAS,MAAM,KAAK,CAAC,IACrC,QAAQ,OAAO,KAAK;AAAA,IAC1B;AAAA,IACA,CAAC,OAAO,aAAa,IAAI;AACvB,aAAO;AAAA,IACT;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|