@graphitation/supermassive 2.6.1 → 3.0.0-alpha.3
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 +17 -1
- package/lib/__testUtils__/execute.d.ts +13 -0
- package/lib/__testUtils__/execute.d.ts.map +1 -0
- package/lib/__testUtils__/execute.js +196 -0
- package/lib/__testUtils__/execute.js.map +7 -0
- package/lib/__testUtils__/execute.mjs +174 -0
- package/lib/__testUtils__/execute.mjs.map +7 -0
- package/lib/benchmarks/index.js +11 -20
- package/lib/benchmarks/index.js.map +3 -3
- package/lib/benchmarks/index.mjs +12 -23
- package/lib/benchmarks/index.mjs.map +2 -2
- package/lib/benchmarks/swapi-schema/index.d.ts +4 -2
- package/lib/benchmarks/swapi-schema/index.d.ts.map +1 -1
- package/lib/benchmarks/swapi-schema/index.js +8 -2
- package/lib/benchmarks/swapi-schema/index.js.map +2 -2
- package/lib/benchmarks/swapi-schema/index.mjs +8 -2
- package/lib/benchmarks/swapi-schema/index.mjs.map +2 -2
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.d.ts +7 -0
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.d.ts.map +1 -0
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.js +916 -0
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.js.map +7 -0
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs +903 -0
- package/lib/benchmarks/swapi-schema/makeExecutableSchema.mjs.map +7 -0
- package/lib/benchmarks/swapi-schema/resolvers.d.ts.map +1 -1
- package/lib/benchmarks/swapi-schema/resolvers.js +53 -17
- package/lib/benchmarks/swapi-schema/resolvers.js.map +2 -2
- package/lib/benchmarks/swapi-schema/resolvers.mjs +54 -18
- package/lib/benchmarks/swapi-schema/resolvers.mjs.map +2 -2
- package/lib/collectFields.d.ts +27 -10
- package/lib/collectFields.d.ts.map +1 -1
- package/lib/collectFields.js +146 -80
- package/lib/collectFields.js.map +3 -3
- package/lib/collectFields.mjs +143 -81
- package/lib/collectFields.mjs.map +2 -2
- package/lib/executeWithSchema.d.ts +1 -1
- package/lib/executeWithSchema.d.ts.map +1 -1
- package/lib/executeWithSchema.js +7 -13
- package/lib/executeWithSchema.js.map +2 -2
- package/lib/executeWithSchema.mjs +9 -20
- package/lib/executeWithSchema.mjs.map +2 -2
- package/lib/executeWithoutSchema.d.ts +53 -16
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +1076 -274
- package/lib/executeWithoutSchema.js.map +3 -3
- package/lib/executeWithoutSchema.mjs +1092 -281
- package/lib/executeWithoutSchema.mjs.map +3 -3
- package/lib/index.d.ts +3 -9
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -7
- package/lib/index.js.map +2 -2
- package/lib/index.mjs +3 -10
- package/lib/index.mjs.map +2 -2
- package/lib/jsutils/AccumulatorMap.d.ts +8 -0
- package/lib/jsutils/AccumulatorMap.d.ts.map +1 -0
- package/lib/jsutils/AccumulatorMap.js +36 -0
- package/lib/jsutils/AccumulatorMap.js.map +7 -0
- package/lib/jsutils/AccumulatorMap.mjs +17 -0
- package/lib/jsutils/AccumulatorMap.mjs.map +7 -0
- package/lib/jsutils/didYouMean.d.ts +1 -2
- package/lib/jsutils/didYouMean.d.ts.map +1 -1
- package/lib/jsutils/didYouMean.js.map +2 -2
- package/lib/jsutils/didYouMean.mjs.map +2 -2
- package/lib/jsutils/instanceOf.js.map +2 -2
- package/lib/jsutils/instanceOf.mjs.map +2 -2
- package/lib/schema/definition.d.ts +95 -0
- package/lib/schema/definition.d.ts.map +1 -0
- package/lib/schema/definition.js +77 -0
- package/lib/schema/definition.js.map +7 -0
- package/lib/schema/definition.mjs +58 -0
- package/lib/schema/definition.mjs.map +7 -0
- package/lib/schema/directives.d.ts +41 -0
- package/lib/schema/directives.d.ts.map +1 -0
- package/lib/schema/directives.js +82 -0
- package/lib/schema/directives.js.map +7 -0
- package/lib/schema/directives.mjs +65 -0
- package/lib/schema/directives.mjs.map +7 -0
- package/lib/schema/fragment.d.ts +41 -0
- package/lib/schema/fragment.d.ts.map +1 -0
- package/lib/schema/fragment.js +270 -0
- package/lib/schema/fragment.js.map +7 -0
- package/lib/schema/fragment.mjs +267 -0
- package/lib/schema/fragment.mjs.map +7 -0
- package/lib/schema/reference.d.ts +12 -0
- package/lib/schema/reference.d.ts.map +1 -0
- package/lib/schema/reference.js +137 -0
- package/lib/schema/reference.js.map +7 -0
- package/lib/schema/reference.mjs +118 -0
- package/lib/schema/reference.mjs.map +7 -0
- package/lib/schema/resolvers.d.ts +9 -0
- package/lib/schema/resolvers.d.ts.map +1 -0
- package/lib/schema/resolvers.js +47 -0
- package/lib/schema/resolvers.js.map +7 -0
- package/lib/schema/resolvers.mjs +35 -0
- package/lib/schema/resolvers.mjs.map +7 -0
- package/lib/subscribeWithSchema.d.ts +3 -2
- package/lib/subscribeWithSchema.d.ts.map +1 -1
- package/lib/subscribeWithSchema.js +7 -13
- package/lib/subscribeWithSchema.js.map +2 -2
- package/lib/subscribeWithSchema.mjs +9 -20
- package/lib/subscribeWithSchema.mjs.map +2 -2
- package/lib/subscribeWithoutSchema.d.ts +3 -35
- package/lib/subscribeWithoutSchema.d.ts.map +1 -1
- package/lib/subscribeWithoutSchema.js +1 -163
- package/lib/subscribeWithoutSchema.js.map +2 -2
- package/lib/subscribeWithoutSchema.mjs +2 -175
- package/lib/subscribeWithoutSchema.mjs.map +2 -2
- package/lib/types.d.ts +71 -29
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +14 -0
- package/lib/types.js.map +2 -2
- package/lib/types.mjs +11 -0
- package/lib/types.mjs.map +3 -3
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts +9 -0
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.d.ts.map +1 -0
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.js +303 -0
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.js.map +7 -0
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs +317 -0
- package/lib/utilities/addMinimalViableSchemaToRequestDocument.mjs.map +7 -0
- package/lib/utilities/annotateDocumentGraphQLTransform.d.ts +3 -0
- package/lib/utilities/annotateDocumentGraphQLTransform.d.ts.map +1 -0
- package/lib/utilities/annotateDocumentGraphQLTransform.js +34 -0
- package/lib/utilities/annotateDocumentGraphQLTransform.js.map +7 -0
- package/lib/utilities/annotateDocumentGraphQLTransform.mjs +17 -0
- package/lib/utilities/annotateDocumentGraphQLTransform.mjs.map +7 -0
- package/lib/utilities/coerceInputValue.d.ts +10 -0
- package/lib/utilities/coerceInputValue.d.ts.map +1 -0
- package/lib/utilities/coerceInputValue.js +181 -0
- package/lib/utilities/coerceInputValue.js.map +7 -0
- package/lib/utilities/coerceInputValue.mjs +167 -0
- package/lib/utilities/coerceInputValue.mjs.map +7 -0
- package/lib/utilities/decodeASTSchema.d.ts +7 -0
- package/lib/utilities/decodeASTSchema.d.ts.map +1 -0
- package/lib/utilities/decodeASTSchema.js +243 -0
- package/lib/utilities/decodeASTSchema.js.map +7 -0
- package/lib/utilities/decodeASTSchema.mjs +242 -0
- package/lib/utilities/decodeASTSchema.mjs.map +7 -0
- package/lib/utilities/encodeASTSchema.d.ts +4 -0
- package/lib/utilities/encodeASTSchema.d.ts.map +1 -0
- package/lib/utilities/encodeASTSchema.js +122 -0
- package/lib/utilities/encodeASTSchema.js.map +7 -0
- package/lib/utilities/encodeASTSchema.mjs +105 -0
- package/lib/utilities/encodeASTSchema.mjs.map +7 -0
- package/lib/utilities/getSchemaFragment.d.ts +4 -0
- package/lib/utilities/getSchemaFragment.d.ts.map +1 -0
- package/lib/utilities/getSchemaFragment.js +38 -0
- package/lib/utilities/getSchemaFragment.js.map +7 -0
- package/lib/utilities/getSchemaFragment.mjs +22 -0
- package/lib/utilities/getSchemaFragment.mjs.map +7 -0
- package/lib/utilities/makeReadableErrorPath.d.ts +3 -0
- package/lib/utilities/makeReadableErrorPath.d.ts.map +1 -0
- package/lib/utilities/makeReadableErrorPath.js +47 -0
- package/lib/utilities/makeReadableErrorPath.js.map +7 -0
- package/lib/utilities/makeReadableErrorPath.mjs +28 -0
- package/lib/utilities/makeReadableErrorPath.mjs.map +7 -0
- package/lib/utilities/mergeDefinitions.d.ts +8 -0
- package/lib/utilities/mergeDefinitions.d.ts.map +1 -0
- package/lib/utilities/mergeDefinitions.js +126 -0
- package/lib/utilities/mergeDefinitions.js.map +7 -0
- package/lib/utilities/mergeDefinitions.mjs +114 -0
- package/lib/utilities/mergeDefinitions.mjs.map +7 -0
- package/lib/utilities/mergeResolvers.d.ts +1 -1
- package/lib/utilities/mergeResolvers.d.ts.map +1 -1
- package/lib/utilities/mergeResolvers.js.map +2 -2
- package/lib/utilities/mergeResolvers.mjs.map +2 -2
- package/lib/utilities/typeNameFromAST.d.ts +1 -1
- package/lib/utilities/typeNameFromAST.d.ts.map +1 -1
- package/lib/utilities/typeNameFromAST.js.map +2 -2
- package/lib/utilities/typeNameFromAST.mjs.map +2 -2
- package/lib/utilities/valueFromAST.d.ts +27 -0
- package/lib/utilities/valueFromAST.d.ts.map +1 -0
- package/lib/utilities/valueFromAST.js +139 -0
- package/lib/utilities/valueFromAST.js.map +7 -0
- package/lib/utilities/valueFromAST.mjs +125 -0
- package/lib/utilities/valueFromAST.mjs.map +7 -0
- package/lib/utilities/valueFromASTUntyped.d.ts +21 -0
- package/lib/utilities/valueFromASTUntyped.d.ts.map +1 -0
- package/lib/utilities/valueFromASTUntyped.js +51 -0
- package/lib/utilities/valueFromASTUntyped.js.map +7 -0
- package/lib/utilities/valueFromASTUntyped.mjs +32 -0
- package/lib/utilities/valueFromASTUntyped.mjs.map +7 -0
- package/lib/values.d.ts +8 -13
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js +83 -75
- package/lib/values.js.map +2 -2
- package/lib/values.mjs +85 -83
- package/lib/values.mjs.map +2 -2
- package/package.json +8 -9
- package/lib/definition.d.ts +0 -7
- package/lib/definition.d.ts.map +0 -1
- package/lib/definition.js +0 -59
- package/lib/definition.js.map +0 -7
- package/lib/definition.mjs +0 -40
- package/lib/definition.mjs.map +0 -7
- package/lib/directives.d.ts +0 -79
- package/lib/directives.d.ts.map +0 -1
- package/lib/directives.js +0 -160
- package/lib/directives.js.map +0 -7
- package/lib/directives.mjs +0 -146
- package/lib/directives.mjs.map +0 -7
- package/lib/extractImplicitTypesRuntime.d.ts +0 -4
- package/lib/extractImplicitTypesRuntime.d.ts.map +0 -1
- package/lib/extractImplicitTypesRuntime.js +0 -123
- package/lib/extractImplicitTypesRuntime.js.map +0 -7
- package/lib/extractImplicitTypesRuntime.mjs +0 -114
- package/lib/extractImplicitTypesRuntime.mjs.map +0 -7
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utilities/coerceInputValue.ts"],
|
|
4
|
+
"sourcesContent": ["import { GraphQLError } from \"graphql\";\nimport { didYouMean } from \"../jsutils/didYouMean\";\nimport { inspect } from \"../jsutils/inspect\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { isIterableObject } from \"../jsutils/isIterableObject\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\nimport type { Path } from \"../jsutils/Path\";\nimport { addPath, pathToArray } from \"../jsutils/Path\";\nimport { printPathArray } from \"../jsutils/printPathArray\";\nimport { suggestionList } from \"../jsutils/suggestionList\";\nimport { TypeReference } from \"../schema/definition\";\nimport { SchemaFragment } from \"../schema/fragment\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n unwrap,\n} from \"../schema/reference\";\n\ntype OnErrorCB = (\n path: ReadonlyArray<string | number>,\n invalidValue: unknown,\n error: GraphQLError,\n) => void;\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n */\nexport function coerceInputValue(\n inputValue: unknown,\n typeRef: TypeReference,\n schemaTypes: SchemaFragment,\n onError: OnErrorCB = defaultOnError,\n): unknown {\n return coerceInputValueImpl(\n inputValue,\n typeRef,\n schemaTypes,\n onError,\n undefined,\n );\n}\n\nfunction defaultOnError(\n path: ReadonlyArray<string | number>,\n invalidValue: unknown,\n error: GraphQLError,\n): void {\n let errorPrefix = \"Invalid value \" + inspect(invalidValue);\n if (path.length > 0) {\n errorPrefix += ` at \"value${printPathArray(path)}\"`;\n }\n error.message = errorPrefix + \": \" + error.message;\n throw error;\n}\n\nfunction coerceInputValueImpl(\n inputValue: unknown,\n typeRef: TypeReference,\n schemaTypes: SchemaFragment,\n onError: OnErrorCB,\n path: Path | undefined,\n): unknown {\n if (isNonNullType(typeRef)) {\n if (inputValue != null) {\n return coerceInputValueImpl(\n inputValue,\n unwrap(typeRef),\n schemaTypes,\n onError,\n path,\n );\n }\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Expected non-nullable type \"${inspectTypeReference(\n typeRef,\n )}\" not to be null.`,\n ),\n );\n return;\n }\n\n if (inputValue == null) {\n // Explicitly return the value null.\n return null;\n }\n\n if (isListType(typeRef)) {\n const itemType = unwrap(typeRef);\n if (isIterableObject(inputValue)) {\n return Array.from(inputValue, (itemValue, index) => {\n const itemPath = addPath(path, index, undefined);\n return coerceInputValueImpl(\n itemValue,\n itemType,\n schemaTypes,\n onError,\n itemPath,\n );\n });\n }\n // Lists accept a non-list value as a list of one.\n return [\n coerceInputValueImpl(inputValue, itemType, schemaTypes, onError, path),\n ];\n }\n\n const inputObjectType = schemaTypes.getInputObjectType(typeRef);\n if (inputObjectType) {\n const typeName = inspectTypeReference(typeRef);\n if (!isObjectLike(inputValue)) {\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(`Expected type \"${typeRef}\" to be an object.`),\n );\n return;\n }\n\n const coercedValue: Record<string, unknown> = {};\n const fieldDefs = schemaTypes.getInputObjectFields(inputObjectType);\n\n for (const [fieldName, field] of Object.entries(fieldDefs)) {\n const fieldValue = inputValue[fieldName];\n const defaultValue = schemaTypes.getInputDefaultValue(field);\n const fieldTypeRef = schemaTypes.getTypeReference(field);\n\n if (fieldValue === undefined) {\n if (defaultValue !== undefined) {\n coercedValue[fieldName] = defaultValue;\n } else if (isNonNullType(fieldTypeRef)) {\n const typeStr = inspectTypeReference(fieldTypeRef);\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Field \"${fieldName}\" of required type \"${typeStr}\" was not provided.`,\n ),\n );\n }\n continue;\n }\n\n coercedValue[fieldName] = coerceInputValueImpl(\n fieldValue,\n fieldTypeRef,\n schemaTypes,\n onError,\n addPath(path, fieldName, typeName),\n );\n }\n\n // Ensure every provided field is defined.\n for (const fieldName of Object.keys(inputValue)) {\n if (fieldDefs[fieldName] == null) {\n const suggestions = suggestionList(fieldName, Object.keys(fieldDefs));\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Field \"${fieldName}\" is not defined by type \"${typeName}\".` +\n didYouMean(suggestions),\n ),\n );\n }\n }\n return coercedValue;\n }\n\n const leafType = schemaTypes.getLeafTypeResolver(typeRef);\n if (leafType) {\n let parseResult;\n\n // Scalars and Enums determine if an input value is valid via parseValue(),\n // which can throw to indicate failure. If it throws, maintain a reference\n // to the original error.\n try {\n parseResult = leafType.parseValue(inputValue);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(pathToArray(path), inputValue, error);\n } else {\n const typeName = inspectTypeReference(typeRef);\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Expected type \"${typeName}\". ` + (error as Error).message,\n {\n originalError: error as Error,\n },\n ),\n );\n }\n return;\n }\n if (parseResult === undefined) {\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(`Expected type \"${inspectTypeReference(typeRef)}\".`),\n );\n }\n return parseResult;\n }\n /* c8 ignore next 3 */\n // Not reachable, all possible types have been considered.\n invariant(false, \"Unexpected input type: \" + inspectTypeReference(typeRef));\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// src/utilities/coerceInputValue.ts
|
|
2
|
+
import { GraphQLError } from "graphql";
|
|
3
|
+
import { didYouMean } from "../jsutils/didYouMean.mjs";
|
|
4
|
+
import { inspect } from "../jsutils/inspect.mjs";
|
|
5
|
+
import { invariant } from "../jsutils/invariant.mjs";
|
|
6
|
+
import { isIterableObject } from "../jsutils/isIterableObject.mjs";
|
|
7
|
+
import { isObjectLike } from "../jsutils/isObjectLike.mjs";
|
|
8
|
+
import { addPath, pathToArray } from "../jsutils/Path.mjs";
|
|
9
|
+
import { printPathArray } from "../jsutils/printPathArray.mjs";
|
|
10
|
+
import { suggestionList } from "../jsutils/suggestionList.mjs";
|
|
11
|
+
import {
|
|
12
|
+
inspectTypeReference,
|
|
13
|
+
isListType,
|
|
14
|
+
isNonNullType,
|
|
15
|
+
unwrap
|
|
16
|
+
} from "../schema/reference.mjs";
|
|
17
|
+
function coerceInputValue(inputValue, typeRef, schemaTypes, onError = defaultOnError) {
|
|
18
|
+
return coerceInputValueImpl(
|
|
19
|
+
inputValue,
|
|
20
|
+
typeRef,
|
|
21
|
+
schemaTypes,
|
|
22
|
+
onError,
|
|
23
|
+
void 0
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
function defaultOnError(path, invalidValue, error) {
|
|
27
|
+
let errorPrefix = "Invalid value " + inspect(invalidValue);
|
|
28
|
+
if (path.length > 0) {
|
|
29
|
+
errorPrefix += ` at "value${printPathArray(path)}"`;
|
|
30
|
+
}
|
|
31
|
+
error.message = errorPrefix + ": " + error.message;
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
function coerceInputValueImpl(inputValue, typeRef, schemaTypes, onError, path) {
|
|
35
|
+
if (isNonNullType(typeRef)) {
|
|
36
|
+
if (inputValue != null) {
|
|
37
|
+
return coerceInputValueImpl(
|
|
38
|
+
inputValue,
|
|
39
|
+
unwrap(typeRef),
|
|
40
|
+
schemaTypes,
|
|
41
|
+
onError,
|
|
42
|
+
path
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
onError(
|
|
46
|
+
pathToArray(path),
|
|
47
|
+
inputValue,
|
|
48
|
+
new GraphQLError(
|
|
49
|
+
`Expected non-nullable type "${inspectTypeReference(
|
|
50
|
+
typeRef
|
|
51
|
+
)}" not to be null.`
|
|
52
|
+
)
|
|
53
|
+
);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (inputValue == null) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
if (isListType(typeRef)) {
|
|
60
|
+
const itemType = unwrap(typeRef);
|
|
61
|
+
if (isIterableObject(inputValue)) {
|
|
62
|
+
return Array.from(inputValue, (itemValue, index) => {
|
|
63
|
+
const itemPath = addPath(path, index, void 0);
|
|
64
|
+
return coerceInputValueImpl(
|
|
65
|
+
itemValue,
|
|
66
|
+
itemType,
|
|
67
|
+
schemaTypes,
|
|
68
|
+
onError,
|
|
69
|
+
itemPath
|
|
70
|
+
);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
return [
|
|
74
|
+
coerceInputValueImpl(inputValue, itemType, schemaTypes, onError, path)
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
const inputObjectType = schemaTypes.getInputObjectType(typeRef);
|
|
78
|
+
if (inputObjectType) {
|
|
79
|
+
const typeName = inspectTypeReference(typeRef);
|
|
80
|
+
if (!isObjectLike(inputValue)) {
|
|
81
|
+
onError(
|
|
82
|
+
pathToArray(path),
|
|
83
|
+
inputValue,
|
|
84
|
+
new GraphQLError(`Expected type "${typeRef}" to be an object.`)
|
|
85
|
+
);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const coercedValue = {};
|
|
89
|
+
const fieldDefs = schemaTypes.getInputObjectFields(inputObjectType);
|
|
90
|
+
for (const [fieldName, field] of Object.entries(fieldDefs)) {
|
|
91
|
+
const fieldValue = inputValue[fieldName];
|
|
92
|
+
const defaultValue = schemaTypes.getInputDefaultValue(field);
|
|
93
|
+
const fieldTypeRef = schemaTypes.getTypeReference(field);
|
|
94
|
+
if (fieldValue === void 0) {
|
|
95
|
+
if (defaultValue !== void 0) {
|
|
96
|
+
coercedValue[fieldName] = defaultValue;
|
|
97
|
+
} else if (isNonNullType(fieldTypeRef)) {
|
|
98
|
+
const typeStr = inspectTypeReference(fieldTypeRef);
|
|
99
|
+
onError(
|
|
100
|
+
pathToArray(path),
|
|
101
|
+
inputValue,
|
|
102
|
+
new GraphQLError(
|
|
103
|
+
`Field "${fieldName}" of required type "${typeStr}" was not provided.`
|
|
104
|
+
)
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
coercedValue[fieldName] = coerceInputValueImpl(
|
|
110
|
+
fieldValue,
|
|
111
|
+
fieldTypeRef,
|
|
112
|
+
schemaTypes,
|
|
113
|
+
onError,
|
|
114
|
+
addPath(path, fieldName, typeName)
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
for (const fieldName of Object.keys(inputValue)) {
|
|
118
|
+
if (fieldDefs[fieldName] == null) {
|
|
119
|
+
const suggestions = suggestionList(fieldName, Object.keys(fieldDefs));
|
|
120
|
+
onError(
|
|
121
|
+
pathToArray(path),
|
|
122
|
+
inputValue,
|
|
123
|
+
new GraphQLError(
|
|
124
|
+
`Field "${fieldName}" is not defined by type "${typeName}".` + didYouMean(suggestions)
|
|
125
|
+
)
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return coercedValue;
|
|
130
|
+
}
|
|
131
|
+
const leafType = schemaTypes.getLeafTypeResolver(typeRef);
|
|
132
|
+
if (leafType) {
|
|
133
|
+
let parseResult;
|
|
134
|
+
try {
|
|
135
|
+
parseResult = leafType.parseValue(inputValue);
|
|
136
|
+
} catch (error) {
|
|
137
|
+
if (error instanceof GraphQLError) {
|
|
138
|
+
onError(pathToArray(path), inputValue, error);
|
|
139
|
+
} else {
|
|
140
|
+
const typeName = inspectTypeReference(typeRef);
|
|
141
|
+
onError(
|
|
142
|
+
pathToArray(path),
|
|
143
|
+
inputValue,
|
|
144
|
+
new GraphQLError(
|
|
145
|
+
`Expected type "${typeName}". ` + error.message,
|
|
146
|
+
{
|
|
147
|
+
originalError: error
|
|
148
|
+
}
|
|
149
|
+
)
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
if (parseResult === void 0) {
|
|
155
|
+
onError(
|
|
156
|
+
pathToArray(path),
|
|
157
|
+
inputValue,
|
|
158
|
+
new GraphQLError(`Expected type "${inspectTypeReference(typeRef)}".`)
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
return parseResult;
|
|
162
|
+
}
|
|
163
|
+
invariant(false, "Unexpected input type: " + inspectTypeReference(typeRef));
|
|
164
|
+
}
|
|
165
|
+
export {
|
|
166
|
+
coerceInputValue
|
|
167
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utilities/coerceInputValue.ts"],
|
|
4
|
+
"sourcesContent": ["import { GraphQLError } from \"graphql\";\nimport { didYouMean } from \"../jsutils/didYouMean\";\nimport { inspect } from \"../jsutils/inspect\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { isIterableObject } from \"../jsutils/isIterableObject\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\nimport type { Path } from \"../jsutils/Path\";\nimport { addPath, pathToArray } from \"../jsutils/Path\";\nimport { printPathArray } from \"../jsutils/printPathArray\";\nimport { suggestionList } from \"../jsutils/suggestionList\";\nimport { TypeReference } from \"../schema/definition\";\nimport { SchemaFragment } from \"../schema/fragment\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n unwrap,\n} from \"../schema/reference\";\n\ntype OnErrorCB = (\n path: ReadonlyArray<string | number>,\n invalidValue: unknown,\n error: GraphQLError,\n) => void;\n\n/**\n * Coerces a JavaScript value given a GraphQL Input Type.\n */\nexport function coerceInputValue(\n inputValue: unknown,\n typeRef: TypeReference,\n schemaTypes: SchemaFragment,\n onError: OnErrorCB = defaultOnError,\n): unknown {\n return coerceInputValueImpl(\n inputValue,\n typeRef,\n schemaTypes,\n onError,\n undefined,\n );\n}\n\nfunction defaultOnError(\n path: ReadonlyArray<string | number>,\n invalidValue: unknown,\n error: GraphQLError,\n): void {\n let errorPrefix = \"Invalid value \" + inspect(invalidValue);\n if (path.length > 0) {\n errorPrefix += ` at \"value${printPathArray(path)}\"`;\n }\n error.message = errorPrefix + \": \" + error.message;\n throw error;\n}\n\nfunction coerceInputValueImpl(\n inputValue: unknown,\n typeRef: TypeReference,\n schemaTypes: SchemaFragment,\n onError: OnErrorCB,\n path: Path | undefined,\n): unknown {\n if (isNonNullType(typeRef)) {\n if (inputValue != null) {\n return coerceInputValueImpl(\n inputValue,\n unwrap(typeRef),\n schemaTypes,\n onError,\n path,\n );\n }\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Expected non-nullable type \"${inspectTypeReference(\n typeRef,\n )}\" not to be null.`,\n ),\n );\n return;\n }\n\n if (inputValue == null) {\n // Explicitly return the value null.\n return null;\n }\n\n if (isListType(typeRef)) {\n const itemType = unwrap(typeRef);\n if (isIterableObject(inputValue)) {\n return Array.from(inputValue, (itemValue, index) => {\n const itemPath = addPath(path, index, undefined);\n return coerceInputValueImpl(\n itemValue,\n itemType,\n schemaTypes,\n onError,\n itemPath,\n );\n });\n }\n // Lists accept a non-list value as a list of one.\n return [\n coerceInputValueImpl(inputValue, itemType, schemaTypes, onError, path),\n ];\n }\n\n const inputObjectType = schemaTypes.getInputObjectType(typeRef);\n if (inputObjectType) {\n const typeName = inspectTypeReference(typeRef);\n if (!isObjectLike(inputValue)) {\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(`Expected type \"${typeRef}\" to be an object.`),\n );\n return;\n }\n\n const coercedValue: Record<string, unknown> = {};\n const fieldDefs = schemaTypes.getInputObjectFields(inputObjectType);\n\n for (const [fieldName, field] of Object.entries(fieldDefs)) {\n const fieldValue = inputValue[fieldName];\n const defaultValue = schemaTypes.getInputDefaultValue(field);\n const fieldTypeRef = schemaTypes.getTypeReference(field);\n\n if (fieldValue === undefined) {\n if (defaultValue !== undefined) {\n coercedValue[fieldName] = defaultValue;\n } else if (isNonNullType(fieldTypeRef)) {\n const typeStr = inspectTypeReference(fieldTypeRef);\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Field \"${fieldName}\" of required type \"${typeStr}\" was not provided.`,\n ),\n );\n }\n continue;\n }\n\n coercedValue[fieldName] = coerceInputValueImpl(\n fieldValue,\n fieldTypeRef,\n schemaTypes,\n onError,\n addPath(path, fieldName, typeName),\n );\n }\n\n // Ensure every provided field is defined.\n for (const fieldName of Object.keys(inputValue)) {\n if (fieldDefs[fieldName] == null) {\n const suggestions = suggestionList(fieldName, Object.keys(fieldDefs));\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Field \"${fieldName}\" is not defined by type \"${typeName}\".` +\n didYouMean(suggestions),\n ),\n );\n }\n }\n return coercedValue;\n }\n\n const leafType = schemaTypes.getLeafTypeResolver(typeRef);\n if (leafType) {\n let parseResult;\n\n // Scalars and Enums determine if an input value is valid via parseValue(),\n // which can throw to indicate failure. If it throws, maintain a reference\n // to the original error.\n try {\n parseResult = leafType.parseValue(inputValue);\n } catch (error) {\n if (error instanceof GraphQLError) {\n onError(pathToArray(path), inputValue, error);\n } else {\n const typeName = inspectTypeReference(typeRef);\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(\n `Expected type \"${typeName}\". ` + (error as Error).message,\n {\n originalError: error as Error,\n },\n ),\n );\n }\n return;\n }\n if (parseResult === undefined) {\n onError(\n pathToArray(path),\n inputValue,\n new GraphQLError(`Expected type \"${inspectTypeReference(typeRef)}\".`),\n );\n }\n return parseResult;\n }\n /* c8 ignore next 3 */\n // Not reachable, all possible types have been considered.\n invariant(false, \"Unexpected input type: \" + inspectTypeReference(typeRef));\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,wBAAwB;AACjC,SAAS,oBAAoB;AAE7B,SAAS,SAAS,mBAAmB;AACrC,SAAS,sBAAsB;AAC/B,SAAS,sBAAsB;AAG/B;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAWA,SAAS,iBACd,YACA,SACA,aACA,UAAqB,gBACZ;AACT,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,SAAS,eACP,MACA,cACA,OACM;AACN,MAAI,cAAc,mBAAmB,QAAQ,YAAY;AACzD,MAAI,KAAK,SAAS,GAAG;AACnB,mBAAe,aAAa,eAAe,IAAI;AAAA,EACjD;AACA,QAAM,UAAU,cAAc,OAAO,MAAM;AAC3C,QAAM;AACR;AAEA,SAAS,qBACP,YACA,SACA,aACA,SACA,MACS;AACT,MAAI,cAAc,OAAO,GAAG;AAC1B,QAAI,cAAc,MAAM;AACtB,aAAO;AAAA,QACL;AAAA,QACA,OAAO,OAAO;AAAA,QACd;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA;AAAA,MACE,YAAY,IAAI;AAAA,MAChB;AAAA,MACA,IAAI;AAAA,QACF,+BAA+B;AAAA,UAC7B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA;AAAA,EACF;AAEA,MAAI,cAAc,MAAM;AAEtB,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,OAAO,GAAG;AACvB,UAAM,WAAW,OAAO,OAAO;AAC/B,QAAI,iBAAiB,UAAU,GAAG;AAChC,aAAO,MAAM,KAAK,YAAY,CAAC,WAAW,UAAU;AAClD,cAAM,WAAW,QAAQ,MAAM,OAAO,MAAS;AAC/C,eAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL,qBAAqB,YAAY,UAAU,aAAa,SAAS,IAAI;AAAA,IACvE;AAAA,EACF;AAEA,QAAM,kBAAkB,YAAY,mBAAmB,OAAO;AAC9D,MAAI,iBAAiB;AACnB,UAAM,WAAW,qBAAqB,OAAO;AAC7C,QAAI,CAAC,aAAa,UAAU,GAAG;AAC7B;AAAA,QACE,YAAY,IAAI;AAAA,QAChB;AAAA,QACA,IAAI,aAAa,kBAAkB,2BAA2B;AAAA,MAChE;AACA;AAAA,IACF;AAEA,UAAM,eAAwC,CAAC;AAC/C,UAAM,YAAY,YAAY,qBAAqB,eAAe;AAElE,eAAW,CAAC,WAAW,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC1D,YAAM,aAAa,WAAW,SAAS;AACvC,YAAM,eAAe,YAAY,qBAAqB,KAAK;AAC3D,YAAM,eAAe,YAAY,iBAAiB,KAAK;AAEvD,UAAI,eAAe,QAAW;AAC5B,YAAI,iBAAiB,QAAW;AAC9B,uBAAa,SAAS,IAAI;AAAA,QAC5B,WAAW,cAAc,YAAY,GAAG;AACtC,gBAAM,UAAU,qBAAqB,YAAY;AACjD;AAAA,YACE,YAAY,IAAI;AAAA,YAChB;AAAA,YACA,IAAI;AAAA,cACF,UAAU,gCAAgC;AAAA,YAC5C;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAEA,mBAAa,SAAS,IAAI;AAAA,QACxB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,MAAM,WAAW,QAAQ;AAAA,MACnC;AAAA,IACF;AAGA,eAAW,aAAa,OAAO,KAAK,UAAU,GAAG;AAC/C,UAAI,UAAU,SAAS,KAAK,MAAM;AAChC,cAAM,cAAc,eAAe,WAAW,OAAO,KAAK,SAAS,CAAC;AACpE;AAAA,UACE,YAAY,IAAI;AAAA,UAChB;AAAA,UACA,IAAI;AAAA,YACF,UAAU,sCAAsC,eAC9C,WAAW,WAAW;AAAA,UAC1B;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAEA,QAAM,WAAW,YAAY,oBAAoB,OAAO;AACxD,MAAI,UAAU;AACZ,QAAI;AAKJ,QAAI;AACF,oBAAc,SAAS,WAAW,UAAU;AAAA,IAC9C,SAAS,OAAP;AACA,UAAI,iBAAiB,cAAc;AACjC,gBAAQ,YAAY,IAAI,GAAG,YAAY,KAAK;AAAA,MAC9C,OAAO;AACL,cAAM,WAAW,qBAAqB,OAAO;AAC7C;AAAA,UACE,YAAY,IAAI;AAAA,UAChB;AAAA,UACA,IAAI;AAAA,YACF,kBAAkB,gBAAiB,MAAgB;AAAA,YACnD;AAAA,cACE,eAAe;AAAA,YACjB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AACA,QAAI,gBAAgB,QAAW;AAC7B;AAAA,QACE,YAAY,IAAI;AAAA,QAChB;AAAA,QACA,IAAI,aAAa,kBAAkB,qBAAqB,OAAO,KAAK;AAAA,MACtE;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGA,YAAU,OAAO,4BAA4B,qBAAqB,OAAO,CAAC;AAC5E;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DocumentNode } from "graphql";
|
|
2
|
+
import { SchemaFragmentDefinitions } from "../schema/definition";
|
|
3
|
+
/**
|
|
4
|
+
* Converts encoded schema to standard AST representation of the same schema
|
|
5
|
+
*/
|
|
6
|
+
export declare function decodeSchema(encodedSchema: SchemaFragmentDefinitions): DocumentNode;
|
|
7
|
+
//# sourceMappingURL=decodeASTSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodeASTSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/decodeASTSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,EAcb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAGL,yBAAyB,EAkB1B,MAAM,sBAAsB,CAAC;AAY9B;;GAEG;AACH,wBAAgB,YAAY,CAC1B,aAAa,EAAE,yBAAyB,GACvC,YAAY,CAiCd"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var decodeASTSchema_exports = {};
|
|
20
|
+
__export(decodeASTSchema_exports, {
|
|
21
|
+
decodeSchema: () => decodeSchema
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(decodeASTSchema_exports);
|
|
24
|
+
var import_graphql = require("graphql");
|
|
25
|
+
var import_definition = require("../schema/definition");
|
|
26
|
+
var import_reference = require("../schema/reference");
|
|
27
|
+
var import_invariant = require("../jsutils/invariant");
|
|
28
|
+
var import_inspect = require("../jsutils/inspect");
|
|
29
|
+
function decodeSchema(encodedSchema) {
|
|
30
|
+
var _a;
|
|
31
|
+
const definitions = [];
|
|
32
|
+
const types = encodedSchema.types;
|
|
33
|
+
for (const typeName in types) {
|
|
34
|
+
const tuple = types[typeName];
|
|
35
|
+
switch (tuple[0]) {
|
|
36
|
+
case import_definition.TypeKind.SCALAR:
|
|
37
|
+
definitions.push(decodeScalarType(typeName));
|
|
38
|
+
break;
|
|
39
|
+
case import_definition.TypeKind.ENUM:
|
|
40
|
+
definitions.push(decodeEnumType(typeName, tuple));
|
|
41
|
+
break;
|
|
42
|
+
case import_definition.TypeKind.OBJECT:
|
|
43
|
+
definitions.push(decodeObjectType(typeName, tuple, types));
|
|
44
|
+
break;
|
|
45
|
+
case import_definition.TypeKind.INTERFACE:
|
|
46
|
+
definitions.push(decodeInterfaceType(typeName, tuple, types));
|
|
47
|
+
break;
|
|
48
|
+
case import_definition.TypeKind.UNION:
|
|
49
|
+
definitions.push(decodeUnionType(typeName, tuple));
|
|
50
|
+
break;
|
|
51
|
+
case import_definition.TypeKind.INPUT:
|
|
52
|
+
definitions.push(decodeInputObjectType(typeName, tuple, types));
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
for (const directive of (_a = encodedSchema.directives) != null ? _a : []) {
|
|
57
|
+
definitions.push(decodeDirective(directive, types));
|
|
58
|
+
}
|
|
59
|
+
return { kind: import_graphql.Kind.DOCUMENT, definitions };
|
|
60
|
+
}
|
|
61
|
+
function nameNode(value) {
|
|
62
|
+
return { kind: import_graphql.Kind.NAME, value };
|
|
63
|
+
}
|
|
64
|
+
function decodeScalarType(typeName) {
|
|
65
|
+
return {
|
|
66
|
+
kind: import_graphql.Kind.SCALAR_TYPE_DEFINITION,
|
|
67
|
+
name: nameNode(typeName)
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function decodeEnumType(typeName, tuple) {
|
|
71
|
+
return {
|
|
72
|
+
kind: import_graphql.Kind.ENUM_TYPE_DEFINITION,
|
|
73
|
+
name: nameNode(typeName),
|
|
74
|
+
values: tuple[import_definition.EnumKeys.values].map((value) => ({
|
|
75
|
+
kind: import_graphql.Kind.ENUM_VALUE_DEFINITION,
|
|
76
|
+
name: nameNode(value)
|
|
77
|
+
}))
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function decodeObjectType(typeName, tuple, types) {
|
|
81
|
+
return {
|
|
82
|
+
kind: import_graphql.Kind.OBJECT_TYPE_DEFINITION,
|
|
83
|
+
name: nameNode(typeName),
|
|
84
|
+
fields: decodeFields(tuple[import_definition.ObjectKeys.fields], types),
|
|
85
|
+
interfaces: (tuple[import_definition.ObjectKeys.interfaces] || []).map((name) => ({
|
|
86
|
+
kind: import_graphql.Kind.NAMED_TYPE,
|
|
87
|
+
name: nameNode(name)
|
|
88
|
+
}))
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
function decodeInterfaceType(typeName, tuple, types) {
|
|
92
|
+
return {
|
|
93
|
+
kind: import_graphql.Kind.INTERFACE_TYPE_DEFINITION,
|
|
94
|
+
name: nameNode(typeName),
|
|
95
|
+
fields: decodeFields(tuple[import_definition.InterfaceKeys.fields], types),
|
|
96
|
+
interfaces: (tuple[import_definition.InterfaceKeys.interfaces] || []).map((name) => ({
|
|
97
|
+
kind: import_graphql.Kind.NAMED_TYPE,
|
|
98
|
+
name: nameNode(name)
|
|
99
|
+
}))
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function decodeUnionType(typeName, tuple) {
|
|
103
|
+
return {
|
|
104
|
+
kind: import_graphql.Kind.UNION_TYPE_DEFINITION,
|
|
105
|
+
name: nameNode(typeName),
|
|
106
|
+
types: tuple[import_definition.UnionKeys.types].map((name) => ({
|
|
107
|
+
kind: import_graphql.Kind.NAMED_TYPE,
|
|
108
|
+
name: nameNode(name)
|
|
109
|
+
}))
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function decodeInputObjectType(typeName, tuple, types) {
|
|
113
|
+
return {
|
|
114
|
+
kind: import_graphql.Kind.INPUT_OBJECT_TYPE_DEFINITION,
|
|
115
|
+
name: nameNode(typeName),
|
|
116
|
+
fields: Object.entries(tuple[import_definition.InputObjectKeys.fields]).map(
|
|
117
|
+
([name, value]) => decodeInputValue(name, value, types)
|
|
118
|
+
)
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
function decodeFields(fields, types) {
|
|
122
|
+
return Object.entries(fields).map(([name, value]) => {
|
|
123
|
+
var _a;
|
|
124
|
+
const type = Array.isArray(value) ? decodeTypeReference(value[import_definition.FieldKeys.type]) : decodeTypeReference(value);
|
|
125
|
+
return {
|
|
126
|
+
kind: import_graphql.Kind.FIELD_DEFINITION,
|
|
127
|
+
name: nameNode(name),
|
|
128
|
+
type,
|
|
129
|
+
arguments: decodeArguments(
|
|
130
|
+
Array.isArray(value) ? (_a = value[import_definition.FieldKeys.arguments]) != null ? _a : {} : {},
|
|
131
|
+
types
|
|
132
|
+
)
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
function decodeInputValue(name, value, types) {
|
|
137
|
+
const type = Array.isArray(value) ? decodeTypeReference(value[import_definition.InputValueKeys.type]) : decodeTypeReference(value);
|
|
138
|
+
return {
|
|
139
|
+
kind: import_graphql.Kind.INPUT_VALUE_DEFINITION,
|
|
140
|
+
name: nameNode(name),
|
|
141
|
+
type,
|
|
142
|
+
defaultValue: Array.isArray(value) ? valueToConstValueNode(
|
|
143
|
+
value[import_definition.InputValueKeys.defaultValue],
|
|
144
|
+
value[import_definition.InputValueKeys.type],
|
|
145
|
+
types
|
|
146
|
+
) : void 0
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function valueToConstValueNode(jsValue, typeRef, types) {
|
|
150
|
+
const typeName = (0, import_reference.typeNameFromReference)(typeRef);
|
|
151
|
+
if (typeof jsValue === "string") {
|
|
152
|
+
return typeName === "String" ? { kind: import_graphql.Kind.STRING, value: jsValue } : { kind: import_graphql.Kind.ENUM, value: jsValue };
|
|
153
|
+
}
|
|
154
|
+
if (jsValue === null) {
|
|
155
|
+
(0, import_invariant.invariant)(!(0, import_reference.isNonNullType)(typeRef), "Expecting nullable type");
|
|
156
|
+
return { kind: import_graphql.Kind.NULL };
|
|
157
|
+
}
|
|
158
|
+
if (Number.isInteger(jsValue)) {
|
|
159
|
+
return { kind: import_graphql.Kind.INT, value: String(jsValue) };
|
|
160
|
+
}
|
|
161
|
+
if (typeof jsValue === "number") {
|
|
162
|
+
return { kind: import_graphql.Kind.FLOAT, value: String(jsValue) };
|
|
163
|
+
}
|
|
164
|
+
if (Array.isArray(jsValue)) {
|
|
165
|
+
(0, import_invariant.invariant)((0, import_reference.isListType)(typeRef), "Expecting list type");
|
|
166
|
+
return {
|
|
167
|
+
kind: import_graphql.Kind.LIST,
|
|
168
|
+
values: jsValue.map(
|
|
169
|
+
(item) => valueToConstValueNode(item, (0, import_reference.unwrap)(typeRef), types)
|
|
170
|
+
)
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
if (typeof jsValue === "object") {
|
|
174
|
+
const typeDef = types[typeName];
|
|
175
|
+
(0, import_invariant.invariant)(
|
|
176
|
+
Array.isArray(typeDef) && typeDef[0] === import_definition.TypeKind.INPUT,
|
|
177
|
+
`Expecting input object type for ${typeName}, got ${typeDef == null ? void 0 : typeDef[0]}`
|
|
178
|
+
);
|
|
179
|
+
const fields = typeDef[import_definition.InputObjectKeys.fields];
|
|
180
|
+
return {
|
|
181
|
+
kind: import_graphql.Kind.OBJECT,
|
|
182
|
+
fields: Object.entries(jsValue).map(([name, value]) => {
|
|
183
|
+
const fieldDef = fields[name];
|
|
184
|
+
const fieldTypeRef = Array.isArray(fieldDef) ? fieldDef[import_definition.FieldKeys.type] : fieldDef;
|
|
185
|
+
(0, import_invariant.invariant)(
|
|
186
|
+
fieldTypeRef !== void 0,
|
|
187
|
+
`Could not find field definition for ${typeName}.${name}`
|
|
188
|
+
);
|
|
189
|
+
return {
|
|
190
|
+
kind: import_graphql.Kind.OBJECT_FIELD,
|
|
191
|
+
name: nameNode(name),
|
|
192
|
+
value: valueToConstValueNode(value, fieldTypeRef, types)
|
|
193
|
+
};
|
|
194
|
+
})
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
(0, import_invariant.invariant)(
|
|
198
|
+
false,
|
|
199
|
+
`Unexpected value for type ${(0, import_reference.inspectTypeReference)(typeRef)}: ${(0, import_inspect.inspect)(
|
|
200
|
+
jsValue
|
|
201
|
+
)}`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
function decodeArguments(args, types) {
|
|
205
|
+
return Object.entries(args).map(
|
|
206
|
+
([name, value]) => decodeInputValue(name, value, types)
|
|
207
|
+
);
|
|
208
|
+
}
|
|
209
|
+
function decodeTypeReference(ref) {
|
|
210
|
+
if ((0, import_reference.isListType)(ref)) {
|
|
211
|
+
return {
|
|
212
|
+
kind: import_graphql.Kind.LIST_TYPE,
|
|
213
|
+
type: decodeTypeReference((0, import_reference.unwrap)(ref))
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
if ((0, import_reference.isNonNullType)(ref)) {
|
|
217
|
+
const unwrappedType = decodeTypeReference((0, import_reference.unwrap)(ref));
|
|
218
|
+
(0, import_invariant.invariant)(
|
|
219
|
+
unwrappedType.kind !== import_graphql.Kind.NON_NULL_TYPE,
|
|
220
|
+
"Non-null modifier cannot be nested"
|
|
221
|
+
);
|
|
222
|
+
return {
|
|
223
|
+
kind: import_graphql.Kind.NON_NULL_TYPE,
|
|
224
|
+
type: unwrappedType
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
return {
|
|
228
|
+
kind: import_graphql.Kind.NAMED_TYPE,
|
|
229
|
+
name: nameNode((0, import_reference.typeNameFromReference)(ref))
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
function decodeDirective(tuple, types) {
|
|
233
|
+
const name = tuple[import_definition.DirectiveKeys.name];
|
|
234
|
+
const args = tuple[import_definition.DirectiveKeys.arguments] ? decodeArguments(tuple[import_definition.DirectiveKeys.arguments], types) : [];
|
|
235
|
+
return {
|
|
236
|
+
kind: import_graphql.Kind.DIRECTIVE_DEFINITION,
|
|
237
|
+
name: nameNode(name),
|
|
238
|
+
arguments: args,
|
|
239
|
+
// TODO? locations and repeatable are irrelevant for execution
|
|
240
|
+
repeatable: false,
|
|
241
|
+
locations: []
|
|
242
|
+
};
|
|
243
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/utilities/decodeASTSchema.ts"],
|
|
4
|
+
"sourcesContent": ["import {\n DirectiveDefinitionNode,\n DocumentNode,\n EnumTypeDefinitionNode,\n FieldDefinitionNode,\n InputObjectTypeDefinitionNode,\n InputValueDefinitionNode,\n InterfaceTypeDefinitionNode,\n Kind,\n ListTypeNode,\n NamedTypeNode,\n NameNode,\n NonNullTypeNode,\n ObjectTypeDefinitionNode,\n ScalarTypeDefinitionNode,\n UnionTypeDefinitionNode,\n} from \"graphql\";\n\nimport {\n DirectiveDefinitionTuple,\n DirectiveKeys,\n SchemaFragmentDefinitions,\n EnumKeys,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n FieldKeys,\n InputObjectKeys,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InputValueKeys,\n InterfaceKeys,\n InterfaceTypeDefinitionTuple,\n ObjectKeys,\n ObjectTypeDefinitionTuple,\n TypeDefinitionsRecord,\n TypeKind,\n TypeReference,\n UnionKeys,\n UnionTypeDefinitionTuple,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n typeNameFromReference,\n unwrap,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { ConstValueNode } from \"graphql/language/ast\";\nimport { inspect } from \"../jsutils/inspect\";\n\n/**\n * Converts encoded schema to standard AST representation of the same schema\n */\nexport function decodeSchema(\n encodedSchema: SchemaFragmentDefinitions,\n): DocumentNode {\n const definitions = [];\n const types = encodedSchema.types;\n\n for (const typeName in types) {\n const tuple = types[typeName];\n switch (tuple[0]) {\n case TypeKind.SCALAR:\n definitions.push(decodeScalarType(typeName));\n break;\n case TypeKind.ENUM:\n definitions.push(decodeEnumType(typeName, tuple));\n break;\n case TypeKind.OBJECT:\n definitions.push(decodeObjectType(typeName, tuple, types));\n break;\n case TypeKind.INTERFACE:\n definitions.push(decodeInterfaceType(typeName, tuple, types));\n break;\n case TypeKind.UNION:\n definitions.push(decodeUnionType(typeName, tuple));\n break;\n case TypeKind.INPUT:\n definitions.push(decodeInputObjectType(typeName, tuple, types));\n break;\n }\n }\n\n for (const directive of encodedSchema.directives ?? []) {\n definitions.push(decodeDirective(directive, types));\n }\n\n return { kind: Kind.DOCUMENT, definitions };\n}\n\nfunction nameNode(value: string): NameNode {\n return { kind: Kind.NAME, value };\n}\n\nfunction decodeScalarType(typeName: string): ScalarTypeDefinitionNode {\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n name: nameNode(typeName),\n };\n}\n\nfunction decodeEnumType(\n typeName: string,\n tuple: EnumTypeDefinitionTuple,\n): EnumTypeDefinitionNode {\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n name: nameNode(typeName),\n values: tuple[EnumKeys.values].map((value) => ({\n kind: Kind.ENUM_VALUE_DEFINITION,\n name: nameNode(value),\n })),\n };\n}\n\nfunction decodeObjectType(\n typeName: string,\n tuple: ObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n): ObjectTypeDefinitionNode {\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(tuple[ObjectKeys.fields], types),\n interfaces: (tuple[ObjectKeys.interfaces] || []).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n };\n}\n\nfunction decodeInterfaceType(\n typeName: string,\n tuple: InterfaceTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n): InterfaceTypeDefinitionNode {\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(tuple[InterfaceKeys.fields], types),\n interfaces: (tuple[InterfaceKeys.interfaces] || []).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n };\n}\n\nfunction decodeUnionType(\n typeName: string,\n tuple: UnionTypeDefinitionTuple,\n): UnionTypeDefinitionNode {\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n name: nameNode(typeName),\n types: tuple[UnionKeys.types].map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n };\n}\n\nfunction decodeInputObjectType(\n typeName: string,\n tuple: InputObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n): InputObjectTypeDefinitionNode {\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: Object.entries(tuple[InputObjectKeys.fields]).map(([name, value]) =>\n decodeInputValue(name, value, types),\n ),\n };\n}\n\nfunction decodeFields(\n fields: Record<string, FieldDefinition>,\n types: TypeDefinitionsRecord,\n): FieldDefinitionNode[] {\n return Object.entries(fields).map(([name, value]) => {\n const type = Array.isArray(value)\n ? decodeTypeReference(value[FieldKeys.type])\n : decodeTypeReference(value);\n return {\n kind: Kind.FIELD_DEFINITION,\n name: nameNode(name),\n type,\n arguments: decodeArguments(\n Array.isArray(value) ? value[FieldKeys.arguments] ?? {} : {},\n types,\n ),\n };\n });\n}\n\nfunction decodeInputValue(\n name: string,\n value: InputValueDefinition,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode {\n const type = Array.isArray(value)\n ? decodeTypeReference(value[InputValueKeys.type])\n : decodeTypeReference(value);\n\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n name: nameNode(name),\n type,\n defaultValue: Array.isArray(value)\n ? valueToConstValueNode(\n value[InputValueKeys.defaultValue],\n value[InputValueKeys.type],\n types,\n )\n : undefined,\n };\n}\n\nfunction valueToConstValueNode(\n jsValue: unknown,\n typeRef: TypeReference,\n types: TypeDefinitionsRecord,\n): ConstValueNode {\n const typeName = typeNameFromReference(typeRef);\n if (typeof jsValue === \"string\") {\n return typeName === \"String\"\n ? { kind: Kind.STRING, value: jsValue }\n : { kind: Kind.ENUM, value: jsValue };\n }\n if (jsValue === null) {\n invariant(!isNonNullType(typeRef), \"Expecting nullable type\");\n return { kind: Kind.NULL };\n }\n if (Number.isInteger(jsValue)) {\n return { kind: Kind.INT, value: String(jsValue) };\n }\n if (typeof jsValue === \"number\") {\n return { kind: Kind.FLOAT, value: String(jsValue) };\n }\n if (Array.isArray(jsValue)) {\n invariant(isListType(typeRef), \"Expecting list type\");\n return {\n kind: Kind.LIST,\n values: jsValue.map((item) =>\n valueToConstValueNode(item, unwrap(typeRef), types),\n ),\n };\n }\n if (typeof jsValue === \"object\") {\n const typeDef = types[typeName];\n invariant(\n Array.isArray(typeDef) && typeDef[0] === TypeKind.INPUT,\n `Expecting input object type for ${typeName}, got ${typeDef?.[0]}`,\n );\n const fields = typeDef[InputObjectKeys.fields];\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(jsValue).map(([name, value]) => {\n const fieldDef = fields[name];\n const fieldTypeRef = Array.isArray(fieldDef)\n ? fieldDef[FieldKeys.type]\n : fieldDef;\n invariant(\n fieldTypeRef !== undefined,\n `Could not find field definition for ${typeName}.${name}`,\n );\n return {\n kind: Kind.OBJECT_FIELD,\n name: nameNode(name),\n value: valueToConstValueNode(value, fieldTypeRef, types),\n };\n }),\n };\n }\n invariant(\n false,\n `Unexpected value for type ${inspectTypeReference(typeRef)}: ${inspect(\n jsValue,\n )}`,\n );\n}\n\nfunction decodeArguments(\n args: Record<string, InputValueDefinition>,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode[] {\n return Object.entries(args).map(([name, value]) =>\n decodeInputValue(name, value, types),\n );\n}\n\nfunction decodeTypeReference(\n ref: TypeReference,\n): NamedTypeNode | ListTypeNode | NonNullTypeNode {\n if (isListType(ref)) {\n return {\n kind: Kind.LIST_TYPE,\n type: decodeTypeReference(unwrap(ref)),\n };\n }\n if (isNonNullType(ref)) {\n const unwrappedType = decodeTypeReference(unwrap(ref));\n invariant(\n unwrappedType.kind !== Kind.NON_NULL_TYPE,\n \"Non-null modifier cannot be nested\",\n );\n return {\n kind: Kind.NON_NULL_TYPE,\n type: unwrappedType,\n };\n }\n return {\n kind: Kind.NAMED_TYPE,\n name: nameNode(typeNameFromReference(ref)),\n };\n}\n\nfunction decodeDirective(\n tuple: DirectiveDefinitionTuple,\n types: TypeDefinitionsRecord,\n): DirectiveDefinitionNode {\n const name = tuple[DirectiveKeys.name];\n const args = tuple[DirectiveKeys.arguments]\n ? decodeArguments(tuple[DirectiveKeys.arguments], types)\n : [];\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n name: nameNode(name),\n arguments: args,\n // TODO? locations and repeatable are irrelevant for execution\n repeatable: false,\n locations: [],\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|