@graphitation/supermassive 3.0.0-alpha.5 → 3.0.0-alpha.7
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/lib/benchmarks/index.js.map +2 -2
- package/lib/benchmarks/index.mjs.map +2 -2
- package/lib/collectFields.d.ts.map +1 -1
- package/lib/collectFields.js +6 -5
- package/lib/collectFields.js.map +2 -2
- package/lib/collectFields.mjs +6 -5
- package/lib/collectFields.mjs.map +2 -2
- package/lib/executeWithoutSchema.d.ts +1 -3
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +153 -69
- package/lib/executeWithoutSchema.js.map +2 -2
- package/lib/executeWithoutSchema.mjs +143 -71
- package/lib/executeWithoutSchema.mjs.map +2 -2
- package/lib/index.d.ts +4 -4
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +2 -2
- package/lib/index.mjs +10 -2
- package/lib/index.mjs.map +2 -2
- package/lib/schema/definition.d.ts +43 -33
- package/lib/schema/definition.d.ts.map +1 -1
- package/lib/schema/definition.js +284 -9
- package/lib/schema/definition.js.map +2 -2
- package/lib/schema/definition.mjs +284 -55
- package/lib/schema/definition.mjs.map +3 -3
- package/lib/schema/directives.d.ts.map +1 -1
- package/lib/schema/directives.js +3 -3
- package/lib/schema/directives.js.map +2 -2
- package/lib/schema/directives.mjs +4 -4
- package/lib/schema/directives.mjs.map +2 -2
- package/lib/schema/reference.d.ts +3 -1
- package/lib/schema/reference.d.ts.map +1 -1
- package/lib/schema/reference.js.map +2 -2
- package/lib/schema/reference.mjs.map +2 -2
- package/lib/schema/resolvers.d.ts +10 -4
- package/lib/schema/resolvers.d.ts.map +1 -1
- package/lib/schema/resolvers.js +92 -9
- package/lib/schema/resolvers.js.map +2 -2
- package/lib/schema/resolvers.mjs +99 -9
- package/lib/schema/resolvers.mjs.map +2 -2
- package/lib/types.d.ts +25 -2
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utilities/coerceInputValue.d.ts +3 -3
- package/lib/utilities/coerceInputValue.d.ts.map +1 -1
- package/lib/utilities/coerceInputValue.js +17 -12
- package/lib/utilities/coerceInputValue.js.map +2 -2
- package/lib/utilities/coerceInputValue.mjs +22 -12
- package/lib/utilities/coerceInputValue.mjs.map +2 -2
- package/lib/utilities/decodeASTSchema.d.ts.map +1 -1
- package/lib/utilities/decodeASTSchema.js +32 -40
- package/lib/utilities/decodeASTSchema.js.map +2 -2
- package/lib/utilities/decodeASTSchema.mjs +51 -49
- package/lib/utilities/decodeASTSchema.mjs.map +2 -2
- package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
- package/lib/utilities/encodeASTSchema.js +16 -20
- package/lib/utilities/encodeASTSchema.js.map +2 -2
- package/lib/utilities/encodeASTSchema.mjs +22 -21
- package/lib/utilities/encodeASTSchema.mjs.map +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.d.ts.map +1 -1
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +20 -22
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +35 -29
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +2 -2
- package/lib/utilities/mergeResolvers.js +1 -2
- package/lib/utilities/mergeResolvers.js.map +2 -2
- package/lib/utilities/mergeResolvers.mjs +1 -2
- package/lib/utilities/mergeResolvers.mjs.map +2 -2
- package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -1
- package/lib/utilities/mergeSchemaDefinitions.js +18 -28
- package/lib/utilities/mergeSchemaDefinitions.js.map +2 -2
- package/lib/utilities/mergeSchemaDefinitions.mjs +28 -34
- package/lib/utilities/mergeSchemaDefinitions.mjs.map +2 -2
- package/lib/utilities/valueFromAST.d.ts +3 -3
- package/lib/utilities/valueFromAST.d.ts.map +1 -1
- package/lib/utilities/valueFromAST.js +23 -10
- package/lib/utilities/valueFromAST.js.map +2 -2
- package/lib/utilities/valueFromAST.mjs +13 -10
- package/lib/utilities/valueFromAST.mjs.map +2 -2
- package/lib/values.d.ts +2 -2
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js +14 -14
- package/lib/values.js.map +2 -2
- package/lib/values.mjs +21 -14
- package/lib/values.mjs.map +2 -2
- package/package.json +1 -1
- package/lib/schema/fragment.d.ts +0 -63
- package/lib/schema/fragment.d.ts.map +0 -1
- package/lib/schema/fragment.js +0 -295
- package/lib/schema/fragment.js.map +0 -7
- package/lib/schema/fragment.mjs +0 -292
- package/lib/schema/fragment.mjs.map +0 -7
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
2
3
|
var __defProp = Object.defineProperty;
|
|
3
4
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
5
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
8
|
var __export = (target, all) => {
|
|
7
9
|
for (var name in all)
|
|
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
17
|
}
|
|
16
18
|
return to;
|
|
17
19
|
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
18
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
29
|
var valueFromAST_exports = {};
|
|
20
30
|
__export(valueFromAST_exports, {
|
|
@@ -24,7 +34,9 @@ module.exports = __toCommonJS(valueFromAST_exports);
|
|
|
24
34
|
var import_invariant = require("../jsutils/invariant");
|
|
25
35
|
var import_graphql = require("graphql");
|
|
26
36
|
var import_reference = require("../schema/reference");
|
|
27
|
-
|
|
37
|
+
var Definitions = __toESM(require("../schema/definition"));
|
|
38
|
+
var Resolvers = __toESM(require("../schema/resolvers"));
|
|
39
|
+
function valueFromAST(valueNode, typeRef, schemaFragment, variables) {
|
|
28
40
|
if (!valueNode) {
|
|
29
41
|
return;
|
|
30
42
|
}
|
|
@@ -43,7 +55,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
43
55
|
if (valueNode.kind === import_graphql.Kind.NULL) {
|
|
44
56
|
return;
|
|
45
57
|
}
|
|
46
|
-
return valueFromAST(valueNode, (0, import_reference.unwrap)(typeRef),
|
|
58
|
+
return valueFromAST(valueNode, (0, import_reference.unwrap)(typeRef), schemaFragment, variables);
|
|
47
59
|
}
|
|
48
60
|
if (valueNode.kind === import_graphql.Kind.NULL) {
|
|
49
61
|
return null;
|
|
@@ -62,7 +74,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
62
74
|
const itemValue = valueFromAST(
|
|
63
75
|
itemNode,
|
|
64
76
|
itemTypeRef,
|
|
65
|
-
|
|
77
|
+
schemaFragment,
|
|
66
78
|
variables
|
|
67
79
|
);
|
|
68
80
|
if (itemValue === void 0) {
|
|
@@ -76,7 +88,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
76
88
|
const coercedValue = valueFromAST(
|
|
77
89
|
valueNode,
|
|
78
90
|
itemTypeRef,
|
|
79
|
-
|
|
91
|
+
schemaFragment,
|
|
80
92
|
variables
|
|
81
93
|
);
|
|
82
94
|
if (coercedValue === void 0) {
|
|
@@ -84,7 +96,8 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
84
96
|
}
|
|
85
97
|
return [coercedValue];
|
|
86
98
|
}
|
|
87
|
-
const
|
|
99
|
+
const defs = schemaFragment.definitions;
|
|
100
|
+
const inputObjectType = Definitions.getInputObjectType(defs, typeRef);
|
|
88
101
|
if (inputObjectType) {
|
|
89
102
|
if (valueNode.kind !== import_graphql.Kind.OBJECT) {
|
|
90
103
|
return;
|
|
@@ -93,12 +106,12 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
93
106
|
const fieldNodes = new Map(
|
|
94
107
|
valueNode.fields.map((field) => [field.name.value, field])
|
|
95
108
|
);
|
|
96
|
-
const fieldDefs =
|
|
109
|
+
const fieldDefs = Definitions.getInputObjectFields(inputObjectType);
|
|
97
110
|
for (const [name, field] of Object.entries(fieldDefs)) {
|
|
98
111
|
const fieldNode = fieldNodes.get(name);
|
|
99
|
-
const fieldTypeRef =
|
|
112
|
+
const fieldTypeRef = Definitions.getInputValueTypeReference(field);
|
|
100
113
|
if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {
|
|
101
|
-
const defaultValue =
|
|
114
|
+
const defaultValue = Definitions.getInputDefaultValue(field);
|
|
102
115
|
if (defaultValue !== void 0) {
|
|
103
116
|
coercedObj[name] = defaultValue;
|
|
104
117
|
} else if ((0, import_reference.isNonNullType)(fieldTypeRef)) {
|
|
@@ -109,7 +122,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
109
122
|
const fieldValue = valueFromAST(
|
|
110
123
|
fieldNode.value,
|
|
111
124
|
fieldTypeRef,
|
|
112
|
-
|
|
125
|
+
schemaFragment,
|
|
113
126
|
variables
|
|
114
127
|
);
|
|
115
128
|
if (fieldValue === void 0) {
|
|
@@ -119,7 +132,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
119
132
|
}
|
|
120
133
|
return coercedObj;
|
|
121
134
|
}
|
|
122
|
-
const leafType =
|
|
135
|
+
const leafType = Resolvers.getLeafTypeResolver(schemaFragment, typeRef);
|
|
123
136
|
if (leafType) {
|
|
124
137
|
let result;
|
|
125
138
|
try {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/valueFromAST.ts"],
|
|
4
|
-
"sourcesContent": ["import { invariant } from \"../jsutils/invariant\";\nimport type { Maybe } from \"../jsutils/Maybe\";\nimport type { ObjMap } from \"../jsutils/ObjMap\";\n\nimport { TypeReference } from \"../schema/
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import { invariant } from \"../jsutils/invariant\";\nimport type { Maybe } from \"../jsutils/Maybe\";\nimport type { ObjMap } from \"../jsutils/ObjMap\";\n\nimport type { TypeReference } from \"../schema/reference\";\nimport { ValueNode, Kind } from \"graphql\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n unwrap,\n} from \"../schema/reference\";\nimport * as Definitions from \"../schema/definition\";\nimport * as Resolvers from \"../schema/resolvers\";\nimport { SchemaFragment } from \"../types\";\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Unknown |\n * | NullValue | null |\n *\n */\nexport function valueFromAST(\n valueNode: Maybe<ValueNode>,\n typeRef: TypeReference,\n schemaFragment: SchemaFragment,\n variables?: Maybe<ObjMap<unknown>>,\n): unknown {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variables == null || variables[variableName] === undefined) {\n // No valid return value.\n return;\n }\n const variableValue = variables[variableName];\n if (variableValue === null && isNonNullType(typeRef)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n return variableValue;\n }\n\n if (isNonNullType(typeRef)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return valueFromAST(valueNode, unwrap(typeRef), schemaFragment, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(typeRef)) {\n const itemTypeRef = unwrap(typeRef);\n if (valueNode.kind === Kind.LIST) {\n const coercedValues = [];\n for (const itemNode of valueNode.values) {\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemTypeRef)) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(null);\n } else {\n const itemValue = valueFromAST(\n itemNode,\n itemTypeRef,\n schemaFragment,\n variables,\n );\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(itemValue);\n }\n }\n return coercedValues;\n }\n const coercedValue = valueFromAST(\n valueNode,\n itemTypeRef,\n schemaFragment,\n variables,\n );\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedValue];\n }\n\n const defs = schemaFragment.definitions;\n\n const inputObjectType = Definitions.getInputObjectType(defs, typeRef);\n if (inputObjectType) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n const coercedObj = Object.create(null);\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n\n const fieldDefs = Definitions.getInputObjectFields(inputObjectType);\n\n for (const [name, field] of Object.entries(fieldDefs)) {\n const fieldNode = fieldNodes.get(name);\n const fieldTypeRef = Definitions.getInputValueTypeReference(field);\n if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {\n const defaultValue = Definitions.getInputDefaultValue(field);\n if (defaultValue !== undefined) {\n coercedObj[name] = defaultValue;\n } else if (isNonNullType(fieldTypeRef)) {\n return; // Invalid: intentionally return no value.\n }\n continue;\n }\n const fieldValue = valueFromAST(\n fieldNode.value,\n fieldTypeRef,\n schemaFragment,\n variables,\n );\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedObj[name] = fieldValue;\n }\n return coercedObj;\n }\n\n const leafType = Resolvers.getLeafTypeResolver(schemaFragment, typeRef);\n if (leafType) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n let result;\n try {\n result = leafType.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return result;\n }\n /* c8 ignore next 3 */\n // Not reachable, all possible input types have been considered.\n invariant(false, \"Unexpected input type: \" + inspectTypeReference(typeRef));\n}\n\n// Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\nfunction isMissingVariable(\n valueNode: ValueNode,\n variables: Maybe<ObjMap<unknown>>,\n): boolean {\n return (\n valueNode.kind === Kind.VARIABLE &&\n (variables == null || variables[valueNode.name.value] === undefined)\n );\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -7,7 +7,9 @@ import {
|
|
|
7
7
|
isNonNullType,
|
|
8
8
|
unwrap
|
|
9
9
|
} from "../schema/reference.mjs";
|
|
10
|
-
|
|
10
|
+
import * as Definitions from "../schema/definition.mjs";
|
|
11
|
+
import * as Resolvers from "../schema/resolvers.mjs";
|
|
12
|
+
function valueFromAST(valueNode, typeRef, schemaFragment, variables) {
|
|
11
13
|
if (!valueNode) {
|
|
12
14
|
return;
|
|
13
15
|
}
|
|
@@ -26,7 +28,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
26
28
|
if (valueNode.kind === Kind.NULL) {
|
|
27
29
|
return;
|
|
28
30
|
}
|
|
29
|
-
return valueFromAST(valueNode, unwrap(typeRef),
|
|
31
|
+
return valueFromAST(valueNode, unwrap(typeRef), schemaFragment, variables);
|
|
30
32
|
}
|
|
31
33
|
if (valueNode.kind === Kind.NULL) {
|
|
32
34
|
return null;
|
|
@@ -45,7 +47,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
45
47
|
const itemValue = valueFromAST(
|
|
46
48
|
itemNode,
|
|
47
49
|
itemTypeRef,
|
|
48
|
-
|
|
50
|
+
schemaFragment,
|
|
49
51
|
variables
|
|
50
52
|
);
|
|
51
53
|
if (itemValue === void 0) {
|
|
@@ -59,7 +61,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
59
61
|
const coercedValue = valueFromAST(
|
|
60
62
|
valueNode,
|
|
61
63
|
itemTypeRef,
|
|
62
|
-
|
|
64
|
+
schemaFragment,
|
|
63
65
|
variables
|
|
64
66
|
);
|
|
65
67
|
if (coercedValue === void 0) {
|
|
@@ -67,7 +69,8 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
67
69
|
}
|
|
68
70
|
return [coercedValue];
|
|
69
71
|
}
|
|
70
|
-
const
|
|
72
|
+
const defs = schemaFragment.definitions;
|
|
73
|
+
const inputObjectType = Definitions.getInputObjectType(defs, typeRef);
|
|
71
74
|
if (inputObjectType) {
|
|
72
75
|
if (valueNode.kind !== Kind.OBJECT) {
|
|
73
76
|
return;
|
|
@@ -76,12 +79,12 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
76
79
|
const fieldNodes = new Map(
|
|
77
80
|
valueNode.fields.map((field) => [field.name.value, field])
|
|
78
81
|
);
|
|
79
|
-
const fieldDefs =
|
|
82
|
+
const fieldDefs = Definitions.getInputObjectFields(inputObjectType);
|
|
80
83
|
for (const [name, field] of Object.entries(fieldDefs)) {
|
|
81
84
|
const fieldNode = fieldNodes.get(name);
|
|
82
|
-
const fieldTypeRef =
|
|
85
|
+
const fieldTypeRef = Definitions.getInputValueTypeReference(field);
|
|
83
86
|
if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {
|
|
84
|
-
const defaultValue =
|
|
87
|
+
const defaultValue = Definitions.getInputDefaultValue(field);
|
|
85
88
|
if (defaultValue !== void 0) {
|
|
86
89
|
coercedObj[name] = defaultValue;
|
|
87
90
|
} else if (isNonNullType(fieldTypeRef)) {
|
|
@@ -92,7 +95,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
92
95
|
const fieldValue = valueFromAST(
|
|
93
96
|
fieldNode.value,
|
|
94
97
|
fieldTypeRef,
|
|
95
|
-
|
|
98
|
+
schemaFragment,
|
|
96
99
|
variables
|
|
97
100
|
);
|
|
98
101
|
if (fieldValue === void 0) {
|
|
@@ -102,7 +105,7 @@ function valueFromAST(valueNode, typeRef, schemaTypes, variables) {
|
|
|
102
105
|
}
|
|
103
106
|
return coercedObj;
|
|
104
107
|
}
|
|
105
|
-
const leafType =
|
|
108
|
+
const leafType = Resolvers.getLeafTypeResolver(schemaFragment, typeRef);
|
|
106
109
|
if (leafType) {
|
|
107
110
|
let result;
|
|
108
111
|
try {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/valueFromAST.ts"],
|
|
4
|
-
"sourcesContent": ["import { invariant } from \"../jsutils/invariant\";\nimport type { Maybe } from \"../jsutils/Maybe\";\nimport type { ObjMap } from \"../jsutils/ObjMap\";\n\nimport { TypeReference } from \"../schema/
|
|
5
|
-
"mappings": ";AAAA,SAAS,iBAAiB;
|
|
4
|
+
"sourcesContent": ["import { invariant } from \"../jsutils/invariant\";\nimport type { Maybe } from \"../jsutils/Maybe\";\nimport type { ObjMap } from \"../jsutils/ObjMap\";\n\nimport type { TypeReference } from \"../schema/reference\";\nimport { ValueNode, Kind } from \"graphql\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n unwrap,\n} from \"../schema/reference\";\nimport * as Definitions from \"../schema/definition\";\nimport * as Resolvers from \"../schema/resolvers\";\nimport { SchemaFragment } from \"../types\";\n\n/**\n * Produces a JavaScript value given a GraphQL Value AST.\n *\n * A GraphQL type must be provided, which will be used to interpret different\n * GraphQL Value literals.\n *\n * Returns `undefined` when the value could not be validly coerced according to\n * the provided type.\n *\n * | GraphQL Value | JSON Value |\n * | -------------------- | ------------- |\n * | Input Object | Object |\n * | List | Array |\n * | Boolean | Boolean |\n * | String | String |\n * | Int / Float | Number |\n * | Enum Value | Unknown |\n * | NullValue | null |\n *\n */\nexport function valueFromAST(\n valueNode: Maybe<ValueNode>,\n typeRef: TypeReference,\n schemaFragment: SchemaFragment,\n variables?: Maybe<ObjMap<unknown>>,\n): unknown {\n if (!valueNode) {\n // When there is no node, then there is also no value.\n // Importantly, this is different from returning the value null.\n return;\n }\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (variables == null || variables[variableName] === undefined) {\n // No valid return value.\n return;\n }\n const variableValue = variables[variableName];\n if (variableValue === null && isNonNullType(typeRef)) {\n return; // Invalid: intentionally return no value.\n }\n // Note: This does no further checking that this variable is correct.\n // This assumes that this query has been validated and the variable\n // usage here is of the correct type.\n return variableValue;\n }\n\n if (isNonNullType(typeRef)) {\n if (valueNode.kind === Kind.NULL) {\n return; // Invalid: intentionally return no value.\n }\n return valueFromAST(valueNode, unwrap(typeRef), schemaFragment, variables);\n }\n\n if (valueNode.kind === Kind.NULL) {\n // This is explicitly returning the value null.\n return null;\n }\n\n if (isListType(typeRef)) {\n const itemTypeRef = unwrap(typeRef);\n if (valueNode.kind === Kind.LIST) {\n const coercedValues = [];\n for (const itemNode of valueNode.values) {\n if (isMissingVariable(itemNode, variables)) {\n // If an array contains a missing variable, it is either coerced to\n // null or if the item type is non-null, it considered invalid.\n if (isNonNullType(itemTypeRef)) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(null);\n } else {\n const itemValue = valueFromAST(\n itemNode,\n itemTypeRef,\n schemaFragment,\n variables,\n );\n if (itemValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedValues.push(itemValue);\n }\n }\n return coercedValues;\n }\n const coercedValue = valueFromAST(\n valueNode,\n itemTypeRef,\n schemaFragment,\n variables,\n );\n if (coercedValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return [coercedValue];\n }\n\n const defs = schemaFragment.definitions;\n\n const inputObjectType = Definitions.getInputObjectType(defs, typeRef);\n if (inputObjectType) {\n if (valueNode.kind !== Kind.OBJECT) {\n return; // Invalid: intentionally return no value.\n }\n const coercedObj = Object.create(null);\n const fieldNodes = new Map(\n valueNode.fields.map((field) => [field.name.value, field]),\n );\n\n const fieldDefs = Definitions.getInputObjectFields(inputObjectType);\n\n for (const [name, field] of Object.entries(fieldDefs)) {\n const fieldNode = fieldNodes.get(name);\n const fieldTypeRef = Definitions.getInputValueTypeReference(field);\n if (fieldNode == null || isMissingVariable(fieldNode.value, variables)) {\n const defaultValue = Definitions.getInputDefaultValue(field);\n if (defaultValue !== undefined) {\n coercedObj[name] = defaultValue;\n } else if (isNonNullType(fieldTypeRef)) {\n return; // Invalid: intentionally return no value.\n }\n continue;\n }\n const fieldValue = valueFromAST(\n fieldNode.value,\n fieldTypeRef,\n schemaFragment,\n variables,\n );\n if (fieldValue === undefined) {\n return; // Invalid: intentionally return no value.\n }\n coercedObj[name] = fieldValue;\n }\n return coercedObj;\n }\n\n const leafType = Resolvers.getLeafTypeResolver(schemaFragment, typeRef);\n if (leafType) {\n // Scalars and Enums fulfill parsing a literal value via parseLiteral().\n // Invalid values represent a failure to parse correctly, in which case\n // no value is returned.\n let result;\n try {\n result = leafType.parseLiteral(valueNode, variables);\n } catch (_error) {\n return; // Invalid: intentionally return no value.\n }\n if (result === undefined) {\n return; // Invalid: intentionally return no value.\n }\n return result;\n }\n /* c8 ignore next 3 */\n // Not reachable, all possible input types have been considered.\n invariant(false, \"Unexpected input type: \" + inspectTypeReference(typeRef));\n}\n\n// Returns true if the provided valueNode is a variable which is not defined\n// in the set of variables.\nfunction isMissingVariable(\n valueNode: ValueNode,\n variables: Maybe<ObjMap<unknown>>,\n): boolean {\n return (\n valueNode.kind === Kind.VARIABLE &&\n (variables == null || variables[valueNode.name.value] === undefined)\n );\n}\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAS,iBAAiB;AAK1B,SAAoB,YAAY;AAChC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,YAAY,iBAAiB;AAC7B,YAAY,eAAe;AAuBpB,SAAS,aACd,WACA,SACA,gBACA,WACS;AACT,MAAI,CAAC,WAAW;AAGd;AAAA,EACF;AAEA,MAAI,UAAU,SAAS,KAAK,UAAU;AACpC,UAAM,eAAe,UAAU,KAAK;AACpC,QAAI,aAAa,QAAQ,UAAU,YAAY,MAAM,QAAW;AAE9D;AAAA,IACF;AACA,UAAM,gBAAgB,UAAU,YAAY;AAC5C,QAAI,kBAAkB,QAAQ,cAAc,OAAO,GAAG;AACpD;AAAA,IACF;AAIA,WAAO;AAAA,EACT;AAEA,MAAI,cAAc,OAAO,GAAG;AAC1B,QAAI,UAAU,SAAS,KAAK,MAAM;AAChC;AAAA,IACF;AACA,WAAO,aAAa,WAAW,OAAO,OAAO,GAAG,gBAAgB,SAAS;AAAA,EAC3E;AAEA,MAAI,UAAU,SAAS,KAAK,MAAM;AAEhC,WAAO;AAAA,EACT;AAEA,MAAI,WAAW,OAAO,GAAG;AACvB,UAAM,cAAc,OAAO,OAAO;AAClC,QAAI,UAAU,SAAS,KAAK,MAAM;AAChC,YAAM,gBAAgB,CAAC;AACvB,iBAAW,YAAY,UAAU,QAAQ;AACvC,YAAI,kBAAkB,UAAU,SAAS,GAAG;AAG1C,cAAI,cAAc,WAAW,GAAG;AAC9B;AAAA,UACF;AACA,wBAAc,KAAK,IAAI;AAAA,QACzB,OAAO;AACL,gBAAM,YAAY;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AACA,cAAI,cAAc,QAAW;AAC3B;AAAA,UACF;AACA,wBAAc,KAAK,SAAS;AAAA,QAC9B;AAAA,MACF;AACA,aAAO;AAAA,IACT;AACA,UAAM,eAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AACA,QAAI,iBAAiB,QAAW;AAC9B;AAAA,IACF;AACA,WAAO,CAAC,YAAY;AAAA,EACtB;AAEA,QAAM,OAAO,eAAe;AAE5B,QAAM,kBAA8B,+BAAmB,MAAM,OAAO;AACpE,MAAI,iBAAiB;AACnB,QAAI,UAAU,SAAS,KAAK,QAAQ;AAClC;AAAA,IACF;AACA,UAAM,aAAa,uBAAO,OAAO,IAAI;AACrC,UAAM,aAAa,IAAI;AAAA,MACrB,UAAU,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,OAAO,KAAK,CAAC;AAAA,IAC3D;AAEA,UAAM,YAAwB,iCAAqB,eAAe;AAElE,eAAW,CAAC,MAAM,KAAK,KAAK,OAAO,QAAQ,SAAS,GAAG;AACrD,YAAM,YAAY,WAAW,IAAI,IAAI;AACrC,YAAM,eAA2B,uCAA2B,KAAK;AACjE,UAAI,aAAa,QAAQ,kBAAkB,UAAU,OAAO,SAAS,GAAG;AACtE,cAAM,eAA2B,iCAAqB,KAAK;AAC3D,YAAI,iBAAiB,QAAW;AAC9B,qBAAW,IAAI,IAAI;AAAA,QACrB,WAAW,cAAc,YAAY,GAAG;AACtC;AAAA,QACF;AACA;AAAA,MACF;AACA,YAAM,aAAa;AAAA,QACjB,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF;AACA,UAAI,eAAe,QAAW;AAC5B;AAAA,MACF;AACA,iBAAW,IAAI,IAAI;AAAA,IACrB;AACA,WAAO;AAAA,EACT;AAEA,QAAM,WAAqB,8BAAoB,gBAAgB,OAAO;AACtE,MAAI,UAAU;AAIZ,QAAI;AACJ,QAAI;AACF,eAAS,SAAS,aAAa,WAAW,SAAS;AAAA,IACrD,SAAS,QAAP;AACA;AAAA,IACF;AACA,QAAI,WAAW,QAAW;AACxB;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGA,YAAU,OAAO,4BAA4B,qBAAqB,OAAO,CAAC;AAC5E;AAIA,SAAS,kBACP,WACA,WACS;AACT,SACE,UAAU,SAAS,KAAK,aACvB,aAAa,QAAQ,UAAU,UAAU,KAAK,KAAK,MAAM;AAE9D;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/lib/values.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GraphQLError, DirectiveNode, FieldNode, VariableDefinitionNode } from "graphql";
|
|
2
2
|
import { ExecutionContext } from "./executeWithoutSchema";
|
|
3
3
|
import { DirectiveDefinitionTuple, FieldDefinition } from "./schema/definition";
|
|
4
|
-
import {
|
|
4
|
+
import type { SchemaFragment } from "./types";
|
|
5
5
|
type CoercedVariableValues = {
|
|
6
6
|
errors: Array<GraphQLError>;
|
|
7
7
|
coerced?: never;
|
|
@@ -22,7 +22,7 @@ type CoercedVariableValues = {
|
|
|
22
22
|
*
|
|
23
23
|
* @internal
|
|
24
24
|
*/
|
|
25
|
-
export declare function getVariableValues(
|
|
25
|
+
export declare function getVariableValues(schemaFragment: SchemaFragment, varDefNodes: ReadonlyArray<VariableDefinitionNode>, inputs: {
|
|
26
26
|
[variable: string]: unknown;
|
|
27
27
|
}, options?: {
|
|
28
28
|
maxErrors?: number;
|
package/lib/values.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,aAAa,EACb,SAAS,EACT,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,
|
|
1
|
+
{"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../src/values.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,aAAa,EACb,SAAS,EACT,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,wBAAwB,EACxB,eAAe,EAOhB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,KAAK,qBAAqB,GACtB;IAAE,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,KAAK,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAClD,MAAM,EAAE;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EACvC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/B,qBAAqB,CA0BvB;AAgFD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,gBAAgB,EAC5B,GAAG,EAAE,eAAe,GAAG,wBAAwB,EAC/C,IAAI,EAAE,SAAS,GAAG,aAAa,GAC9B;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CA+FjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,gBAAgB,EAC5B,YAAY,EAAE,wBAAwB,EACtC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC,CAAA;CAAE,GAClD,SAAS,GAAG;IAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAW7C"}
|
package/lib/values.js
CHANGED
|
@@ -26,15 +26,16 @@ module.exports = __toCommonJS(values_exports);
|
|
|
26
26
|
var import_graphql = require("graphql");
|
|
27
27
|
var import_inspect = require("./jsutils/inspect");
|
|
28
28
|
var import_printPathArray = require("./jsutils/printPathArray");
|
|
29
|
+
var import_definition = require("./schema/definition");
|
|
29
30
|
var import_valueFromAST = require("./utilities/valueFromAST");
|
|
30
31
|
var import_coerceInputValue = require("./utilities/coerceInputValue");
|
|
31
32
|
var import_reference = require("./schema/reference");
|
|
32
|
-
function getVariableValues(
|
|
33
|
+
function getVariableValues(schemaFragment, varDefNodes, inputs, options) {
|
|
33
34
|
const errors = [];
|
|
34
35
|
const maxErrors = options == null ? void 0 : options.maxErrors;
|
|
35
36
|
try {
|
|
36
37
|
const coerced = coerceVariableValues(
|
|
37
|
-
|
|
38
|
+
schemaFragment,
|
|
38
39
|
varDefNodes,
|
|
39
40
|
inputs,
|
|
40
41
|
(error) => {
|
|
@@ -54,12 +55,12 @@ function getVariableValues(schemaTypes, varDefNodes, inputs, options) {
|
|
|
54
55
|
}
|
|
55
56
|
return { errors };
|
|
56
57
|
}
|
|
57
|
-
function coerceVariableValues(
|
|
58
|
+
function coerceVariableValues(schemaFragment, varDefNodes, inputs, onError) {
|
|
58
59
|
const coercedValues = {};
|
|
59
60
|
for (const varDefNode of varDefNodes) {
|
|
60
61
|
const varName = varDefNode.variable.name.value;
|
|
61
62
|
const varTypeReference = (0, import_reference.typeReferenceFromNode)(varDefNode.type);
|
|
62
|
-
if (!
|
|
63
|
+
if (!(0, import_definition.isInputType)(schemaFragment.definitions, varTypeReference)) {
|
|
63
64
|
const varTypeStr = (0, import_reference.inspectTypeReference)(varTypeReference);
|
|
64
65
|
onError(
|
|
65
66
|
new import_graphql.GraphQLError(
|
|
@@ -74,7 +75,7 @@ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
|
|
|
74
75
|
coercedValues[varName] = (0, import_valueFromAST.valueFromAST)(
|
|
75
76
|
varDefNode.defaultValue,
|
|
76
77
|
varTypeReference,
|
|
77
|
-
|
|
78
|
+
schemaFragment
|
|
78
79
|
);
|
|
79
80
|
} else if ((0, import_reference.isNonNullType)(varTypeReference)) {
|
|
80
81
|
const varTypeStr = (0, import_reference.inspectTypeReference)(varTypeReference);
|
|
@@ -101,7 +102,7 @@ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
|
|
|
101
102
|
coercedValues[varName] = (0, import_coerceInputValue.coerceInputValue)(
|
|
102
103
|
value,
|
|
103
104
|
varTypeReference,
|
|
104
|
-
|
|
105
|
+
schemaFragment,
|
|
105
106
|
(path, invalidValue, error) => {
|
|
106
107
|
let prefix = `Variable "$${varName}" got invalid value ` + (0, import_inspect.inspect)(invalidValue);
|
|
107
108
|
if (path.length > 0) {
|
|
@@ -120,9 +121,9 @@ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
|
|
|
120
121
|
}
|
|
121
122
|
function getArgumentValues(exeContext, def, node) {
|
|
122
123
|
var _a;
|
|
123
|
-
const
|
|
124
|
+
const definitions = exeContext.schemaFragment.definitions;
|
|
124
125
|
const coercedValues = {};
|
|
125
|
-
const argumentDefs =
|
|
126
|
+
const argumentDefs = (0, import_definition.getDefinitionArguments)(def);
|
|
126
127
|
if (!argumentDefs) {
|
|
127
128
|
return coercedValues;
|
|
128
129
|
}
|
|
@@ -130,8 +131,8 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
130
131
|
const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));
|
|
131
132
|
for (const [name, argumentDef] of Object.entries(argumentDefs)) {
|
|
132
133
|
const argumentNode = argNodeMap.get(name);
|
|
133
|
-
const argumentTypeRef =
|
|
134
|
-
const defaultValue =
|
|
134
|
+
const argumentTypeRef = (0, import_definition.getInputValueTypeReference)(argumentDef);
|
|
135
|
+
const defaultValue = (0, import_definition.getInputDefaultValue)(argumentDef);
|
|
135
136
|
if (argumentNode == null) {
|
|
136
137
|
if (defaultValue !== void 0) {
|
|
137
138
|
coercedValues[name] = defaultValue;
|
|
@@ -144,7 +145,7 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
144
145
|
}
|
|
145
146
|
continue;
|
|
146
147
|
}
|
|
147
|
-
if (!
|
|
148
|
+
if (!(0, import_definition.isDefined)(definitions, argumentTypeRef)) {
|
|
148
149
|
throw (0, import_graphql.locatedError)(
|
|
149
150
|
`Could not find type for argument ${name} in ${node.kind} ${node.name.value}`,
|
|
150
151
|
[argumentNode]
|
|
@@ -178,7 +179,7 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
178
179
|
const coercedValue = (0, import_valueFromAST.valueFromAST)(
|
|
179
180
|
valueNode,
|
|
180
181
|
argumentTypeRef,
|
|
181
|
-
|
|
182
|
+
exeContext.schemaFragment,
|
|
182
183
|
exeContext.variableValues
|
|
183
184
|
);
|
|
184
185
|
if (coercedValue === void 0) {
|
|
@@ -193,8 +194,7 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
193
194
|
}
|
|
194
195
|
function getDirectiveValues(exeContext, directiveDef, node) {
|
|
195
196
|
var _a;
|
|
196
|
-
const
|
|
197
|
-
const name = schemaTypes.getDirectiveName(directiveDef);
|
|
197
|
+
const name = (0, import_definition.getDirectiveName)(directiveDef);
|
|
198
198
|
const directiveNode = (_a = node.directives) == null ? void 0 : _a.find(
|
|
199
199
|
(directive) => directive.name.value === name
|
|
200
200
|
);
|
package/lib/values.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/values.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n GraphQLError,\n Kind,\n print,\n locatedError,\n DirectiveNode,\n FieldNode,\n VariableDefinitionNode,\n} from \"graphql\";\nimport { inspect } from \"./jsutils/inspect\";\nimport { printPathArray } from \"./jsutils/printPathArray\";\nimport { ExecutionContext } from \"./executeWithoutSchema\";\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAQO;AACP,qBAAwB;AACxB,4BAA+B;
|
|
4
|
+
"sourcesContent": ["import {\n GraphQLError,\n Kind,\n print,\n locatedError,\n DirectiveNode,\n FieldNode,\n VariableDefinitionNode,\n} from \"graphql\";\nimport { inspect } from \"./jsutils/inspect\";\nimport { printPathArray } from \"./jsutils/printPathArray\";\nimport { ExecutionContext } from \"./executeWithoutSchema\";\nimport {\n DirectiveDefinitionTuple,\n FieldDefinition,\n getDefinitionArguments,\n getDirectiveName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n} from \"./schema/definition\";\nimport { valueFromAST } from \"./utilities/valueFromAST\";\nimport { coerceInputValue } from \"./utilities/coerceInputValue\";\nimport {\n inspectTypeReference,\n isNonNullType,\n typeReferenceFromNode,\n} from \"./schema/reference\";\nimport type { SchemaFragment } from \"./types\";\n\ntype CoercedVariableValues =\n | { errors: Array<GraphQLError>; coerced?: never }\n | { coerced: { [variable: string]: unknown }; errors?: never };\n\n/**\n * Prepares an object map of variableValues of the correct type based on the\n * provided variable definitions and arbitrary input. If the input cannot be\n * parsed to match the variable definitions, a GraphQLError will be thrown.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getVariableValues(\n schemaFragment: SchemaFragment,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n options?: { maxErrors?: number },\n): CoercedVariableValues {\n const errors: GraphQLError[] = [];\n const maxErrors = options?.maxErrors;\n try {\n const coerced = coerceVariableValues(\n schemaFragment,\n varDefNodes,\n inputs,\n (error) => {\n if (maxErrors != null && errors.length >= maxErrors) {\n throw new GraphQLError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n );\n }\n errors.push(error);\n },\n );\n\n if (errors.length === 0) {\n return { coerced };\n }\n } catch (error) {\n errors.push(error as GraphQLError);\n }\n\n return { errors: errors };\n}\n\nfunction coerceVariableValues(\n schemaFragment: SchemaFragment,\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n inputs: { [variable: string]: unknown },\n onError: (error: GraphQLError) => void,\n): { [variable: string]: unknown } {\n const coercedValues: { [variable: string]: unknown } = {};\n for (const varDefNode of varDefNodes) {\n const varName = varDefNode.variable.name.value;\n const varTypeReference = typeReferenceFromNode(varDefNode.type);\n\n if (!isInputType(schemaFragment.definitions, varTypeReference)) {\n // Must use input types for variables. This should be caught during\n // validation, however is checked again here for safety.\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" expected value of type \"${varTypeStr}\" which cannot be used as an input type.`,\n { nodes: varDefNode.type },\n ),\n );\n continue;\n }\n\n if (!hasOwnProperty(inputs, varName)) {\n if (varDefNode.defaultValue) {\n coercedValues[varName] = valueFromAST(\n varDefNode.defaultValue,\n varTypeReference,\n schemaFragment,\n );\n } else if (isNonNullType(varTypeReference)) {\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n { nodes: varDefNode },\n ),\n );\n }\n continue;\n }\n\n const value = inputs[varName];\n if (value === null && isNonNullType(varTypeReference)) {\n const varTypeStr = inspectTypeReference(varTypeReference);\n onError(\n new GraphQLError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n { nodes: varDefNode },\n ),\n );\n continue;\n }\n\n coercedValues[varName] = coerceInputValue(\n value,\n varTypeReference,\n schemaFragment,\n (path, invalidValue, error) => {\n let prefix =\n `Variable \"$${varName}\" got invalid value ` + inspect(invalidValue);\n if (path.length > 0) {\n prefix += ` at \"${varName}${printPathArray(path)}\"`;\n }\n onError(\n new GraphQLError(prefix + \"; \" + error.message, {\n nodes: varDefNode,\n originalError: error.originalError,\n }),\n );\n },\n );\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a list of argument\n * definitions and list of argument AST nodes.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n *\n * @internal\n */\nexport function getArgumentValues(\n exeContext: ExecutionContext,\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): { [argument: string]: unknown } {\n const definitions = exeContext.schemaFragment.definitions;\n const coercedValues: { [argument: string]: unknown } = {};\n const argumentDefs = getDefinitionArguments(def);\n if (!argumentDefs) {\n return coercedValues;\n }\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const argumentNodes = node.arguments ?? [];\n const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));\n\n for (const [name, argumentDef] of Object.entries(argumentDefs)) {\n const argumentNode = argNodeMap.get(name);\n const argumentTypeRef = getInputValueTypeReference(argumentDef);\n const defaultValue = getInputDefaultValue(argumentDef);\n\n if (argumentNode == null) {\n if (defaultValue !== undefined) {\n coercedValues[name] = defaultValue;\n } else if (isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of required type \"${type}\" was not provided.`,\n [node],\n );\n }\n continue;\n }\n\n if (!isDefined(definitions, argumentTypeRef)) {\n throw locatedError(\n `Could not find type for argument ${name} in ${node.kind} ${node.name.value}`,\n [argumentNode],\n );\n }\n\n // if (!schemaTypes.isInputType(argumentTypeRef)) {\n // const type = schemaTypes.printTypeRef(argumentTypeRef);\n // throw locatedError(\n // `Argument \"$${name}\" expected value of type \"${type}\" which cannot be used as an input type.`,\n // [argumentNode],\n // );\n // }\n\n const valueNode = argumentNode.value;\n let isNull = valueNode.kind === Kind.NULL;\n\n if (valueNode.kind === Kind.VARIABLE) {\n const variableName = valueNode.name.value;\n if (\n exeContext.variableValues == null ||\n !hasOwnProperty(exeContext.variableValues, variableName)\n ) {\n if (defaultValue !== undefined) {\n coercedValues[name] = defaultValue;\n } else if (isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of required type \"${type}\" ` +\n `was provided the variable \"$${variableName}\" which was not provided a runtime value.`,\n [valueNode],\n );\n }\n continue;\n }\n isNull = exeContext.variableValues[variableName] == null;\n }\n\n if (isNull && isNonNullType(argumentTypeRef)) {\n const type = inspectTypeReference(argumentTypeRef);\n throw locatedError(\n `Argument \"${name}\" of non-null type \"${type}\" must not be null.\"`,\n [valueNode],\n );\n }\n\n const coercedValue = valueFromAST(\n valueNode,\n argumentTypeRef,\n exeContext.schemaFragment,\n exeContext.variableValues,\n );\n if (coercedValue === undefined) {\n // Note: ValuesOfCorrectTypeRule validation should catch this before\n // execution. This is a runtime check to ensure execution does not\n // continue with an invalid argument value.\n throw new GraphQLError(\n `Argument \"${name}\" has invalid value ${print(valueNode)}.`,\n { nodes: valueNode },\n );\n }\n coercedValues[name] = coercedValue;\n }\n\n return coercedValues;\n}\n\n/**\n * Prepares an object map of argument values given a directive definition\n * and a AST node which may contain directives. Optionally also accepts a map\n * of variable values.\n *\n * If the directive does not exist on the node, returns undefined.\n *\n * Note: The returned value is a plain Object with a prototype, since it is\n * exposed to user code. Care should be taken to not pull values from the\n * Object prototype.\n */\nexport function getDirectiveValues(\n exeContext: ExecutionContext,\n directiveDef: DirectiveDefinitionTuple,\n node: { directives?: ReadonlyArray<DirectiveNode> },\n): undefined | { [argument: string]: unknown } {\n const name = getDirectiveName(directiveDef);\n\n // istanbul ignore next (See: 'https://github.com/graphql/graphql-js/issues/2203')\n const directiveNode = node.directives?.find(\n (directive) => directive.name.value === name,\n );\n\n if (directiveNode) {\n return getArgumentValues(exeContext, directiveDef, directiveNode);\n }\n}\n\nfunction hasOwnProperty(obj: unknown, prop: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/lib/values.mjs
CHANGED
|
@@ -7,6 +7,14 @@ import {
|
|
|
7
7
|
} from "graphql";
|
|
8
8
|
import { inspect } from "./jsutils/inspect.mjs";
|
|
9
9
|
import { printPathArray } from "./jsutils/printPathArray.mjs";
|
|
10
|
+
import {
|
|
11
|
+
getDefinitionArguments,
|
|
12
|
+
getDirectiveName,
|
|
13
|
+
getInputDefaultValue,
|
|
14
|
+
getInputValueTypeReference,
|
|
15
|
+
isDefined,
|
|
16
|
+
isInputType
|
|
17
|
+
} from "./schema/definition.mjs";
|
|
10
18
|
import { valueFromAST } from "./utilities/valueFromAST.mjs";
|
|
11
19
|
import { coerceInputValue } from "./utilities/coerceInputValue.mjs";
|
|
12
20
|
import {
|
|
@@ -14,12 +22,12 @@ import {
|
|
|
14
22
|
isNonNullType,
|
|
15
23
|
typeReferenceFromNode
|
|
16
24
|
} from "./schema/reference.mjs";
|
|
17
|
-
function getVariableValues(
|
|
25
|
+
function getVariableValues(schemaFragment, varDefNodes, inputs, options) {
|
|
18
26
|
const errors = [];
|
|
19
27
|
const maxErrors = options == null ? void 0 : options.maxErrors;
|
|
20
28
|
try {
|
|
21
29
|
const coerced = coerceVariableValues(
|
|
22
|
-
|
|
30
|
+
schemaFragment,
|
|
23
31
|
varDefNodes,
|
|
24
32
|
inputs,
|
|
25
33
|
(error) => {
|
|
@@ -39,12 +47,12 @@ function getVariableValues(schemaTypes, varDefNodes, inputs, options) {
|
|
|
39
47
|
}
|
|
40
48
|
return { errors };
|
|
41
49
|
}
|
|
42
|
-
function coerceVariableValues(
|
|
50
|
+
function coerceVariableValues(schemaFragment, varDefNodes, inputs, onError) {
|
|
43
51
|
const coercedValues = {};
|
|
44
52
|
for (const varDefNode of varDefNodes) {
|
|
45
53
|
const varName = varDefNode.variable.name.value;
|
|
46
54
|
const varTypeReference = typeReferenceFromNode(varDefNode.type);
|
|
47
|
-
if (!
|
|
55
|
+
if (!isInputType(schemaFragment.definitions, varTypeReference)) {
|
|
48
56
|
const varTypeStr = inspectTypeReference(varTypeReference);
|
|
49
57
|
onError(
|
|
50
58
|
new GraphQLError(
|
|
@@ -59,7 +67,7 @@ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
|
|
|
59
67
|
coercedValues[varName] = valueFromAST(
|
|
60
68
|
varDefNode.defaultValue,
|
|
61
69
|
varTypeReference,
|
|
62
|
-
|
|
70
|
+
schemaFragment
|
|
63
71
|
);
|
|
64
72
|
} else if (isNonNullType(varTypeReference)) {
|
|
65
73
|
const varTypeStr = inspectTypeReference(varTypeReference);
|
|
@@ -86,7 +94,7 @@ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
|
|
|
86
94
|
coercedValues[varName] = coerceInputValue(
|
|
87
95
|
value,
|
|
88
96
|
varTypeReference,
|
|
89
|
-
|
|
97
|
+
schemaFragment,
|
|
90
98
|
(path, invalidValue, error) => {
|
|
91
99
|
let prefix = `Variable "$${varName}" got invalid value ` + inspect(invalidValue);
|
|
92
100
|
if (path.length > 0) {
|
|
@@ -105,9 +113,9 @@ function coerceVariableValues(schemaTypes, varDefNodes, inputs, onError) {
|
|
|
105
113
|
}
|
|
106
114
|
function getArgumentValues(exeContext, def, node) {
|
|
107
115
|
var _a;
|
|
108
|
-
const
|
|
116
|
+
const definitions = exeContext.schemaFragment.definitions;
|
|
109
117
|
const coercedValues = {};
|
|
110
|
-
const argumentDefs =
|
|
118
|
+
const argumentDefs = getDefinitionArguments(def);
|
|
111
119
|
if (!argumentDefs) {
|
|
112
120
|
return coercedValues;
|
|
113
121
|
}
|
|
@@ -115,8 +123,8 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
115
123
|
const argNodeMap = new Map(argumentNodes.map((arg) => [arg.name.value, arg]));
|
|
116
124
|
for (const [name, argumentDef] of Object.entries(argumentDefs)) {
|
|
117
125
|
const argumentNode = argNodeMap.get(name);
|
|
118
|
-
const argumentTypeRef =
|
|
119
|
-
const defaultValue =
|
|
126
|
+
const argumentTypeRef = getInputValueTypeReference(argumentDef);
|
|
127
|
+
const defaultValue = getInputDefaultValue(argumentDef);
|
|
120
128
|
if (argumentNode == null) {
|
|
121
129
|
if (defaultValue !== void 0) {
|
|
122
130
|
coercedValues[name] = defaultValue;
|
|
@@ -129,7 +137,7 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
129
137
|
}
|
|
130
138
|
continue;
|
|
131
139
|
}
|
|
132
|
-
if (!
|
|
140
|
+
if (!isDefined(definitions, argumentTypeRef)) {
|
|
133
141
|
throw locatedError(
|
|
134
142
|
`Could not find type for argument ${name} in ${node.kind} ${node.name.value}`,
|
|
135
143
|
[argumentNode]
|
|
@@ -163,7 +171,7 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
163
171
|
const coercedValue = valueFromAST(
|
|
164
172
|
valueNode,
|
|
165
173
|
argumentTypeRef,
|
|
166
|
-
|
|
174
|
+
exeContext.schemaFragment,
|
|
167
175
|
exeContext.variableValues
|
|
168
176
|
);
|
|
169
177
|
if (coercedValue === void 0) {
|
|
@@ -178,8 +186,7 @@ function getArgumentValues(exeContext, def, node) {
|
|
|
178
186
|
}
|
|
179
187
|
function getDirectiveValues(exeContext, directiveDef, node) {
|
|
180
188
|
var _a;
|
|
181
|
-
const
|
|
182
|
-
const name = schemaTypes.getDirectiveName(directiveDef);
|
|
189
|
+
const name = getDirectiveName(directiveDef);
|
|
183
190
|
const directiveNode = (_a = node.directives) == null ? void 0 : _a.find(
|
|
184
191
|
(directive) => directive.name.value === name
|
|
185
192
|
);
|