@graphitation/supermassive 2.4.7 → 2.5.0
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 +18 -2
- package/README.md +2 -42
- package/lib/benchmarks/index.js +3 -3
- package/lib/benchmarks/index.js.map +7 -0
- package/lib/benchmarks/index.mjs +2 -2
- package/lib/benchmarks/index.mjs.map +7 -0
- package/lib/benchmarks/nice-benchmark.js.map +7 -0
- package/lib/benchmarks/nice-benchmark.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/index.js.map +7 -0
- package/lib/benchmarks/swapi-schema/index.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/models.js.map +7 -0
- package/lib/benchmarks/swapi-schema/models.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/resolvers.js.map +7 -0
- package/lib/benchmarks/swapi-schema/resolvers.mjs.map +7 -0
- package/lib/collectFields.d.ts +1 -1
- package/lib/collectFields.d.ts.map +1 -1
- package/lib/collectFields.js.map +7 -0
- package/lib/collectFields.mjs.map +7 -0
- package/lib/definition.js.map +7 -0
- package/lib/definition.mjs.map +7 -0
- package/lib/directives.d.ts +1 -1
- package/lib/directives.d.ts.map +1 -1
- package/lib/directives.js.map +7 -0
- package/lib/directives.mjs.map +7 -0
- package/lib/executeWithSchema.js.map +7 -0
- package/lib/executeWithSchema.mjs.map +7 -0
- package/lib/executeWithoutSchema.d.ts +1 -1
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js.map +7 -0
- package/lib/executeWithoutSchema.mjs.map +7 -0
- package/lib/extractImplicitTypesRuntime.js.map +7 -0
- package/lib/extractImplicitTypesRuntime.mjs.map +7 -0
- package/lib/hooks/types.js.map +7 -0
- package/lib/hooks/types.mjs.map +7 -0
- package/lib/index.d.ts +6 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -4
- package/lib/index.js.map +7 -0
- package/lib/index.mjs +4 -2
- package/lib/index.mjs.map +7 -0
- package/lib/jsutils/Maybe.js.map +7 -0
- package/lib/jsutils/Maybe.mjs.map +7 -0
- package/lib/jsutils/ObjMap.js.map +7 -0
- package/lib/jsutils/ObjMap.mjs.map +7 -0
- package/lib/jsutils/Path.js.map +7 -0
- package/lib/jsutils/Path.mjs.map +7 -0
- package/lib/jsutils/PromiseOrValue.js.map +7 -0
- package/lib/jsutils/PromiseOrValue.mjs.map +7 -0
- package/lib/jsutils/devAssert.js.map +7 -0
- package/lib/jsutils/devAssert.mjs.map +7 -0
- package/lib/jsutils/didYouMean.js.map +7 -0
- package/lib/jsutils/didYouMean.mjs.map +7 -0
- package/lib/jsutils/identityFunc.js.map +7 -0
- package/lib/jsutils/identityFunc.mjs.map +7 -0
- package/lib/jsutils/inspect.js.map +7 -0
- package/lib/jsutils/inspect.mjs.map +7 -0
- package/lib/jsutils/instanceOf.d.ts.map +1 -1
- package/lib/jsutils/instanceOf.js +1 -4
- package/lib/jsutils/instanceOf.js.map +7 -0
- package/lib/jsutils/instanceOf.mjs +1 -4
- package/lib/jsutils/instanceOf.mjs.map +7 -0
- package/lib/jsutils/invariant.js.map +7 -0
- package/lib/jsutils/invariant.mjs.map +7 -0
- package/lib/jsutils/isAsyncIterable.js.map +7 -0
- package/lib/jsutils/isAsyncIterable.mjs.map +7 -0
- package/lib/jsutils/isIterableObject.js.map +7 -0
- package/lib/jsutils/isIterableObject.mjs.map +7 -0
- package/lib/jsutils/isObjectLike.js.map +7 -0
- package/lib/jsutils/isObjectLike.mjs.map +7 -0
- package/lib/jsutils/isPromise.js.map +7 -0
- package/lib/jsutils/isPromise.mjs.map +7 -0
- package/lib/jsutils/keyMap.js.map +7 -0
- package/lib/jsutils/keyMap.mjs.map +7 -0
- package/lib/jsutils/keyValMap.js.map +7 -0
- package/lib/jsutils/keyValMap.mjs.map +7 -0
- package/lib/jsutils/mapValue.js.map +7 -0
- package/lib/jsutils/mapValue.mjs.map +7 -0
- package/lib/jsutils/memoize3.js.map +7 -0
- package/lib/jsutils/memoize3.mjs.map +7 -0
- package/lib/jsutils/naturalCompare.js.map +7 -0
- package/lib/jsutils/naturalCompare.mjs.map +7 -0
- package/lib/jsutils/printPathArray.js.map +7 -0
- package/lib/jsutils/printPathArray.mjs.map +7 -0
- package/lib/jsutils/promiseForObject.js.map +7 -0
- package/lib/jsutils/promiseForObject.mjs.map +7 -0
- package/lib/jsutils/promiseReduce.js.map +7 -0
- package/lib/jsutils/promiseReduce.mjs.map +7 -0
- package/lib/jsutils/suggestionList.js.map +7 -0
- package/lib/jsutils/suggestionList.mjs.map +7 -0
- package/lib/jsutils/toObjMap.js.map +7 -0
- package/lib/jsutils/toObjMap.mjs.map +7 -0
- package/lib/subscribeWithSchema.js.map +7 -0
- package/lib/subscribeWithSchema.mjs.map +7 -0
- package/lib/subscribeWithoutSchema.d.ts +1 -1
- package/lib/subscribeWithoutSchema.d.ts.map +1 -1
- package/lib/subscribeWithoutSchema.js.map +7 -0
- package/lib/subscribeWithoutSchema.mjs.map +7 -0
- package/lib/types.d.ts +1 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +7 -0
- package/lib/types.mjs.map +7 -0
- package/lib/utilities/array.js.map +7 -0
- package/lib/utilities/array.mjs.map +7 -0
- package/lib/utilities/blankGraphQLTag.js.map +7 -0
- package/lib/utilities/blankGraphQLTag.mjs.map +7 -0
- package/lib/utilities/mapAsyncIterator.js.map +7 -0
- package/lib/utilities/mapAsyncIterator.mjs.map +7 -0
- package/lib/utilities/mergeResolvers.d.ts.map +1 -1
- package/lib/utilities/mergeResolvers.js +2 -1
- package/lib/utilities/mergeResolvers.js.map +7 -0
- package/lib/utilities/mergeResolvers.mjs +2 -1
- package/lib/utilities/mergeResolvers.mjs.map +7 -0
- package/lib/utilities/typeNameFromAST.d.ts +1 -1
- package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
- package/lib/utilities/typeNameFromAST.js.map +7 -0
- package/lib/utilities/typeNameFromAST.mjs.map +7 -0
- package/lib/values.d.ts +1 -1
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js.map +7 -0
- package/lib/values.mjs.map +7 -0
- package/package.json +7 -3
- package/lib/ast/TypedAST.d.ts +0 -367
- package/lib/ast/TypedAST.d.ts.map +0 -1
- package/lib/ast/TypedAST.js +0 -16
- package/lib/ast/TypedAST.mjs +0 -0
- package/lib/ast/addTypesToRequestDocument.d.ts +0 -6
- package/lib/ast/addTypesToRequestDocument.d.ts.map +0 -1
- package/lib/ast/addTypesToRequestDocument.js +0 -161
- package/lib/ast/addTypesToRequestDocument.mjs +0 -153
- package/lib/transforms/annotateDocumentGraphQLTransform.d.ts +0 -3
- package/lib/transforms/annotateDocumentGraphQLTransform.d.ts.map +0 -1
- package/lib/transforms/annotateDocumentGraphQLTransform.js +0 -34
- package/lib/transforms/annotateDocumentGraphQLTransform.mjs +0 -17
|
@@ -36,10 +36,7 @@ const instanceOf = false ? (
|
|
|
36
36
|
const className = constructor.prototype[Symbol.toStringTag];
|
|
37
37
|
const valueClassName = (
|
|
38
38
|
// We still need to support constructor's name to detect conflicts with older versions of this library.
|
|
39
|
-
Symbol.toStringTag in value ? (
|
|
40
|
-
// @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009
|
|
41
|
-
value[Symbol.toStringTag]
|
|
42
|
-
) : (_a = value.constructor) == null ? void 0 : _a.name
|
|
39
|
+
Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_a = value.constructor) == null ? void 0 : _a.name
|
|
43
40
|
);
|
|
44
41
|
if (className === valueClassName) {
|
|
45
42
|
const stringifiedValue = (0, import_inspect.inspect)(value);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/instanceOf.ts"],
|
|
4
|
+
"sourcesContent": ["import { inspect } from \"./inspect\";\n\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\nexport const instanceOf: (value: unknown, constructor: Constructor) => boolean =\n process.env.NODE_ENV === \"production\"\n ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n function instanceOf(value: unknown, constructor: Constructor): boolean {\n return value instanceof constructor;\n }\n : function instanceOf(value: unknown, constructor: Constructor): boolean {\n if (value instanceof constructor) {\n return true;\n }\n if (typeof value === \"object\" && value !== null) {\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName =\n // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value\n ? (value as any)[Symbol.toStringTag] // TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n : value.constructor?.name;\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(\n `Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`,\n );\n }\n }\n return false;\n };\n\ninterface Constructor extends Function {\n prototype: {\n [Symbol.toStringTag]: string;\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAwB;AAQjB,MAAM,aACX;AAAA;AAAA,EAEI,SAASA,YAAW,OAAgB,aAAmC;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA,IACA,SAASA,YAAW,OAAgB,aAAmC;AAd7E;AAeQ,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAE/C,UAAM,YAAY,YAAY,UAAU,OAAO,WAAW;AAC1D,UAAM;AAAA;AAAA,MAEJ,OAAO,eAAe,QACjB,MAAc,OAAO,WAAW,KACjC,WAAM,gBAAN,mBAAmB;AAAA;AACzB,QAAI,cAAc,gBAAgB;AAChC,YAAM,uBAAmB,wBAAQ,KAAK;AACtC,YAAM,IAAI;AAAA,QACR,cAAc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAY9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
|
|
6
|
+
"names": ["instanceOf"]
|
|
7
|
+
}
|
|
@@ -14,10 +14,7 @@ var instanceOf = false ? (
|
|
|
14
14
|
const className = constructor.prototype[Symbol.toStringTag];
|
|
15
15
|
const valueClassName = (
|
|
16
16
|
// We still need to support constructor's name to detect conflicts with older versions of this library.
|
|
17
|
-
Symbol.toStringTag in value ? (
|
|
18
|
-
// @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009
|
|
19
|
-
value[Symbol.toStringTag]
|
|
20
|
-
) : (_a = value.constructor) == null ? void 0 : _a.name
|
|
17
|
+
Symbol.toStringTag in value ? value[Symbol.toStringTag] : (_a = value.constructor) == null ? void 0 : _a.name
|
|
21
18
|
);
|
|
22
19
|
if (className === valueClassName) {
|
|
23
20
|
const stringifiedValue = inspect(value);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/instanceOf.ts"],
|
|
4
|
+
"sourcesContent": ["import { inspect } from \"./inspect\";\n\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\nexport const instanceOf: (value: unknown, constructor: Constructor) => boolean =\n process.env.NODE_ENV === \"production\"\n ? // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2317')\n function instanceOf(value: unknown, constructor: Constructor): boolean {\n return value instanceof constructor;\n }\n : function instanceOf(value: unknown, constructor: Constructor): boolean {\n if (value instanceof constructor) {\n return true;\n }\n if (typeof value === \"object\" && value !== null) {\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName =\n // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value\n ? (value as any)[Symbol.toStringTag] // TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n : value.constructor?.name;\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(\n `Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`,\n );\n }\n }\n return false;\n };\n\ninterface Constructor extends Function {\n prototype: {\n [Symbol.toStringTag]: string;\n };\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,eAAe;AAQjB,IAAM,aACX;AAAA;AAAA,EAEI,SAASA,YAAW,OAAgB,aAAmC;AACrE,WAAO,iBAAiB;AAAA,EAC1B;AAAA,IACA,SAASA,YAAW,OAAgB,aAAmC;AAd7E;AAeQ,MAAI,iBAAiB,aAAa;AAChC,WAAO;AAAA,EACT;AACA,MAAI,OAAO,UAAU,YAAY,UAAU,MAAM;AAE/C,UAAM,YAAY,YAAY,UAAU,OAAO,WAAW;AAC1D,UAAM;AAAA;AAAA,MAEJ,OAAO,eAAe,QACjB,MAAc,OAAO,WAAW,KACjC,WAAM,gBAAN,mBAAmB;AAAA;AACzB,QAAI,cAAc,gBAAgB;AAChC,YAAM,mBAAmB,QAAQ,KAAK;AACtC,YAAM,IAAI;AAAA,QACR,cAAc,cAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAY9B;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
|
|
6
|
+
"names": ["instanceOf"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/invariant.ts"],
|
|
4
|
+
"sourcesContent": ["export function invariant(\n condition: unknown,\n message?: string,\n): asserts condition {\n const booleanCondition = Boolean(condition);\n // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : \"Unexpected invariant triggered.\",\n );\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,UACd,WACA,SACmB;AACnB,QAAM,mBAAmB,QAAQ,SAAS;AAE1C,MAAI,CAAC,kBAAkB;AACrB,UAAM,IAAI;AAAA,MACR,WAAW,OAAO,UAAU;AAAA,IAC9B;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/invariant.ts"],
|
|
4
|
+
"sourcesContent": ["export function invariant(\n condition: unknown,\n message?: string,\n): asserts condition {\n const booleanCondition = Boolean(condition);\n // istanbul ignore else (See transformation done in './resources/inlineInvariant.js')\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : \"Unexpected invariant triggered.\",\n );\n }\n}\n"],
|
|
5
|
+
"mappings": ";AAAO,SAAS,UACd,WACA,SACmB;AACnB,QAAM,mBAAmB,QAAQ,SAAS;AAE1C,MAAI,CAAC,kBAAkB;AACrB,UAAM,IAAI;AAAA,MACR,WAAW,OAAO,UAAU;AAAA,IAC9B;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isAsyncIterable.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns true if the provided object implements the AsyncIterator protocol via\n * implementing a `Symbol.asyncIterator` method.\n */\nexport function isAsyncIterable(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeAsyncIterable: any,\n): maybeAsyncIterable is AsyncIterable<unknown> {\n return typeof maybeAsyncIterable?.[Symbol.asyncIterator] === \"function\";\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,gBAEd,oBAC8C;AAC9C,SAAO,QAAO,yDAAqB,OAAO,oBAAmB;AAC/D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isAsyncIterable.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns true if the provided object implements the AsyncIterator protocol via\n * implementing a `Symbol.asyncIterator` method.\n */\nexport function isAsyncIterable(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeAsyncIterable: any,\n): maybeAsyncIterable is AsyncIterable<unknown> {\n return typeof maybeAsyncIterable?.[Symbol.asyncIterator] === \"function\";\n}\n"],
|
|
5
|
+
"mappings": ";AAIO,SAAS,gBAEd,oBAC8C;AAC9C,SAAO,QAAO,yDAAqB,OAAO,oBAAmB;AAC/D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isIterableObject.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns true if the provided object is an Object (i.e. not a string literal)\n * and implements the Iterator protocol.\n *\n * This may be used in place of [Array.isArray()][isArray] to determine if\n * an object should be iterated-over e.g. Array, Map, Set, Int8Array,\n * TypedArray, etc. but excludes string literals.\n *\n * @example\n *\n * isIterableObject([ 1, 2, 3 ]) // true\n * isIterableObject(new Map()) // true\n * isIterableObject('ABC') // false\n * isIterableObject({ key: 'value' }) // false\n * isIterableObject({ length: 1, 0: 'Alpha' }) // false\n */\nexport function isIterableObject(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeIterable: any,\n): maybeIterable is Iterable<unknown> {\n return (\n typeof maybeIterable === \"object\" &&\n typeof maybeIterable?.[Symbol.iterator] === \"function\"\n );\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgBO,SAAS,iBAEd,eACoC;AACpC,SACE,OAAO,kBAAkB,YACzB,QAAO,+CAAgB,OAAO,eAAc;AAEhD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isIterableObject.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns true if the provided object is an Object (i.e. not a string literal)\n * and implements the Iterator protocol.\n *\n * This may be used in place of [Array.isArray()][isArray] to determine if\n * an object should be iterated-over e.g. Array, Map, Set, Int8Array,\n * TypedArray, etc. but excludes string literals.\n *\n * @example\n *\n * isIterableObject([ 1, 2, 3 ]) // true\n * isIterableObject(new Map()) // true\n * isIterableObject('ABC') // false\n * isIterableObject({ key: 'value' }) // false\n * isIterableObject({ length: 1, 0: 'Alpha' }) // false\n */\nexport function isIterableObject(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n maybeIterable: any,\n): maybeIterable is Iterable<unknown> {\n return (\n typeof maybeIterable === \"object\" &&\n typeof maybeIterable?.[Symbol.iterator] === \"function\"\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAgBO,SAAS,iBAEd,eACoC;AACpC,SACE,OAAO,kBAAkB,YACzB,QAAO,+CAAgB,OAAO,eAAc;AAEhD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isObjectLike.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(\n value: unknown,\n): value is { [key: string]: unknown } {\n return typeof value == \"object\" && value !== null;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,SAAS,aACd,OACqC;AACrC,SAAO,OAAO,SAAS,YAAY,UAAU;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isObjectLike.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(\n value: unknown,\n): value is { [key: string]: unknown } {\n return typeof value == \"object\" && value !== null;\n}\n"],
|
|
5
|
+
"mappings": ";AAIO,SAAS,aACd,OACqC;AACrC,SAAO,OAAO,SAAS,YAAY,UAAU;AAC/C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isPromise.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns true if the value acts like a Promise, i.e. has a \"then\" function,\n * otherwise returns false.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isPromise(value: any): value is Promise<unknown> {\n return typeof value?.then === \"function\";\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,SAAS,UAAU,OAAuC;AAC/D,SAAO,QAAO,+BAAO,UAAS;AAChC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/isPromise.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns true if the value acts like a Promise, i.e. has a \"then\" function,\n * otherwise returns false.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function isPromise(value: any): value is Promise<unknown> {\n return typeof value?.then === \"function\";\n}\n"],
|
|
5
|
+
"mappings": ";AAKO,SAAS,UAAU,OAAuC;AAC/D,SAAO,QAAO,+BAAO,UAAS;AAChC;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/keyMap.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap } from \"./ObjMap\";\n\n/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * for each value in the array.\n *\n * This provides a convenient lookup for the array items if the key function\n * produces unique results.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: { name: 'Jon', num: '555-1234' },\n * // Jenny: { name: 'Jenny', num: '867-5309' } }\n * const entriesByName = keyMap(\n * phoneBook,\n * entry => entry.name\n * )\n *\n * // { name: 'Jenny', num: '857-6309' }\n * const jennyEntry = entriesByName['Jenny']\n *\n */\nexport function keyMap<T>(\n list: ReadonlyArray<T>,\n keyFn: (item: T) => string,\n): ObjMap<T> {\n const result = Object.create(null);\n for (const item of list) {\n result[keyFn(item)] = item;\n }\n return result;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAyBO,SAAS,OACd,MACA,OACW;AACX,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,aAAW,QAAQ,MAAM;AACvB,WAAO,MAAM,IAAI,CAAC,IAAI;AAAA,EACxB;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/keyMap.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap } from \"./ObjMap\";\n\n/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * for each value in the array.\n *\n * This provides a convenient lookup for the array items if the key function\n * produces unique results.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: { name: 'Jon', num: '555-1234' },\n * // Jenny: { name: 'Jenny', num: '867-5309' } }\n * const entriesByName = keyMap(\n * phoneBook,\n * entry => entry.name\n * )\n *\n * // { name: 'Jenny', num: '857-6309' }\n * const jennyEntry = entriesByName['Jenny']\n *\n */\nexport function keyMap<T>(\n list: ReadonlyArray<T>,\n keyFn: (item: T) => string,\n): ObjMap<T> {\n const result = Object.create(null);\n for (const item of list) {\n result[keyFn(item)] = item;\n }\n return result;\n}\n"],
|
|
5
|
+
"mappings": ";AAyBO,SAAS,OACd,MACA,OACW;AACX,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,aAAW,QAAQ,MAAM;AACvB,WAAO,MAAM,IAAI,CAAC,IAAI;AAAA,EACxB;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/keyValMap.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap } from \"./ObjMap\";\n\n/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * and a function to produce the values from each item in the array.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: '555-1234', Jenny: '867-5309' }\n * const phonesByName = keyValMap(\n * phoneBook,\n * entry => entry.name,\n * entry => entry.num\n * )\n *\n */\nexport function keyValMap<T, V>(\n list: ReadonlyArray<T>,\n keyFn: (item: T) => string,\n valFn: (item: T) => V,\n): ObjMap<V> {\n const result = Object.create(null);\n for (const item of list) {\n result[keyFn(item)] = valFn(item);\n }\n return result;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBO,SAAS,UACd,MACA,OACA,OACW;AACX,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,aAAW,QAAQ,MAAM;AACvB,WAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI;AAAA,EAClC;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/keyValMap.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap } from \"./ObjMap\";\n\n/**\n * Creates a keyed JS object from an array, given a function to produce the keys\n * and a function to produce the values from each item in the array.\n *\n * const phoneBook = [\n * { name: 'Jon', num: '555-1234' },\n * { name: 'Jenny', num: '867-5309' }\n * ]\n *\n * // { Jon: '555-1234', Jenny: '867-5309' }\n * const phonesByName = keyValMap(\n * phoneBook,\n * entry => entry.name,\n * entry => entry.num\n * )\n *\n */\nexport function keyValMap<T, V>(\n list: ReadonlyArray<T>,\n keyFn: (item: T) => string,\n valFn: (item: T) => V,\n): ObjMap<V> {\n const result = Object.create(null);\n for (const item of list) {\n result[keyFn(item)] = valFn(item);\n }\n return result;\n}\n"],
|
|
5
|
+
"mappings": ";AAmBO,SAAS,UACd,MACA,OACA,OACW;AACX,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,aAAW,QAAQ,MAAM;AACvB,WAAO,MAAM,IAAI,CAAC,IAAI,MAAM,IAAI;AAAA,EAClC;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/mapValue.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap, ReadOnlyObjMap } from \"./ObjMap\";\n\n/**\n * Creates an object map with the same keys as `map` and values generated by\n * running each value of `map` thru `fn`.\n */\nexport function mapValue<T, V>(\n map: ReadOnlyObjMap<T>,\n fn: (value: T, key: string) => V,\n): ObjMap<V> {\n const result = Object.create(null);\n\n for (const [key, value] of Object.entries(map)) {\n result[key] = fn(value, key);\n }\n return result;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,SAAS,SACd,KACA,IACW;AACX,QAAM,SAAS,uBAAO,OAAO,IAAI;AAEjC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,WAAO,GAAG,IAAI,GAAG,OAAO,GAAG;AAAA,EAC7B;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/mapValue.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap, ReadOnlyObjMap } from \"./ObjMap\";\n\n/**\n * Creates an object map with the same keys as `map` and values generated by\n * running each value of `map` thru `fn`.\n */\nexport function mapValue<T, V>(\n map: ReadOnlyObjMap<T>,\n fn: (value: T, key: string) => V,\n): ObjMap<V> {\n const result = Object.create(null);\n\n for (const [key, value] of Object.entries(map)) {\n result[key] = fn(value, key);\n }\n return result;\n}\n"],
|
|
5
|
+
"mappings": ";AAMO,SAAS,SACd,KACA,IACW;AACX,QAAM,SAAS,uBAAO,OAAO,IAAI;AAEjC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,WAAO,GAAG,IAAI,GAAG,OAAO,GAAG;AAAA,EAC7B;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/memoize3.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Memoizes the provided three-argument function.\n */\nexport function memoize3<\n A1 extends object,\n A2 extends object,\n A3 extends object,\n R,\n>(fn: (a1: A1, a2: A2, a3: A3) => R): (a1: A1, a2: A2, a3: A3) => R {\n let cache0: WeakMap<A1, WeakMap<A2, WeakMap<A3, R>>>;\n\n return function memoized(a1, a2, a3) {\n if (cache0 === undefined) {\n cache0 = new WeakMap();\n }\n\n let cache1 = cache0.get(a1);\n if (cache1 === undefined) {\n cache1 = new WeakMap();\n cache0.set(a1, cache1);\n }\n\n let cache2 = cache1.get(a2);\n if (cache2 === undefined) {\n cache2 = new WeakMap();\n cache1.set(a2, cache2);\n }\n\n let fnResult = cache2.get(a3);\n if (fnResult === undefined) {\n fnResult = fn(a1, a2, a3);\n cache2.set(a3, fnResult);\n }\n\n return fnResult;\n };\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,SAKd,IAAkE;AAClE,MAAI;AAEJ,SAAO,SAAS,SAAS,IAAI,IAAI,IAAI;AACnC,QAAI,WAAW,QAAW;AACxB,eAAS,oBAAI,QAAQ;AAAA,IACvB;AAEA,QAAI,SAAS,OAAO,IAAI,EAAE;AAC1B,QAAI,WAAW,QAAW;AACxB,eAAS,oBAAI,QAAQ;AACrB,aAAO,IAAI,IAAI,MAAM;AAAA,IACvB;AAEA,QAAI,SAAS,OAAO,IAAI,EAAE;AAC1B,QAAI,WAAW,QAAW;AACxB,eAAS,oBAAI,QAAQ;AACrB,aAAO,IAAI,IAAI,MAAM;AAAA,IACvB;AAEA,QAAI,WAAW,OAAO,IAAI,EAAE;AAC5B,QAAI,aAAa,QAAW;AAC1B,iBAAW,GAAG,IAAI,IAAI,EAAE;AACxB,aAAO,IAAI,IAAI,QAAQ;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/memoize3.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Memoizes the provided three-argument function.\n */\nexport function memoize3<\n A1 extends object,\n A2 extends object,\n A3 extends object,\n R,\n>(fn: (a1: A1, a2: A2, a3: A3) => R): (a1: A1, a2: A2, a3: A3) => R {\n let cache0: WeakMap<A1, WeakMap<A2, WeakMap<A3, R>>>;\n\n return function memoized(a1, a2, a3) {\n if (cache0 === undefined) {\n cache0 = new WeakMap();\n }\n\n let cache1 = cache0.get(a1);\n if (cache1 === undefined) {\n cache1 = new WeakMap();\n cache0.set(a1, cache1);\n }\n\n let cache2 = cache1.get(a2);\n if (cache2 === undefined) {\n cache2 = new WeakMap();\n cache1.set(a2, cache2);\n }\n\n let fnResult = cache2.get(a3);\n if (fnResult === undefined) {\n fnResult = fn(a1, a2, a3);\n cache2.set(a3, fnResult);\n }\n\n return fnResult;\n };\n}\n"],
|
|
5
|
+
"mappings": ";AAGO,SAAS,SAKd,IAAkE;AAClE,MAAI;AAEJ,SAAO,SAAS,SAAS,IAAI,IAAI,IAAI;AACnC,QAAI,WAAW,QAAW;AACxB,eAAS,oBAAI,QAAQ;AAAA,IACvB;AAEA,QAAI,SAAS,OAAO,IAAI,EAAE;AAC1B,QAAI,WAAW,QAAW;AACxB,eAAS,oBAAI,QAAQ;AACrB,aAAO,IAAI,IAAI,MAAM;AAAA,IACvB;AAEA,QAAI,SAAS,OAAO,IAAI,EAAE;AAC1B,QAAI,WAAW,QAAW;AACxB,eAAS,oBAAI,QAAQ;AACrB,aAAO,IAAI,IAAI,MAAM;AAAA,IACvB;AAEA,QAAI,WAAW,OAAO,IAAI,EAAE;AAC5B,QAAI,aAAa,QAAW;AAC1B,iBAAW,GAAG,IAAI,IAAI,EAAE;AACxB,aAAO,IAAI,IAAI,QAAQ;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/naturalCompare.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns a number indicating whether a reference string comes before, or after,\n * or is the same as the given string in natural sort order.\n *\n * See: https://en.wikipedia.org/wiki/Natural_sort_order\n *\n */\nexport function naturalCompare(aStr: string, bStr: string): number {\n let aIndex = 0;\n let bIndex = 0;\n\n while (aIndex < aStr.length && bIndex < bStr.length) {\n let aChar = aStr.charCodeAt(aIndex);\n let bChar = bStr.charCodeAt(bIndex);\n\n if (isDigit(aChar) && isDigit(bChar)) {\n let aNum = 0;\n do {\n ++aIndex;\n aNum = aNum * 10 + aChar - DIGIT_0;\n aChar = aStr.charCodeAt(aIndex);\n } while (isDigit(aChar) && aNum > 0);\n\n let bNum = 0;\n do {\n ++bIndex;\n bNum = bNum * 10 + bChar - DIGIT_0;\n bChar = bStr.charCodeAt(bIndex);\n } while (isDigit(bChar) && bNum > 0);\n\n if (aNum < bNum) {\n return -1;\n }\n\n if (aNum > bNum) {\n return 1;\n }\n } else {\n if (aChar < bChar) {\n return -1;\n }\n if (aChar > bChar) {\n return 1;\n }\n ++aIndex;\n ++bIndex;\n }\n }\n\n return aStr.length - bStr.length;\n}\n\nconst DIGIT_0 = 48;\nconst DIGIT_9 = 57;\n\nfunction isDigit(code: number): boolean {\n return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,SAAS,eAAe,MAAc,MAAsB;AACjE,MAAI,SAAS;AACb,MAAI,SAAS;AAEb,SAAO,SAAS,KAAK,UAAU,SAAS,KAAK,QAAQ;AACnD,QAAI,QAAQ,KAAK,WAAW,MAAM;AAClC,QAAI,QAAQ,KAAK,WAAW,MAAM;AAElC,QAAI,QAAQ,KAAK,KAAK,QAAQ,KAAK,GAAG;AACpC,UAAI,OAAO;AACX,SAAG;AACD,UAAE;AACF,eAAO,OAAO,KAAK,QAAQ;AAC3B,gBAAQ,KAAK,WAAW,MAAM;AAAA,MAChC,SAAS,QAAQ,KAAK,KAAK,OAAO;AAElC,UAAI,OAAO;AACX,SAAG;AACD,UAAE;AACF,eAAO,OAAO,KAAK,QAAQ;AAC3B,gBAAQ,KAAK,WAAW,MAAM;AAAA,MAChC,SAAS,QAAQ,KAAK,KAAK,OAAO;AAElC,UAAI,OAAO,MAAM;AACf,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,MAAM;AACf,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AACL,UAAI,QAAQ,OAAO;AACjB,eAAO;AAAA,MACT;AACA,UAAI,QAAQ,OAAO;AACjB,eAAO;AAAA,MACT;AACA,QAAE;AACF,QAAE;AAAA,IACJ;AAAA,EACF;AAEA,SAAO,KAAK,SAAS,KAAK;AAC5B;AAEA,MAAM,UAAU;AAChB,MAAM,UAAU;AAEhB,SAAS,QAAQ,MAAuB;AACtC,SAAO,CAAC,MAAM,IAAI,KAAK,WAAW,QAAQ,QAAQ;AACpD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/naturalCompare.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Returns a number indicating whether a reference string comes before, or after,\n * or is the same as the given string in natural sort order.\n *\n * See: https://en.wikipedia.org/wiki/Natural_sort_order\n *\n */\nexport function naturalCompare(aStr: string, bStr: string): number {\n let aIndex = 0;\n let bIndex = 0;\n\n while (aIndex < aStr.length && bIndex < bStr.length) {\n let aChar = aStr.charCodeAt(aIndex);\n let bChar = bStr.charCodeAt(bIndex);\n\n if (isDigit(aChar) && isDigit(bChar)) {\n let aNum = 0;\n do {\n ++aIndex;\n aNum = aNum * 10 + aChar - DIGIT_0;\n aChar = aStr.charCodeAt(aIndex);\n } while (isDigit(aChar) && aNum > 0);\n\n let bNum = 0;\n do {\n ++bIndex;\n bNum = bNum * 10 + bChar - DIGIT_0;\n bChar = bStr.charCodeAt(bIndex);\n } while (isDigit(bChar) && bNum > 0);\n\n if (aNum < bNum) {\n return -1;\n }\n\n if (aNum > bNum) {\n return 1;\n }\n } else {\n if (aChar < bChar) {\n return -1;\n }\n if (aChar > bChar) {\n return 1;\n }\n ++aIndex;\n ++bIndex;\n }\n }\n\n return aStr.length - bStr.length;\n}\n\nconst DIGIT_0 = 48;\nconst DIGIT_9 = 57;\n\nfunction isDigit(code: number): boolean {\n return !isNaN(code) && DIGIT_0 <= code && code <= DIGIT_9;\n}\n"],
|
|
5
|
+
"mappings": ";AAOO,SAAS,eAAe,MAAc,MAAsB;AACjE,MAAI,SAAS;AACb,MAAI,SAAS;AAEb,SAAO,SAAS,KAAK,UAAU,SAAS,KAAK,QAAQ;AACnD,QAAI,QAAQ,KAAK,WAAW,MAAM;AAClC,QAAI,QAAQ,KAAK,WAAW,MAAM;AAElC,QAAI,QAAQ,KAAK,KAAK,QAAQ,KAAK,GAAG;AACpC,UAAI,OAAO;AACX,SAAG;AACD,UAAE;AACF,eAAO,OAAO,KAAK,QAAQ;AAC3B,gBAAQ,KAAK,WAAW,MAAM;AAAA,MAChC,SAAS,QAAQ,KAAK,KAAK,OAAO;AAElC,UAAI,OAAO;AACX,SAAG;AACD,UAAE;AACF,eAAO,OAAO,KAAK,QAAQ;AAC3B,gBAAQ,KAAK,WAAW,MAAM;AAAA,MAChC,SAAS,QAAQ,KAAK,KAAK,OAAO;AAElC,UAAI,OAAO,MAAM;AACf,eAAO;AAAA,MACT;AAEA,UAAI,OAAO,MAAM;AACf,eAAO;AAAA,MACT;AAAA,IACF,OAAO;AACL,UAAI,QAAQ,OAAO;AACjB,eAAO;AAAA,MACT;AACA,UAAI,QAAQ,OAAO;AACjB,eAAO;AAAA,MACT;AACA,QAAE;AACF,QAAE;AAAA,IACJ;AAAA,EACF;AAEA,SAAO,KAAK,SAAS,KAAK;AAC5B;AAEA,IAAM,UAAU;AAChB,IAAM,UAAU;AAEhB,SAAS,QAAQ,MAAuB;AACtC,SAAO,CAAC,MAAM,IAAI,KAAK,WAAW,QAAQ,QAAQ;AACpD;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/printPathArray.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Build a string describing the path.\n */\nexport function printPathArray(path: ReadonlyArray<string | number>): string {\n return path\n .map((key) =>\n typeof key === \"number\" ? \"[\" + key.toString() + \"]\" : \".\" + key,\n )\n .join(\"\");\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,SAAS,eAAe,MAA8C;AAC3E,SAAO,KACJ;AAAA,IAAI,CAAC,QACJ,OAAO,QAAQ,WAAW,MAAM,IAAI,SAAS,IAAI,MAAM,MAAM;AAAA,EAC/D,EACC,KAAK,EAAE;AACZ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/printPathArray.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Build a string describing the path.\n */\nexport function printPathArray(path: ReadonlyArray<string | number>): string {\n return path\n .map((key) =>\n typeof key === \"number\" ? \"[\" + key.toString() + \"]\" : \".\" + key,\n )\n .join(\"\");\n}\n"],
|
|
5
|
+
"mappings": ";AAGO,SAAS,eAAe,MAA8C;AAC3E,SAAO,KACJ;AAAA,IAAI,CAAC,QACJ,OAAO,QAAQ,WAAW,MAAM,IAAI,SAAS,IAAI,MAAM,MAAM;AAAA,EAC/D,EACC,KAAK,EAAE;AACZ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/promiseForObject.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap } from \"./ObjMap\";\n\n/**\n * This function transforms a JS object `ObjMap<Promise<T>>` into\n * a `Promise<ObjMap<T>>`\n *\n * This is akin to bluebird's `Promise.props`, but implemented only using\n * `Promise.all` so it will work with any implementation of ES6 promises.\n */\nexport function promiseForObject<T>(\n object: ObjMap<Promise<T>>,\n): Promise<ObjMap<T>> {\n return Promise.all(Object.values(object)).then((resolvedValues) => {\n const resolvedObject = Object.create(null);\n for (const [i, key] of Object.keys(object).entries()) {\n resolvedObject[key] = resolvedValues[i];\n }\n return resolvedObject;\n });\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,SAAS,iBACd,QACoB;AACpB,SAAO,QAAQ,IAAI,OAAO,OAAO,MAAM,CAAC,EAAE,KAAK,CAAC,mBAAmB;AACjE,UAAM,iBAAiB,uBAAO,OAAO,IAAI;AACzC,eAAW,CAAC,GAAG,GAAG,KAAK,OAAO,KAAK,MAAM,EAAE,QAAQ,GAAG;AACpD,qBAAe,GAAG,IAAI,eAAe,CAAC;AAAA,IACxC;AACA,WAAO;AAAA,EACT,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/promiseForObject.ts"],
|
|
4
|
+
"sourcesContent": ["import type { ObjMap } from \"./ObjMap\";\n\n/**\n * This function transforms a JS object `ObjMap<Promise<T>>` into\n * a `Promise<ObjMap<T>>`\n *\n * This is akin to bluebird's `Promise.props`, but implemented only using\n * `Promise.all` so it will work with any implementation of ES6 promises.\n */\nexport function promiseForObject<T>(\n object: ObjMap<Promise<T>>,\n): Promise<ObjMap<T>> {\n return Promise.all(Object.values(object)).then((resolvedValues) => {\n const resolvedObject = Object.create(null);\n for (const [i, key] of Object.keys(object).entries()) {\n resolvedObject[key] = resolvedValues[i];\n }\n return resolvedObject;\n });\n}\n"],
|
|
5
|
+
"mappings": ";AASO,SAAS,iBACd,QACoB;AACpB,SAAO,QAAQ,IAAI,OAAO,OAAO,MAAM,CAAC,EAAE,KAAK,CAAC,mBAAmB;AACjE,UAAM,iBAAiB,uBAAO,OAAO,IAAI;AACzC,eAAW,CAAC,GAAG,GAAG,KAAK,OAAO,KAAK,MAAM,EAAE,QAAQ,GAAG;AACpD,qBAAe,GAAG,IAAI,eAAe,CAAC;AAAA,IACxC;AACA,WAAO;AAAA,EACT,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/promiseReduce.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PromiseOrValue } from \"./PromiseOrValue\";\n\nimport { isPromise } from \"./isPromise\";\n\n/**\n * Similar to Array.prototype.reduce(), however the reducing callback may return\n * a Promise, in which case reduction will continue after each promise resolves.\n *\n * If the callback does not return a Promise, then this function will also not\n * return a Promise.\n */\nexport function promiseReduce<T, U>(\n values: Iterable<T>,\n callbackFn: (accumulator: U, currentValue: T) => PromiseOrValue<U>,\n initialValue: PromiseOrValue<U>,\n): PromiseOrValue<U> {\n let accumulator = initialValue;\n for (const value of values) {\n accumulator = isPromise(accumulator)\n ? accumulator.then((resolved) => callbackFn(resolved, value))\n : callbackFn(accumulator, value);\n }\n return accumulator;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,uBAA0B;AASnB,SAAS,cACd,QACA,YACA,cACmB;AACnB,MAAI,cAAc;AAClB,aAAW,SAAS,QAAQ;AAC1B,sBAAc,4BAAU,WAAW,IAC/B,YAAY,KAAK,CAAC,aAAa,WAAW,UAAU,KAAK,CAAC,IAC1D,WAAW,aAAa,KAAK;AAAA,EACnC;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/promiseReduce.ts"],
|
|
4
|
+
"sourcesContent": ["import type { PromiseOrValue } from \"./PromiseOrValue\";\n\nimport { isPromise } from \"./isPromise\";\n\n/**\n * Similar to Array.prototype.reduce(), however the reducing callback may return\n * a Promise, in which case reduction will continue after each promise resolves.\n *\n * If the callback does not return a Promise, then this function will also not\n * return a Promise.\n */\nexport function promiseReduce<T, U>(\n values: Iterable<T>,\n callbackFn: (accumulator: U, currentValue: T) => PromiseOrValue<U>,\n initialValue: PromiseOrValue<U>,\n): PromiseOrValue<U> {\n let accumulator = initialValue;\n for (const value of values) {\n accumulator = isPromise(accumulator)\n ? accumulator.then((resolved) => callbackFn(resolved, value))\n : callbackFn(accumulator, value);\n }\n return accumulator;\n}\n"],
|
|
5
|
+
"mappings": ";AAEA,SAAS,iBAAiB;AASnB,SAAS,cACd,QACA,YACA,cACmB;AACnB,MAAI,cAAc;AAClB,aAAW,SAAS,QAAQ;AAC1B,kBAAc,UAAU,WAAW,IAC/B,YAAY,KAAK,CAAC,aAAa,WAAW,UAAU,KAAK,CAAC,IAC1D,WAAW,aAAa,KAAK;AAAA,EACnC;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/suggestionList.ts"],
|
|
4
|
+
"sourcesContent": ["import { naturalCompare } from \"./naturalCompare\";\n\n/**\n * Given an invalid input string and a list of valid options, returns a filtered\n * list of valid options sorted based on their similarity with the input.\n */\nexport function suggestionList(\n input: string,\n options: ReadonlyArray<string>,\n): Array<string> {\n const optionsByDistance = Object.create(null);\n const lexicalDistance = new LexicalDistance(input);\n\n const threshold = Math.floor(input.length * 0.4) + 1;\n for (const option of options) {\n const distance = lexicalDistance.measure(option, threshold);\n if (distance !== undefined) {\n optionsByDistance[option] = distance;\n }\n }\n\n return Object.keys(optionsByDistance).sort((a, b) => {\n const distanceDiff = optionsByDistance[a] - optionsByDistance[b];\n return distanceDiff !== 0 ? distanceDiff : naturalCompare(a, b);\n });\n}\n\n/**\n * Computes the lexical distance between strings A and B.\n *\n * The \"distance\" between two strings is given by counting the minimum number\n * of edits needed to transform string A into string B. An edit can be an\n * insertion, deletion, or substitution of a single character, or a swap of two\n * adjacent characters.\n *\n * Includes a custom alteration from Damerau-Levenshtein to treat case changes\n * as a single edit which helps identify mis-cased values with an edit distance\n * of 1.\n *\n * This distance can be useful for detecting typos in input or sorting\n */\nclass LexicalDistance {\n _input: string;\n _inputLowerCase: string;\n _inputArray: Array<number>;\n _rows: [Array<number>, Array<number>, Array<number>];\n\n constructor(input: string) {\n this._input = input;\n this._inputLowerCase = input.toLowerCase();\n this._inputArray = stringToArray(this._inputLowerCase);\n\n this._rows = [\n new Array(input.length + 1).fill(0),\n new Array(input.length + 1).fill(0),\n new Array(input.length + 1).fill(0),\n ];\n }\n\n measure(option: string, threshold: number): number | undefined {\n if (this._input === option) {\n return 0;\n }\n\n const optionLowerCase = option.toLowerCase();\n\n // Any case change counts as a single edit\n if (this._inputLowerCase === optionLowerCase) {\n return 1;\n }\n\n let a = stringToArray(optionLowerCase);\n let b = this._inputArray;\n\n if (a.length < b.length) {\n const tmp = a;\n a = b;\n b = tmp;\n }\n const aLength = a.length;\n const bLength = b.length;\n\n if (aLength - bLength > threshold) {\n return undefined;\n }\n\n const rows = this._rows;\n for (let j = 0; j <= bLength; j++) {\n rows[0][j] = j;\n }\n\n for (let i = 1; i <= aLength; i++) {\n const upRow = rows[(i - 1) % 3];\n const currentRow = rows[i % 3];\n\n let smallestCell = (currentRow[0] = i);\n for (let j = 1; j <= bLength; j++) {\n const cost = a[i - 1] === b[j - 1] ? 0 : 1;\n\n let currentCell = Math.min(\n upRow[j] + 1, // delete\n currentRow[j - 1] + 1, // insert\n upRow[j - 1] + cost, // substitute\n );\n\n if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {\n // transposition\n const doubleDiagonalCell = rows[(i - 2) % 3][j - 2];\n currentCell = Math.min(currentCell, doubleDiagonalCell + 1);\n }\n\n if (currentCell < smallestCell) {\n smallestCell = currentCell;\n }\n\n currentRow[j] = currentCell;\n }\n\n // Early exit, since distance can't go smaller than smallest element of the previous row.\n if (smallestCell > threshold) {\n return undefined;\n }\n }\n\n const distance = rows[aLength % 3][bLength];\n return distance <= threshold ? distance : undefined;\n }\n}\n\nfunction stringToArray(str: string): Array<number> {\n const strLength = str.length;\n const array = new Array(strLength);\n for (let i = 0; i < strLength; ++i) {\n array[i] = str.charCodeAt(i);\n }\n return array;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/suggestionList.ts"],
|
|
4
|
+
"sourcesContent": ["import { naturalCompare } from \"./naturalCompare\";\n\n/**\n * Given an invalid input string and a list of valid options, returns a filtered\n * list of valid options sorted based on their similarity with the input.\n */\nexport function suggestionList(\n input: string,\n options: ReadonlyArray<string>,\n): Array<string> {\n const optionsByDistance = Object.create(null);\n const lexicalDistance = new LexicalDistance(input);\n\n const threshold = Math.floor(input.length * 0.4) + 1;\n for (const option of options) {\n const distance = lexicalDistance.measure(option, threshold);\n if (distance !== undefined) {\n optionsByDistance[option] = distance;\n }\n }\n\n return Object.keys(optionsByDistance).sort((a, b) => {\n const distanceDiff = optionsByDistance[a] - optionsByDistance[b];\n return distanceDiff !== 0 ? distanceDiff : naturalCompare(a, b);\n });\n}\n\n/**\n * Computes the lexical distance between strings A and B.\n *\n * The \"distance\" between two strings is given by counting the minimum number\n * of edits needed to transform string A into string B. An edit can be an\n * insertion, deletion, or substitution of a single character, or a swap of two\n * adjacent characters.\n *\n * Includes a custom alteration from Damerau-Levenshtein to treat case changes\n * as a single edit which helps identify mis-cased values with an edit distance\n * of 1.\n *\n * This distance can be useful for detecting typos in input or sorting\n */\nclass LexicalDistance {\n _input: string;\n _inputLowerCase: string;\n _inputArray: Array<number>;\n _rows: [Array<number>, Array<number>, Array<number>];\n\n constructor(input: string) {\n this._input = input;\n this._inputLowerCase = input.toLowerCase();\n this._inputArray = stringToArray(this._inputLowerCase);\n\n this._rows = [\n new Array(input.length + 1).fill(0),\n new Array(input.length + 1).fill(0),\n new Array(input.length + 1).fill(0),\n ];\n }\n\n measure(option: string, threshold: number): number | undefined {\n if (this._input === option) {\n return 0;\n }\n\n const optionLowerCase = option.toLowerCase();\n\n // Any case change counts as a single edit\n if (this._inputLowerCase === optionLowerCase) {\n return 1;\n }\n\n let a = stringToArray(optionLowerCase);\n let b = this._inputArray;\n\n if (a.length < b.length) {\n const tmp = a;\n a = b;\n b = tmp;\n }\n const aLength = a.length;\n const bLength = b.length;\n\n if (aLength - bLength > threshold) {\n return undefined;\n }\n\n const rows = this._rows;\n for (let j = 0; j <= bLength; j++) {\n rows[0][j] = j;\n }\n\n for (let i = 1; i <= aLength; i++) {\n const upRow = rows[(i - 1) % 3];\n const currentRow = rows[i % 3];\n\n let smallestCell = (currentRow[0] = i);\n for (let j = 1; j <= bLength; j++) {\n const cost = a[i - 1] === b[j - 1] ? 0 : 1;\n\n let currentCell = Math.min(\n upRow[j] + 1, // delete\n currentRow[j - 1] + 1, // insert\n upRow[j - 1] + cost, // substitute\n );\n\n if (i > 1 && j > 1 && a[i - 1] === b[j - 2] && a[i - 2] === b[j - 1]) {\n // transposition\n const doubleDiagonalCell = rows[(i - 2) % 3][j - 2];\n currentCell = Math.min(currentCell, doubleDiagonalCell + 1);\n }\n\n if (currentCell < smallestCell) {\n smallestCell = currentCell;\n }\n\n currentRow[j] = currentCell;\n }\n\n // Early exit, since distance can't go smaller than smallest element of the previous row.\n if (smallestCell > threshold) {\n return undefined;\n }\n }\n\n const distance = rows[aLength % 3][bLength];\n return distance <= threshold ? distance : undefined;\n }\n}\n\nfunction stringToArray(str: string): Array<number> {\n const strLength = str.length;\n const array = new Array(strLength);\n for (let i = 0; i < strLength; ++i) {\n array[i] = str.charCodeAt(i);\n }\n return array;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/toObjMap.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\n ObjMap,\n ObjMapLike,\n ReadOnlyObjMap,\n ReadOnlyObjMapLike,\n} from \"./ObjMap\";\n\nexport function toObjMap<T>(obj: ObjMapLike<T>): ObjMap<T>;\nexport function toObjMap<T>(obj: ReadOnlyObjMapLike<T>): ReadOnlyObjMap<T>;\nexport function toObjMap<T>(obj: ObjMapLike<T> | ReadOnlyObjMapLike<T>) {\n if (Object.getPrototypeOf(obj) === null) {\n return obj;\n }\n\n const map = Object.create(null);\n for (const [key, value] of Object.entries(obj)) {\n map[key] = value;\n }\n return map;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AASO,SAAS,SAAY,KAA4C;AACtE,MAAI,OAAO,eAAe,GAAG,MAAM,MAAM;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,uBAAO,OAAO,IAAI;AAC9B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,GAAG,IAAI;AAAA,EACb;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/jsutils/toObjMap.ts"],
|
|
4
|
+
"sourcesContent": ["import type {\n ObjMap,\n ObjMapLike,\n ReadOnlyObjMap,\n ReadOnlyObjMapLike,\n} from \"./ObjMap\";\n\nexport function toObjMap<T>(obj: ObjMapLike<T>): ObjMap<T>;\nexport function toObjMap<T>(obj: ReadOnlyObjMapLike<T>): ReadOnlyObjMap<T>;\nexport function toObjMap<T>(obj: ObjMapLike<T> | ReadOnlyObjMapLike<T>) {\n if (Object.getPrototypeOf(obj) === null) {\n return obj;\n }\n\n const map = Object.create(null);\n for (const [key, value] of Object.entries(obj)) {\n map[key] = value;\n }\n return map;\n}\n"],
|
|
5
|
+
"mappings": ";AASO,SAAS,SAAY,KAA4C;AACtE,MAAI,OAAO,eAAe,GAAG,MAAM,MAAM;AACvC,WAAO;AAAA,EACT;AAEA,QAAM,MAAM,uBAAO,OAAO,IAAI;AAC9B,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,GAAG,GAAG;AAC9C,QAAI,GAAG,IAAI;AAAA,EACb;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/subscribeWithSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import { isInputType, buildASTSchema } from \"graphql\";\nimport {\n addTypesToRequestDocument,\n subscribeWithoutSchema,\n extractImplicitTypes,\n specifiedScalars,\n} from \"./index\";\nimport { Resolvers, ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\n\nexport function subscribeWithSchema({\n typeDefs,\n resolvers,\n document: rawDocument,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n}: ExecutionWithSchemaArgs): Promise<\n AsyncGenerator<ExecutionResult, void, void> | ExecutionResult\n> {\n const schema = buildASTSchema(typeDefs);\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(typeDefs, getTypeByName);\n\n const document = addTypesToRequestDocument(schema, rawDocument);\n\n return subscribeWithoutSchema({\n document,\n resolvers,\n schemaResolvers: extractedResolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n });\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA4C;AAC5C,mBAKO;AAGA,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEE;AACA,QAAM,aAAS,+BAAe,QAAQ;AACtC,MAAI,qBAAgC,CAAC;AACrC,QAAM,gBAAgB,CAAC,SAAiB;AACtC,UAAM,OAAO,8BAAiB,IAAI,KAAK,mBAAmB,IAAI;AAC9D,YAAI,4BAAY,IAAI,GAAG;AACrB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAAA,EACF;AACA,2BAAqB,mCAAqB,UAAU,aAAa;AAEjE,QAAM,eAAW,wCAA0B,QAAQ,WAAW;AAE9D,aAAO,qCAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/subscribeWithSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import { isInputType, buildASTSchema } from \"graphql\";\nimport {\n addTypesToRequestDocument,\n subscribeWithoutSchema,\n extractImplicitTypes,\n specifiedScalars,\n} from \"./index\";\nimport { Resolvers, ExecutionResult, ExecutionWithSchemaArgs } from \"./types\";\n\nexport function subscribeWithSchema({\n typeDefs,\n resolvers,\n document: rawDocument,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n}: ExecutionWithSchemaArgs): Promise<\n AsyncGenerator<ExecutionResult, void, void> | ExecutionResult\n> {\n const schema = buildASTSchema(typeDefs);\n let extractedResolvers: Resolvers = {};\n const getTypeByName = (name: string) => {\n const type = specifiedScalars[name] || extractedResolvers[name];\n if (isInputType(type)) {\n return type;\n } else {\n throw new Error(\"Invalid type\");\n }\n };\n extractedResolvers = extractImplicitTypes(typeDefs, getTypeByName);\n\n const document = addTypesToRequestDocument(schema, rawDocument);\n\n return subscribeWithoutSchema({\n document,\n resolvers,\n schemaResolvers: extractedResolvers,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n typeResolver,\n });\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,aAAa,sBAAsB;AAC5C;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGA,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEE;AACA,QAAM,SAAS,eAAe,QAAQ;AACtC,MAAI,qBAAgC,CAAC;AACrC,QAAM,gBAAgB,CAAC,SAAiB;AACtC,UAAM,OAAO,iBAAiB,IAAI,KAAK,mBAAmB,IAAI;AAC9D,QAAI,YAAY,IAAI,GAAG;AACrB,aAAO;AAAA,IACT,OAAO;AACL,YAAM,IAAI,MAAM,cAAc;AAAA,IAChC;AAAA,EACF;AACA,uBAAqB,qBAAqB,UAAU,aAAa;AAEjE,QAAM,WAAW,0BAA0B,QAAQ,WAAW;AAE9D,SAAO,uBAAuB;AAAA,IAC5B;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Maybe } from "./jsutils/Maybe";
|
|
2
|
-
import { DocumentNode } from "
|
|
2
|
+
import { DocumentNode } from "@graphitation/supermassive-ast";
|
|
3
3
|
import { FunctionFieldResolver, ExecutionWithoutSchemaArgs, Resolvers, ExecutionResult } from "./types";
|
|
4
4
|
/**
|
|
5
5
|
* Implements the "Subscribe" algorithm described in the GraphQL specification.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscribeWithoutSchema.d.ts","sourceRoot":"","sources":["../src/subscribeWithoutSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"subscribeWithoutSchema.d.ts","sourceRoot":"","sources":["../src/subscribeWithoutSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAQ7C,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAiB9D,OAAO,EAEL,qBAAqB,EACrB,0BAA0B,EAC1B,SAAS,EACT,eAAe,EAEhB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,eAAe,CAAC,CAmDxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,OAAO,EACnB,YAAY,CAAC,EAAE,OAAO,EACtB,cAAc,CAAC,EAAE,KAAK,CAAC;IAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,EAChE,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAC7B,aAAa,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,GAC7D,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,CAyCnD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/subscribeWithoutSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import { inspect } from \"./jsutils/inspect\";\nimport { isAsyncIterable } from \"./jsutils/isAsyncIterable\";\nimport { addPath, pathToArray } from \"./jsutils/Path\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport {\n GraphQLError,\n locatedError,\n Kind,\n ASTNode as GraphQLASTNode,\n TypeNode,\n} from \"graphql\";\nimport { DocumentNode } from \"@graphitation/supermassive-ast\";\n\nimport type { ExecutionContext } from \"./executeWithoutSchema\";\nimport {\n assertValidExecutionArguments,\n buildExecutionContext,\n buildResolveInfo,\n executeWithoutSchema,\n getOperationRootTypeName,\n} from \"./executeWithoutSchema\";\nimport { collectFields } from \"./collectFields\";\nimport { getArgumentValues } from \"./values\";\nimport { typeNameFromAST } from \"./utilities/typeNameFromAST\";\nimport { mergeResolvers } from \"./utilities/mergeResolvers\";\n\nimport { mapAsyncIterator } from \"./utilities/mapAsyncIterator\";\n\nimport {\n ObjectTypeResolver,\n FunctionFieldResolver,\n ExecutionWithoutSchemaArgs,\n Resolvers,\n ExecutionResult,\n FieldResolverObject,\n} from \"./types\";\n\n/**\n * Implements the \"Subscribe\" algorithm described in the GraphQL specification.\n *\n * Returns a Promise which resolves to either an AsyncIterator (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to an AsyncIterator, which\n * yields a stream of ExecutionResults representing the response stream.\n *\n * Accepts either an object with named arguments, or individual arguments.\n */\nexport async function subscribeWithoutSchema(\n args: ExecutionWithoutSchemaArgs,\n): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult> {\n const {\n resolvers,\n schemaResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n subscribeFieldResolver,\n } = args;\n\n const combinedResolvers = schemaResolvers\n ? mergeResolvers(resolvers, schemaResolvers)\n : (resolvers as Resolvers);\n\n const resultOrStream = await createSourceEventStream(\n combinedResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n subscribeFieldResolver,\n );\n\n if (!isAsyncIterable(resultOrStream)) {\n return resultOrStream;\n }\n\n // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n const mapSourceToResponse = (payload: unknown) =>\n executeWithoutSchema({\n resolvers,\n schemaResolvers,\n document,\n rootValue: payload,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n });\n\n // Map every source value to a ExecutionResult value as described above.\n return mapAsyncIterator(resultOrStream, mapSourceToResponse);\n}\n\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\nexport async function createSourceEventStream(\n resolvers: Resolvers,\n document: DocumentNode,\n rootValue?: unknown,\n contextValue?: unknown,\n variableValues?: Maybe<{ readonly [variable: string]: unknown }>,\n operationName?: Maybe<string>,\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>,\n): Promise<AsyncIterable<unknown> | ExecutionResult> {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n assertValidExecutionArguments(document, variableValues);\n\n try {\n // If a valid context cannot be created due to incorrect arguments, this will throw an error.\n const exeContext = buildExecutionContext(\n resolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n );\n\n // Return early errors if execution context failed.\n if (!(\"resolvers\" in exeContext)) {\n return { errors: exeContext };\n }\n\n const eventStream = await executeSubscription(exeContext);\n\n // Assert field returned an event stream, otherwise yield an error.\n if (!isAsyncIterable(eventStream)) {\n throw new Error(\n \"Subscription field must return Async Iterable. \" +\n `Received: ${inspect(eventStream)}.`,\n );\n }\n\n return eventStream;\n } catch (error) {\n // If it GraphQLError, report it as an ExecutionResult, containing only errors and no data.\n // Otherwise treat the error as a system-class error and re-throw it.\n if (error instanceof GraphQLError) {\n return { errors: [error] };\n }\n throw error;\n }\n}\n\nasync function executeSubscription(\n exeContext: ExecutionContext,\n): Promise<unknown> {\n const { resolvers, fragments, operation, variableValues, rootValue } =\n exeContext;\n const typeName = getOperationRootTypeName(operation);\n const fields = collectFields(\n resolvers,\n fragments,\n variableValues,\n typeName,\n operation.selectionSet,\n new Map(),\n new Set(),\n );\n\n const [responseName, fieldNodes] = [...fields.entries()][0];\n const fieldName = fieldNodes[0].name.value;\n\n let resolveFn;\n let returnTypeName: string;\n let returnTypeNode: TypeNode;\n if (fieldName === \"__typename\" && !resolveFn) {\n resolveFn = () => typeName;\n returnTypeName = \"String\";\n returnTypeNode = {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: \"String\",\n },\n };\n } else {\n returnTypeNode = fieldNodes[0].__type as TypeNode;\n returnTypeName = typeNameFromAST(returnTypeNode);\n const typeResolvers = exeContext.resolvers[typeName] as\n | ObjectTypeResolver<unknown, unknown, unknown>\n | undefined;\n const fieldResolver = typeResolvers?.[fieldName] as\n | FieldResolverObject<unknown, unknown, unknown, unknown>\n | undefined;\n resolveFn = fieldResolver?.subscribe;\n }\n\n if (!resolveFn) {\n resolveFn = exeContext.fieldResolver;\n }\n\n const path = addPath(undefined, responseName, typeName);\n const info = buildResolveInfo(\n exeContext,\n fieldName,\n fieldNodes,\n typeName,\n returnTypeName,\n returnTypeNode,\n path,\n );\n\n try {\n // Implements the \"ResolveFieldEventStream\" algorithm from GraphQL specification.\n // It differs from \"ResolveFieldValue\" due to providing a different `resolveFn`.\n\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill unknown variable references.\n const args = getArgumentValues(resolvers, fieldNodes[0], variableValues);\n\n // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n const contextValue = exeContext.contextValue;\n\n // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n const eventStream = await resolveFn(rootValue, args, contextValue, info);\n\n if (eventStream instanceof Error) {\n throw eventStream;\n }\n return eventStream;\n } catch (error) {\n throw locatedError(\n error,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(path),\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/subscribeWithoutSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import { inspect } from \"./jsutils/inspect\";\nimport { isAsyncIterable } from \"./jsutils/isAsyncIterable\";\nimport { addPath, pathToArray } from \"./jsutils/Path\";\nimport type { Maybe } from \"./jsutils/Maybe\";\nimport {\n GraphQLError,\n locatedError,\n Kind,\n ASTNode as GraphQLASTNode,\n TypeNode,\n} from \"graphql\";\nimport { DocumentNode } from \"@graphitation/supermassive-ast\";\n\nimport type { ExecutionContext } from \"./executeWithoutSchema\";\nimport {\n assertValidExecutionArguments,\n buildExecutionContext,\n buildResolveInfo,\n executeWithoutSchema,\n getOperationRootTypeName,\n} from \"./executeWithoutSchema\";\nimport { collectFields } from \"./collectFields\";\nimport { getArgumentValues } from \"./values\";\nimport { typeNameFromAST } from \"./utilities/typeNameFromAST\";\nimport { mergeResolvers } from \"./utilities/mergeResolvers\";\n\nimport { mapAsyncIterator } from \"./utilities/mapAsyncIterator\";\n\nimport {\n ObjectTypeResolver,\n FunctionFieldResolver,\n ExecutionWithoutSchemaArgs,\n Resolvers,\n ExecutionResult,\n FieldResolverObject,\n} from \"./types\";\n\n/**\n * Implements the \"Subscribe\" algorithm described in the GraphQL specification.\n *\n * Returns a Promise which resolves to either an AsyncIterator (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to an AsyncIterator, which\n * yields a stream of ExecutionResults representing the response stream.\n *\n * Accepts either an object with named arguments, or individual arguments.\n */\nexport async function subscribeWithoutSchema(\n args: ExecutionWithoutSchemaArgs,\n): Promise<AsyncGenerator<ExecutionResult, void, void> | ExecutionResult> {\n const {\n resolvers,\n schemaResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n subscribeFieldResolver,\n } = args;\n\n const combinedResolvers = schemaResolvers\n ? mergeResolvers(resolvers, schemaResolvers)\n : (resolvers as Resolvers);\n\n const resultOrStream = await createSourceEventStream(\n combinedResolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n subscribeFieldResolver,\n );\n\n if (!isAsyncIterable(resultOrStream)) {\n return resultOrStream;\n }\n\n // For each payload yielded from a subscription, map it over the normal\n // GraphQL `execute` function, with `payload` as the rootValue.\n // This implements the \"MapSourceToResponseEvent\" algorithm described in\n // the GraphQL specification. The `execute` function provides the\n // \"ExecuteSubscriptionEvent\" algorithm, as it is nearly identical to the\n // \"ExecuteQuery\" algorithm, for which `execute` is also used.\n const mapSourceToResponse = (payload: unknown) =>\n executeWithoutSchema({\n resolvers,\n schemaResolvers,\n document,\n rootValue: payload,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n });\n\n // Map every source value to a ExecutionResult value as described above.\n return mapAsyncIterator(resultOrStream, mapSourceToResponse);\n}\n\n/**\n * Implements the \"CreateSourceEventStream\" algorithm described in the\n * GraphQL specification, resolving the subscription source event stream.\n *\n * Returns a Promise which resolves to either an AsyncIterable (if successful)\n * or an ExecutionResult (error). The promise will be rejected if the schema or\n * other arguments to this function are invalid, or if the resolved event stream\n * is not an async iterable.\n *\n * If the client-provided arguments to this function do not result in a\n * compliant subscription, a GraphQL Response (ExecutionResult) with\n * descriptive errors and no data will be returned.\n *\n * If the the source stream could not be created due to faulty subscription\n * resolver logic or underlying systems, the promise will resolve to a single\n * ExecutionResult containing `errors` and no `data`.\n *\n * If the operation succeeded, the promise resolves to the AsyncIterable for the\n * event stream returned by the resolver.\n *\n * A Source Event Stream represents a sequence of events, each of which triggers\n * a GraphQL execution for that event.\n *\n * This may be useful when hosting the stateful subscription service in a\n * different process or machine than the stateless GraphQL execution engine,\n * or otherwise separating these two steps. For more on this, see the\n * \"Supporting Subscriptions at Scale\" information in the GraphQL specification.\n */\nexport async function createSourceEventStream(\n resolvers: Resolvers,\n document: DocumentNode,\n rootValue?: unknown,\n contextValue?: unknown,\n variableValues?: Maybe<{ readonly [variable: string]: unknown }>,\n operationName?: Maybe<string>,\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>,\n): Promise<AsyncIterable<unknown> | ExecutionResult> {\n // If arguments are missing or incorrectly typed, this is an internal\n // developer mistake which should throw an early error.\n assertValidExecutionArguments(document, variableValues);\n\n try {\n // If a valid context cannot be created due to incorrect arguments, this will throw an error.\n const exeContext = buildExecutionContext(\n resolvers,\n document,\n rootValue,\n contextValue,\n variableValues,\n operationName,\n fieldResolver,\n );\n\n // Return early errors if execution context failed.\n if (!(\"resolvers\" in exeContext)) {\n return { errors: exeContext };\n }\n\n const eventStream = await executeSubscription(exeContext);\n\n // Assert field returned an event stream, otherwise yield an error.\n if (!isAsyncIterable(eventStream)) {\n throw new Error(\n \"Subscription field must return Async Iterable. \" +\n `Received: ${inspect(eventStream)}.`,\n );\n }\n\n return eventStream;\n } catch (error) {\n // If it GraphQLError, report it as an ExecutionResult, containing only errors and no data.\n // Otherwise treat the error as a system-class error and re-throw it.\n if (error instanceof GraphQLError) {\n return { errors: [error] };\n }\n throw error;\n }\n}\n\nasync function executeSubscription(\n exeContext: ExecutionContext,\n): Promise<unknown> {\n const { resolvers, fragments, operation, variableValues, rootValue } =\n exeContext;\n const typeName = getOperationRootTypeName(operation);\n const fields = collectFields(\n resolvers,\n fragments,\n variableValues,\n typeName,\n operation.selectionSet,\n new Map(),\n new Set(),\n );\n\n const [responseName, fieldNodes] = [...fields.entries()][0];\n const fieldName = fieldNodes[0].name.value;\n\n let resolveFn;\n let returnTypeName: string;\n let returnTypeNode: TypeNode;\n if (fieldName === \"__typename\" && !resolveFn) {\n resolveFn = () => typeName;\n returnTypeName = \"String\";\n returnTypeNode = {\n kind: Kind.NAMED_TYPE,\n name: {\n kind: Kind.NAME,\n value: \"String\",\n },\n };\n } else {\n returnTypeNode = fieldNodes[0].__type as TypeNode;\n returnTypeName = typeNameFromAST(returnTypeNode);\n const typeResolvers = exeContext.resolvers[typeName] as\n | ObjectTypeResolver<unknown, unknown, unknown>\n | undefined;\n const fieldResolver = typeResolvers?.[fieldName] as\n | FieldResolverObject<unknown, unknown, unknown, unknown>\n | undefined;\n resolveFn = fieldResolver?.subscribe;\n }\n\n if (!resolveFn) {\n resolveFn = exeContext.fieldResolver;\n }\n\n const path = addPath(undefined, responseName, typeName);\n const info = buildResolveInfo(\n exeContext,\n fieldName,\n fieldNodes,\n typeName,\n returnTypeName,\n returnTypeNode,\n path,\n );\n\n try {\n // Implements the \"ResolveFieldEventStream\" algorithm from GraphQL specification.\n // It differs from \"ResolveFieldValue\" due to providing a different `resolveFn`.\n\n // Build a JS object of arguments from the field.arguments AST, using the\n // variables scope to fulfill unknown variable references.\n const args = getArgumentValues(resolvers, fieldNodes[0], variableValues);\n\n // The resolve function's optional third argument is a context value that\n // is provided to every resolve function within an execution. It is commonly\n // used to represent an authenticated user, or request-specific caches.\n const contextValue = exeContext.contextValue;\n\n // Call the `subscribe()` resolver or the default resolver to produce an\n // AsyncIterable yielding raw payloads.\n const eventStream = await resolveFn(rootValue, args, contextValue, info);\n\n if (eventStream instanceof Error) {\n throw eventStream;\n }\n return eventStream;\n } catch (error) {\n throw locatedError(\n error,\n fieldNodes as ReadonlyArray<GraphQLASTNode>,\n pathToArray(path),\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GraphQLEnumType, GraphQLError, GraphQLFormattedError, GraphQLInputObjectType, GraphQLScalarType, DocumentNode as UntypedDocumentNode } from "graphql";
|
|
2
2
|
import { Maybe } from "./jsutils/Maybe";
|
|
3
3
|
import { PromiseOrValue } from "./jsutils/PromiseOrValue";
|
|
4
|
-
import { DocumentNode, FieldNode, FragmentDefinitionNode, OperationDefinitionNode, TypeNode } from "
|
|
4
|
+
import { DocumentNode, FieldNode, FragmentDefinitionNode, OperationDefinitionNode, TypeNode } from "@graphitation/supermassive-ast";
|
|
5
5
|
import { ObjMap } from "./jsutils/ObjMap";
|
|
6
6
|
import { Path } from "./jsutils/Path";
|
|
7
7
|
import { ExecutionHooks } from "./hooks/types";
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,IAAI,mBAAmB,EACpC,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EACL,YAAY,EACZ,SAAS,EACT,sBAAsB,EACtB,uBAAuB,EACvB,QAAQ,EACT,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n GraphQLEnumType,\n GraphQLError,\n GraphQLFormattedError,\n GraphQLInputObjectType,\n GraphQLScalarType,\n DocumentNode as UntypedDocumentNode,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport {\n DocumentNode,\n FieldNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n TypeNode,\n} from \"@graphitation/supermassive-ast\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\nimport { Path } from \"./jsutils/Path\";\nimport { ExecutionHooks } from \"./hooks/types\";\n\nexport type ScalarTypeResolver = GraphQLScalarType;\nexport type EnumTypeResolver = GraphQLEnumType; // TODO Record<string, unknown>;\nexport type FunctionFieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = (\n source: TSource,\n args: TArgs,\n context: TContext,\n info: ResolveInfo,\n) => TReturn;\n\nexport type FieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> =\n | FunctionFieldResolver<TSource, TContext, TArgs, TReturn>\n | FieldResolverObject<TSource, TContext, TArgs, TReturn>;\n\nexport type FieldResolverObject<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = {\n subscribe?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n resolve?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n};\n\nexport type TypeResolver<TSource, TContext> = (\n value: TSource,\n context: TContext,\n info: ResolveInfo,\n) => PromiseOrValue<Maybe<string>>;\n\nexport type ObjectTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n};\n\nexport type InterfaceTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n __implementedBy: string[];\n [key: string]: FieldResolver<TSource, TContext, TArgs> | string[] | undefined;\n} & {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\nexport type UnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n __types: string[];\n};\n\nexport type UserInterfaceTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n} & {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserUnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type InputObjectTypeResolver = GraphQLInputObjectType;\n\nexport type UserResolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | UserInterfaceTypeResolver<TSource, TContext>\n | UserUnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver\n | InputObjectTypeResolver;\n\nexport type Resolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | InterfaceTypeResolver<TSource, TContext>\n | UnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver\n | InputObjectTypeResolver;\n\nexport type Resolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n Resolver<TSource, TContext>\n>;\n\nexport type UserResolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n UserResolver<TSource, TContext>\n>;\n\nexport interface ResolveInfo {\n fieldName: string;\n fieldNodes: Array<FieldNode>;\n returnTypeName: string;\n parentTypeName: string;\n returnTypeNode: TypeNode;\n // readonly returnType: GraphQLOutputType;\n // readonly parentType: GraphQLObjectType;\n path: Path;\n // readonly schema: GraphQLSchema;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n}\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `extensions` is reserved for adding non-standard properties.\n */\nexport interface ExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: Array<GraphQLError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface FormattedExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: Array<GraphQLFormattedError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface CommonExecutionArgs {\n resolvers: UserResolvers;\n rootValue?: unknown;\n contextValue?: unknown;\n variableValues?: Maybe<{ [variable: string]: unknown }>;\n operationName?: Maybe<string>;\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>;\n subscribeFieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n fieldExecutionHooks?: ExecutionHooks;\n}\nexport type ExecutionWithoutSchemaArgs = CommonExecutionArgs & {\n document: DocumentNode;\n schemaResolvers?: Resolvers;\n};\n\nexport type ExecutionWithSchemaArgs = CommonExecutionArgs & {\n document: UntypedDocumentNode;\n typeDefs: UntypedDocumentNode;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utilities/array.ts"],
|
|
4
|
+
"sourcesContent": ["export function arraysAreEqual(\n array1: readonly unknown[],\n array2: readonly unknown[],\n): boolean {\n if (array1.length !== array2.length) {\n return false;\n }\n for (let i = 0; i < array1.length - 1; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,eACd,QACA,QACS;AACT,MAAI,OAAO,WAAW,OAAO,QAAQ;AACnC,WAAO;AAAA,EACT;AACA,WAAS,IAAI,GAAG,IAAI,OAAO,SAAS,GAAG,KAAK;AAC1C,QAAI,OAAO,CAAC,MAAM,OAAO,CAAC,GAAG;AAC3B,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|