@graphitation/supermassive 3.15.3 → 3.16.1-canary.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +1 -9
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +41 -0
- package/lib/executeWithoutSchema.js.map +2 -2
- package/lib/executeWithoutSchema.mjs +41 -0
- package/lib/executeWithoutSchema.mjs.map +2 -2
- package/lib/schema/definition.d.ts +54 -19
- package/lib/schema/definition.d.ts.map +1 -1
- package/lib/schema/definition.js +127 -18
- package/lib/schema/definition.js.map +3 -3
- package/lib/schema/definition.mjs +109 -16
- package/lib/schema/definition.mjs.map +2 -2
- package/lib/schema/directives.d.ts.map +1 -1
- package/lib/schema/directives.js +9 -4
- package/lib/schema/directives.js.map +2 -2
- package/lib/schema/directives.mjs +10 -5
- package/lib/schema/directives.mjs.map +2 -2
- package/lib/utilities/decodeASTSchema.d.ts.map +1 -1
- package/lib/utilities/decodeASTSchema.js +185 -33
- package/lib/utilities/decodeASTSchema.js.map +2 -2
- package/lib/utilities/decodeASTSchema.mjs +196 -36
- package/lib/utilities/decodeASTSchema.mjs.map +2 -2
- package/lib/utilities/encodeASTSchema.d.ts +5 -1
- package/lib/utilities/encodeASTSchema.d.ts.map +1 -1
- package/lib/utilities/encodeASTSchema.js +171 -38
- package/lib/utilities/encodeASTSchema.js.map +2 -2
- package/lib/utilities/encodeASTSchema.mjs +171 -38
- package/lib/utilities/encodeASTSchema.mjs.map +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js +1 -1
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.js.map +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs +2 -2
- package/lib/utilities/extractMinimalViableSchemaForRequestDocument.mjs.map +2 -2
- package/lib/utilities/mergeSchemaDefinitions.d.ts +6 -2
- package/lib/utilities/mergeSchemaDefinitions.d.ts.map +1 -1
- package/lib/utilities/mergeSchemaDefinitions.js +86 -5
- package/lib/utilities/mergeSchemaDefinitions.js.map +3 -3
- package/lib/utilities/mergeSchemaDefinitions.mjs +96 -7
- package/lib/utilities/mergeSchemaDefinitions.mjs.map +3 -3
- package/lib/utilities/subtractSchemaDefinitions.js +4 -4
- package/lib/utilities/subtractSchemaDefinitions.js.map +2 -2
- package/lib/utilities/subtractSchemaDefinitions.mjs +5 -5
- package/lib/utilities/subtractSchemaDefinitions.mjs.map +2 -2
- package/lib/values.js +2 -2
- package/lib/values.js.map +2 -2
- package/lib/values.mjs +4 -4
- package/lib/values.mjs.map +2 -2
- package/package.json +1 -1
|
@@ -20,10 +20,18 @@ import {
|
|
|
20
20
|
getFieldArgs,
|
|
21
21
|
getInputValueTypeReference,
|
|
22
22
|
getInputDefaultValue,
|
|
23
|
-
|
|
23
|
+
getDirectiveDefinitionName,
|
|
24
24
|
getDirectiveDefinitionArgs,
|
|
25
|
-
|
|
26
|
-
decodeDirectiveLocation
|
|
25
|
+
getDirectiveDefinitionLocations,
|
|
26
|
+
decodeDirectiveLocation,
|
|
27
|
+
getObjectTypeMetadata,
|
|
28
|
+
getInterfaceTypeMetadata,
|
|
29
|
+
getEnumMetadata,
|
|
30
|
+
getUnionTypeMetadata,
|
|
31
|
+
getScalarTypeMetadata,
|
|
32
|
+
getInputTypeMetadata,
|
|
33
|
+
getDirectiveDefinitionMetadata,
|
|
34
|
+
getFieldMetadata
|
|
27
35
|
} from "../schema/definition.mjs";
|
|
28
36
|
import {
|
|
29
37
|
inspectTypeReference,
|
|
@@ -40,98 +48,196 @@ function decodeASTSchema(encodedSchemaFragments) {
|
|
|
40
48
|
}
|
|
41
49
|
const definitions = [];
|
|
42
50
|
const types = encodedSchemaFragments[0].types;
|
|
43
|
-
const
|
|
51
|
+
const directiveDefinitions = encodedSchemaFragments[0].directives;
|
|
44
52
|
for (const typeName in types) {
|
|
45
53
|
const tuple = types[typeName];
|
|
46
54
|
if (isScalarTypeDefinition(tuple)) {
|
|
47
|
-
definitions.push(
|
|
55
|
+
definitions.push(
|
|
56
|
+
decodeScalarType(typeName, tuple, types, directiveDefinitions)
|
|
57
|
+
);
|
|
48
58
|
} else if (isEnumTypeDefinition(tuple)) {
|
|
49
|
-
definitions.push(
|
|
59
|
+
definitions.push(
|
|
60
|
+
decodeEnumType(typeName, tuple, types, directiveDefinitions)
|
|
61
|
+
);
|
|
50
62
|
} else if (isObjectTypeDefinition(tuple)) {
|
|
51
|
-
definitions.push(
|
|
63
|
+
definitions.push(
|
|
64
|
+
decodeObjectType(typeName, tuple, types, directiveDefinitions)
|
|
65
|
+
);
|
|
52
66
|
} else if (isInterfaceTypeDefinition(tuple)) {
|
|
53
|
-
definitions.push(
|
|
67
|
+
definitions.push(
|
|
68
|
+
decodeInterfaceType(typeName, tuple, types, directiveDefinitions)
|
|
69
|
+
);
|
|
54
70
|
} else if (isUnionTypeDefinition(tuple)) {
|
|
55
|
-
definitions.push(
|
|
71
|
+
definitions.push(
|
|
72
|
+
decodeUnionType(typeName, tuple, types, directiveDefinitions)
|
|
73
|
+
);
|
|
56
74
|
} else if (isInputObjectTypeDefinition(tuple)) {
|
|
57
|
-
definitions.push(
|
|
75
|
+
definitions.push(
|
|
76
|
+
decodeInputObjectType(typeName, tuple, types, directiveDefinitions)
|
|
77
|
+
);
|
|
58
78
|
}
|
|
59
79
|
}
|
|
60
|
-
for (const
|
|
61
|
-
definitions.push(
|
|
80
|
+
for (const directiveDefinition of directiveDefinitions != null ? directiveDefinitions : []) {
|
|
81
|
+
definitions.push(decodeDirectiveDefinition(directiveDefinition, types));
|
|
62
82
|
}
|
|
63
83
|
return { kind: Kind.DOCUMENT, definitions };
|
|
64
84
|
}
|
|
65
85
|
function nameNode(value) {
|
|
66
86
|
return { kind: Kind.NAME, value };
|
|
67
87
|
}
|
|
68
|
-
function decodeScalarType(typeName) {
|
|
88
|
+
function decodeScalarType(typeName, tuple, types, directiveDefinitions) {
|
|
89
|
+
const { directives: metadataDirectives, description: metadataDescription } = getScalarTypeMetadata(tuple) || {};
|
|
90
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
91
|
+
const decodedDirectives = decodeDirective(
|
|
92
|
+
metadataDirectives,
|
|
93
|
+
types,
|
|
94
|
+
directiveDefinitions
|
|
95
|
+
);
|
|
69
96
|
return {
|
|
70
97
|
kind: Kind.SCALAR_TYPE_DEFINITION,
|
|
71
|
-
name: nameNode(typeName)
|
|
98
|
+
name: nameNode(typeName),
|
|
99
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
100
|
+
...decodedDescription && { description: decodedDescription }
|
|
72
101
|
};
|
|
73
102
|
}
|
|
74
|
-
function decodeEnumType(typeName, tuple) {
|
|
103
|
+
function decodeEnumType(typeName, tuple, types, directiveDefinitions) {
|
|
104
|
+
const {
|
|
105
|
+
directives: metadataDirectives,
|
|
106
|
+
description: metadataDescription,
|
|
107
|
+
values
|
|
108
|
+
} = getEnumMetadata(tuple) || {};
|
|
109
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
110
|
+
const decodedDirectives = decodeDirective(
|
|
111
|
+
metadataDirectives,
|
|
112
|
+
types,
|
|
113
|
+
directiveDefinitions
|
|
114
|
+
);
|
|
75
115
|
return {
|
|
76
116
|
kind: Kind.ENUM_TYPE_DEFINITION,
|
|
77
117
|
name: nameNode(typeName),
|
|
78
|
-
values: getEnumValues(tuple).map((value) =>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
118
|
+
values: getEnumValues(tuple).map((value) => {
|
|
119
|
+
const valueMetadata = values == null ? void 0 : values[value];
|
|
120
|
+
const decodedValueDescription = decodeDescription(
|
|
121
|
+
valueMetadata == null ? void 0 : valueMetadata.description
|
|
122
|
+
);
|
|
123
|
+
const decodedValueDirectives = decodeDirective(
|
|
124
|
+
valueMetadata == null ? void 0 : valueMetadata.directives,
|
|
125
|
+
types,
|
|
126
|
+
directiveDefinitions
|
|
127
|
+
);
|
|
128
|
+
return {
|
|
129
|
+
kind: Kind.ENUM_VALUE_DEFINITION,
|
|
130
|
+
name: nameNode(value),
|
|
131
|
+
...decodedValueDirectives && { directives: decodedValueDirectives },
|
|
132
|
+
...decodedValueDescription && {
|
|
133
|
+
description: decodedValueDescription
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
}),
|
|
137
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
138
|
+
...decodedDescription && { description: decodedDescription }
|
|
82
139
|
};
|
|
83
140
|
}
|
|
84
|
-
function decodeObjectType(typeName, tuple, types) {
|
|
141
|
+
function decodeObjectType(typeName, tuple, types, directiveDefinitions) {
|
|
85
142
|
var _a;
|
|
143
|
+
const { directives: metadataDirectives, description: metadataDescription } = getObjectTypeMetadata(tuple) || {};
|
|
144
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
145
|
+
const decodedDirectives = decodeDirective(
|
|
146
|
+
metadataDirectives,
|
|
147
|
+
types,
|
|
148
|
+
directiveDefinitions
|
|
149
|
+
);
|
|
86
150
|
return {
|
|
87
151
|
kind: Kind.OBJECT_TYPE_DEFINITION,
|
|
88
152
|
name: nameNode(typeName),
|
|
89
|
-
fields: decodeFields(
|
|
153
|
+
fields: decodeFields(
|
|
154
|
+
(_a = getObjectFields(tuple)) != null ? _a : {},
|
|
155
|
+
types,
|
|
156
|
+
directiveDefinitions
|
|
157
|
+
),
|
|
90
158
|
interfaces: getObjectTypeInterfaces(tuple).map((name) => ({
|
|
91
159
|
kind: Kind.NAMED_TYPE,
|
|
92
160
|
name: nameNode(name)
|
|
93
|
-
}))
|
|
161
|
+
})),
|
|
162
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
163
|
+
...decodedDescription && { description: decodedDescription }
|
|
94
164
|
};
|
|
95
165
|
}
|
|
96
|
-
function decodeInterfaceType(typeName, tuple, types) {
|
|
166
|
+
function decodeInterfaceType(typeName, tuple, types, directiveDefinitions) {
|
|
167
|
+
const { directives: metadataDirectives, description: metadataDescription } = getInterfaceTypeMetadata(tuple) || {};
|
|
168
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
169
|
+
const decodedDirectives = decodeDirective(
|
|
170
|
+
metadataDirectives,
|
|
171
|
+
types,
|
|
172
|
+
directiveDefinitions
|
|
173
|
+
);
|
|
97
174
|
return {
|
|
98
175
|
kind: Kind.INTERFACE_TYPE_DEFINITION,
|
|
99
176
|
name: nameNode(typeName),
|
|
100
|
-
fields: decodeFields(getFields(tuple), types),
|
|
177
|
+
fields: decodeFields(getFields(tuple), types, directiveDefinitions),
|
|
101
178
|
interfaces: getInterfaceTypeInterfaces(tuple).map((name) => ({
|
|
102
179
|
kind: Kind.NAMED_TYPE,
|
|
103
180
|
name: nameNode(name)
|
|
104
|
-
}))
|
|
181
|
+
})),
|
|
182
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
183
|
+
...decodedDescription && { description: decodedDescription }
|
|
105
184
|
};
|
|
106
185
|
}
|
|
107
|
-
function decodeUnionType(typeName, tuple) {
|
|
186
|
+
function decodeUnionType(typeName, tuple, types, directiveDefinitions) {
|
|
187
|
+
const { directives: metadataDirectives, description: metadataDescription } = getUnionTypeMetadata(tuple) || {};
|
|
188
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
189
|
+
const decodedDirectives = decodeDirective(
|
|
190
|
+
metadataDirectives,
|
|
191
|
+
types,
|
|
192
|
+
directiveDefinitions
|
|
193
|
+
);
|
|
108
194
|
return {
|
|
109
195
|
kind: Kind.UNION_TYPE_DEFINITION,
|
|
110
196
|
name: nameNode(typeName),
|
|
111
197
|
types: getUnionTypeMembers(tuple).map((name) => ({
|
|
112
198
|
kind: Kind.NAMED_TYPE,
|
|
113
199
|
name: nameNode(name)
|
|
114
|
-
}))
|
|
200
|
+
})),
|
|
201
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
202
|
+
...decodedDescription && { description: decodedDescription }
|
|
115
203
|
};
|
|
116
204
|
}
|
|
117
|
-
function decodeInputObjectType(typeName, tuple, types) {
|
|
205
|
+
function decodeInputObjectType(typeName, tuple, types, directiveDefinitions) {
|
|
206
|
+
const { directives: metadataDirectives, description: metadataDescription } = getInputTypeMetadata(tuple) || {};
|
|
207
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
208
|
+
const decodedDirectives = decodeDirective(
|
|
209
|
+
metadataDirectives,
|
|
210
|
+
types,
|
|
211
|
+
directiveDefinitions
|
|
212
|
+
);
|
|
118
213
|
return {
|
|
119
214
|
kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,
|
|
120
215
|
name: nameNode(typeName),
|
|
121
216
|
fields: Object.entries(getInputObjectFields(tuple)).map(
|
|
122
217
|
([name, value]) => decodeInputValue(name, value, types)
|
|
123
|
-
)
|
|
218
|
+
),
|
|
219
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
220
|
+
...decodedDescription && { description: decodedDescription }
|
|
124
221
|
};
|
|
125
222
|
}
|
|
126
|
-
function decodeFields(fields, types) {
|
|
223
|
+
function decodeFields(fields, types, directiveDefinitions) {
|
|
127
224
|
return Object.entries(fields).map(([name, value]) => {
|
|
128
225
|
var _a;
|
|
129
226
|
const type = decodeTypeReference(getFieldTypeReference(value));
|
|
227
|
+
const { directives: metadataDirectives, description: metadataDescription } = getFieldMetadata(value) || {};
|
|
228
|
+
const decodedDescription = decodeDescription(metadataDescription);
|
|
229
|
+
const decodedDirectives = decodeDirective(
|
|
230
|
+
metadataDirectives,
|
|
231
|
+
types,
|
|
232
|
+
directiveDefinitions
|
|
233
|
+
);
|
|
130
234
|
return {
|
|
131
235
|
kind: Kind.FIELD_DEFINITION,
|
|
132
236
|
name: nameNode(name),
|
|
133
237
|
type,
|
|
134
|
-
arguments: decodeArguments((_a = getFieldArgs(value)) != null ? _a : {}, types)
|
|
238
|
+
arguments: decodeArguments((_a = getFieldArgs(value)) != null ? _a : {}, types),
|
|
239
|
+
...decodedDirectives && { directives: decodedDirectives },
|
|
240
|
+
...decodedDescription && { description: decodedDescription }
|
|
135
241
|
};
|
|
136
242
|
});
|
|
137
243
|
}
|
|
@@ -235,10 +341,11 @@ function decodeTypeReference(ref) {
|
|
|
235
341
|
name: nameNode(typeNameFromReference(ref))
|
|
236
342
|
};
|
|
237
343
|
}
|
|
238
|
-
function
|
|
239
|
-
const name =
|
|
344
|
+
function decodeDirectiveDefinition(tuple, types) {
|
|
345
|
+
const name = getDirectiveDefinitionName(tuple);
|
|
240
346
|
const args = getDirectiveDefinitionArgs(tuple);
|
|
241
|
-
const locations =
|
|
347
|
+
const locations = getDirectiveDefinitionLocations(tuple);
|
|
348
|
+
const { repeatable, description } = getDirectiveDefinitionMetadata(tuple) || {};
|
|
242
349
|
return {
|
|
243
350
|
kind: Kind.DIRECTIVE_DEFINITION,
|
|
244
351
|
name: nameNode(name),
|
|
@@ -247,8 +354,61 @@ function decodeDirective(tuple, types) {
|
|
|
247
354
|
kind: Kind.NAME,
|
|
248
355
|
value: decodeDirectiveLocation(loc)
|
|
249
356
|
})),
|
|
250
|
-
|
|
251
|
-
repeatable:
|
|
357
|
+
description: decodeDescription(description),
|
|
358
|
+
repeatable: Boolean(repeatable)
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
function decodeDirective(directiveTuples, types, directiveDefinitions) {
|
|
362
|
+
if (!directiveTuples || !directiveDefinitions) {
|
|
363
|
+
return;
|
|
364
|
+
}
|
|
365
|
+
return directiveTuples.map(([directiveName, args]) => {
|
|
366
|
+
var _a, _b;
|
|
367
|
+
const directiveTuple = directiveDefinitions == null ? void 0 : directiveDefinitions.find(
|
|
368
|
+
(directiveDefinition) => getDirectiveDefinitionName(directiveDefinition) === directiveName
|
|
369
|
+
);
|
|
370
|
+
invariant(
|
|
371
|
+
directiveTuple !== void 0,
|
|
372
|
+
`Could not find directive definition for "${directiveName}"`
|
|
373
|
+
);
|
|
374
|
+
const argumentDefinitions = getDirectiveDefinitionArgs(directiveTuple);
|
|
375
|
+
const repeatable = Boolean(
|
|
376
|
+
(_a = getDirectiveDefinitionMetadata(directiveTuple)) == null ? void 0 : _a.repeatable
|
|
377
|
+
);
|
|
378
|
+
return {
|
|
379
|
+
kind: Kind.DIRECTIVE,
|
|
380
|
+
name: nameNode(directiveName),
|
|
381
|
+
...repeatable && { repeatable },
|
|
382
|
+
arguments: args && argumentDefinitions ? (_b = Object.entries(args)) == null ? void 0 : _b.map(([argName, argValue]) => {
|
|
383
|
+
invariant(
|
|
384
|
+
argumentDefinitions[argName] !== void 0,
|
|
385
|
+
`Could not find directive argument definition "${argName}"for "${directiveName}" directive`
|
|
386
|
+
);
|
|
387
|
+
const inputValueTypeRef = getInputValueTypeReference(
|
|
388
|
+
argumentDefinitions[argName]
|
|
389
|
+
);
|
|
390
|
+
return {
|
|
391
|
+
kind: Kind.ARGUMENT,
|
|
392
|
+
name: nameNode(argName),
|
|
393
|
+
value: valueToConstValueNode(
|
|
394
|
+
argValue,
|
|
395
|
+
inputValueTypeRef,
|
|
396
|
+
types
|
|
397
|
+
)
|
|
398
|
+
};
|
|
399
|
+
}) : []
|
|
400
|
+
};
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
function decodeDescription(description) {
|
|
404
|
+
if (!description) {
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
const { value, block } = description;
|
|
408
|
+
return {
|
|
409
|
+
kind: "StringValue",
|
|
410
|
+
value,
|
|
411
|
+
block
|
|
252
412
|
};
|
|
253
413
|
}
|
|
254
414
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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\";\nimport {\n DirectiveDefinitionTuple,\n SchemaDefinitions,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InterfaceTypeDefinitionTuple,\n ObjectTypeDefinitionTuple,\n TypeDefinitionsRecord,\n UnionTypeDefinitionTuple,\n isScalarTypeDefinition,\n isEnumTypeDefinition,\n isObjectTypeDefinition,\n isInterfaceTypeDefinition,\n isUnionTypeDefinition,\n isInputObjectTypeDefinition,\n getEnumValues,\n getObjectFields,\n getObjectTypeInterfaces,\n getFields,\n getInterfaceTypeInterfaces,\n getUnionTypeMembers,\n getInputObjectFields,\n getFieldTypeReference,\n getFieldArgs,\n getInputValueTypeReference,\n getInputDefaultValue,\n getDirectiveName,\n getDirectiveDefinitionArgs,\n getDirectiveLocations,\n decodeDirectiveLocation,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n typeNameFromReference,\n TypeReference,\n unwrap,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport { ValueNode as ConstValueNode } from \"graphql/language/ast\"; // TODO: use ConstValueNode in graphql@17\nimport { inspect } from \"../jsutils/inspect\";\n\n/**\n * Converts encoded schema to standard AST representation of the same schema\n */\nexport function decodeASTSchema(\n encodedSchemaFragments: SchemaDefinitions[],\n): DocumentNode {\n if (encodedSchemaFragments.length !== 1) {\n // TODO:\n throw new Error(\"decodeSchema does not support decoding extensions yet\");\n }\n const definitions = [];\n const types = encodedSchemaFragments[0].types;\n const directives = encodedSchemaFragments[0].directives;\n\n for (const typeName in types) {\n const tuple = types[typeName];\n if (isScalarTypeDefinition(tuple)) {\n definitions.push(decodeScalarType(typeName));\n } else if (isEnumTypeDefinition(tuple)) {\n definitions.push(decodeEnumType(typeName, tuple));\n } else if (isObjectTypeDefinition(tuple)) {\n definitions.push(decodeObjectType(typeName, tuple, types));\n } else if (isInterfaceTypeDefinition(tuple)) {\n definitions.push(decodeInterfaceType(typeName, tuple, types));\n } else if (isUnionTypeDefinition(tuple)) {\n definitions.push(decodeUnionType(typeName, tuple));\n } else if (isInputObjectTypeDefinition(tuple)) {\n definitions.push(decodeInputObjectType(typeName, tuple, types));\n }\n }\n\n for (const directive of 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: getEnumValues(tuple).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(getObjectFields(tuple) ?? {}, types),\n interfaces: getObjectTypeInterfaces(tuple).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(getFields(tuple), types),\n interfaces: getInterfaceTypeInterfaces(tuple).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: getUnionTypeMembers(tuple).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(getInputObjectFields(tuple)).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 = decodeTypeReference(getFieldTypeReference(value));\n return {\n kind: Kind.FIELD_DEFINITION,\n name: nameNode(name),\n type,\n arguments: decodeArguments(getFieldArgs(value) ?? {}, types),\n };\n });\n}\n\nfunction decodeInputValue(\n name: string,\n value: InputValueDefinition,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode {\n const inputValueTypeRef = getInputValueTypeReference(value);\n const type = decodeTypeReference(inputValueTypeRef);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n name: nameNode(name),\n type,\n defaultValue: Array.isArray(value)\n ? (valueToConstValueNode(\n getInputDefaultValue(value),\n inputValueTypeRef,\n types,\n ) as any) // Note: \"any\" is necessary here for graphql15/graphql17 cross-compatibility\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 === \"boolean\") {\n return { kind: Kind.BOOLEAN, value: 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) && isInputObjectTypeDefinition(typeDef),\n `Expecting input object type for ${typeName}, got ${typeDef?.[0]}`,\n );\n const fields = getInputObjectFields(typeDef);\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(jsValue).map(([name, value]) => {\n const fieldDef = fields[name];\n const fieldTypeRef = getInputValueTypeReference(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 = getDirectiveName(tuple);\n const args = getDirectiveDefinitionArgs(tuple);\n const locations = getDirectiveLocations(tuple);\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n name: nameNode(name),\n arguments: args ? decodeArguments(args, types) : [],\n locations: locations.map((loc) => ({\n kind: Kind.NAME,\n value: decodeDirectiveLocation(loc),\n })),\n // TODO? repeatable are irrelevant for execution\n repeatable: false,\n };\n}\n"],
|
|
5
|
-
"mappings": ";AAAA;AAAA,EAQE;AAAA,OAQK;AACP;AAAA,EAWE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,
|
|
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\";\nimport {\n DirectiveDefinitionTuple,\n SchemaDefinitions,\n EnumTypeDefinitionTuple,\n FieldDefinition,\n InputObjectTypeDefinitionTuple,\n InputValueDefinition,\n InterfaceTypeDefinitionTuple,\n ObjectTypeDefinitionTuple,\n TypeDefinitionsRecord,\n UnionTypeDefinitionTuple,\n isScalarTypeDefinition,\n isEnumTypeDefinition,\n isObjectTypeDefinition,\n isInterfaceTypeDefinition,\n isUnionTypeDefinition,\n isInputObjectTypeDefinition,\n getEnumValues,\n getObjectFields,\n getObjectTypeInterfaces,\n getFields,\n getInterfaceTypeInterfaces,\n getUnionTypeMembers,\n getInputObjectFields,\n getFieldTypeReference,\n getFieldArgs,\n getInputValueTypeReference,\n getInputDefaultValue,\n getDirectiveDefinitionName,\n getDirectiveDefinitionArgs,\n getDirectiveDefinitionLocations,\n decodeDirectiveLocation,\n getObjectTypeMetadata,\n getInterfaceTypeMetadata,\n getEnumMetadata,\n getUnionTypeMetadata,\n ScalarTypeDefinitionTuple,\n getScalarTypeMetadata,\n getInputTypeMetadata,\n DirectiveTuple,\n getDirectiveDefinitionMetadata,\n getFieldMetadata,\n Description,\n} from \"../schema/definition\";\nimport {\n inspectTypeReference,\n isListType,\n isNonNullType,\n typeNameFromReference,\n TypeReference,\n unwrap,\n} from \"../schema/reference\";\nimport { invariant } from \"../jsutils/invariant\";\nimport {\n ValueNode as ConstValueNode,\n DirectiveNode,\n StringValueNode,\n} from \"graphql/language/ast\"; // TODO: use ConstValueNode in graphql@17\nimport { inspect } from \"../jsutils/inspect\";\n\n/**\n * Converts encoded schema to standard AST representation of the same schema\n */\nexport function decodeASTSchema(\n encodedSchemaFragments: SchemaDefinitions[],\n): DocumentNode {\n if (encodedSchemaFragments.length !== 1) {\n // TODO:\n throw new Error(\"decodeSchema does not support decoding extensions yet\");\n }\n const definitions = [];\n const types = encodedSchemaFragments[0].types;\n const directiveDefinitions = encodedSchemaFragments[0].directives;\n\n for (const typeName in types) {\n const tuple = types[typeName];\n if (isScalarTypeDefinition(tuple)) {\n definitions.push(\n decodeScalarType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isEnumTypeDefinition(tuple)) {\n definitions.push(\n decodeEnumType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isObjectTypeDefinition(tuple)) {\n definitions.push(\n decodeObjectType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isInterfaceTypeDefinition(tuple)) {\n definitions.push(\n decodeInterfaceType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isUnionTypeDefinition(tuple)) {\n definitions.push(\n decodeUnionType(typeName, tuple, types, directiveDefinitions),\n );\n } else if (isInputObjectTypeDefinition(tuple)) {\n definitions.push(\n decodeInputObjectType(typeName, tuple, types, directiveDefinitions),\n );\n }\n }\n\n for (const directiveDefinition of directiveDefinitions ?? []) {\n definitions.push(decodeDirectiveDefinition(directiveDefinition, 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(\n typeName: string,\n tuple: ScalarTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): ScalarTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getScalarTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n name: nameNode(typeName),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeEnumType(\n typeName: string,\n tuple: EnumTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): EnumTypeDefinitionNode {\n const {\n directives: metadataDirectives,\n description: metadataDescription,\n values,\n } = getEnumMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.ENUM_TYPE_DEFINITION,\n name: nameNode(typeName),\n values: getEnumValues(tuple).map((value) => {\n const valueMetadata = values?.[value];\n const decodedValueDescription = decodeDescription(\n valueMetadata?.description,\n );\n const decodedValueDirectives = decodeDirective(\n valueMetadata?.directives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.ENUM_VALUE_DEFINITION,\n name: nameNode(value),\n ...(decodedValueDirectives && { directives: decodedValueDirectives }),\n ...(decodedValueDescription && {\n description: decodedValueDescription,\n }),\n };\n }),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeObjectType(\n typeName: string,\n tuple: ObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): ObjectTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getObjectTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(\n getObjectFields(tuple) ?? {},\n types,\n directiveDefinitions,\n ),\n interfaces: getObjectTypeInterfaces(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeInterfaceType(\n typeName: string,\n tuple: InterfaceTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): InterfaceTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getInterfaceTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: decodeFields(getFields(tuple), types, directiveDefinitions),\n interfaces: getInterfaceTypeInterfaces(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeUnionType(\n typeName: string,\n tuple: UnionTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): UnionTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getUnionTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.UNION_TYPE_DEFINITION,\n name: nameNode(typeName),\n types: getUnionTypeMembers(tuple).map((name) => ({\n kind: Kind.NAMED_TYPE,\n name: nameNode(name),\n })),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeInputObjectType(\n typeName: string,\n tuple: InputObjectTypeDefinitionTuple,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): InputObjectTypeDefinitionNode {\n const { directives: metadataDirectives, description: metadataDescription } =\n getInputTypeMetadata(tuple) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n\n return {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n name: nameNode(typeName),\n fields: Object.entries(getInputObjectFields(tuple)).map(([name, value]) =>\n decodeInputValue(name, value, types),\n ),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n}\n\nfunction decodeFields(\n fields: Record<string, FieldDefinition>,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): FieldDefinitionNode[] {\n return Object.entries(fields).map(([name, value]) => {\n const type = decodeTypeReference(getFieldTypeReference(value));\n const { directives: metadataDirectives, description: metadataDescription } =\n getFieldMetadata(value) || {};\n const decodedDescription = decodeDescription(metadataDescription);\n const decodedDirectives = decodeDirective(\n metadataDirectives,\n types,\n directiveDefinitions,\n );\n return {\n kind: Kind.FIELD_DEFINITION,\n name: nameNode(name),\n type,\n arguments: decodeArguments(getFieldArgs(value) ?? {}, types),\n ...(decodedDirectives && { directives: decodedDirectives }),\n ...(decodedDescription && { description: decodedDescription }),\n };\n });\n}\n\nfunction decodeInputValue(\n name: string,\n value: InputValueDefinition,\n types: TypeDefinitionsRecord,\n): InputValueDefinitionNode {\n const inputValueTypeRef = getInputValueTypeReference(value);\n const type = decodeTypeReference(inputValueTypeRef);\n return {\n kind: Kind.INPUT_VALUE_DEFINITION,\n name: nameNode(name),\n type,\n defaultValue: Array.isArray(value)\n ? (valueToConstValueNode(\n getInputDefaultValue(value),\n inputValueTypeRef,\n types,\n ) as any) // Note: \"any\" is necessary here for graphql15/graphql17 cross-compatibility\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 === \"boolean\") {\n return { kind: Kind.BOOLEAN, value: 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) && isInputObjectTypeDefinition(typeDef),\n `Expecting input object type for ${typeName}, got ${typeDef?.[0]}`,\n );\n const fields = getInputObjectFields(typeDef);\n return {\n kind: Kind.OBJECT,\n fields: Object.entries(jsValue).map(([name, value]) => {\n const fieldDef = fields[name];\n const fieldTypeRef = getInputValueTypeReference(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 decodeDirectiveDefinition(\n tuple: DirectiveDefinitionTuple,\n types: TypeDefinitionsRecord,\n): DirectiveDefinitionNode {\n const name = getDirectiveDefinitionName(tuple);\n const args = getDirectiveDefinitionArgs(tuple);\n const locations = getDirectiveDefinitionLocations(tuple);\n const { repeatable, description } =\n getDirectiveDefinitionMetadata(tuple) || {};\n return {\n kind: Kind.DIRECTIVE_DEFINITION,\n name: nameNode(name),\n arguments: args ? decodeArguments(args, types) : [],\n locations: locations.map((loc) => ({\n kind: Kind.NAME,\n value: decodeDirectiveLocation(loc),\n })),\n description: decodeDescription(description),\n repeatable: Boolean(repeatable),\n };\n}\n\nfunction decodeDirective(\n directiveTuples: DirectiveTuple[] | undefined,\n types: TypeDefinitionsRecord,\n directiveDefinitions?: DirectiveDefinitionTuple[],\n): ReadonlyArray<DirectiveNode> | undefined {\n if (!directiveTuples || !directiveDefinitions) {\n return;\n }\n\n return directiveTuples.map(([directiveName, args]) => {\n const directiveTuple = directiveDefinitions?.find(\n (directiveDefinition) =>\n getDirectiveDefinitionName(directiveDefinition) === directiveName,\n );\n\n invariant(\n directiveTuple !== undefined,\n `Could not find directive definition for \"${directiveName}\"`,\n );\n\n const argumentDefinitions = getDirectiveDefinitionArgs(directiveTuple);\n const repeatable = Boolean(\n getDirectiveDefinitionMetadata(directiveTuple)?.repeatable,\n );\n\n return {\n kind: Kind.DIRECTIVE,\n name: nameNode(directiveName),\n ...(repeatable && { repeatable }),\n arguments:\n args && argumentDefinitions\n ? Object.entries(args)?.map(([argName, argValue]) => {\n invariant(\n argumentDefinitions[argName] !== undefined,\n `Could not find directive argument definition \"${argName}\"for \"${directiveName}\" directive`,\n );\n\n const inputValueTypeRef = getInputValueTypeReference(\n argumentDefinitions[argName],\n );\n\n return {\n kind: Kind.ARGUMENT,\n name: nameNode(argName),\n value: valueToConstValueNode(\n argValue,\n inputValueTypeRef,\n types,\n ),\n };\n })\n : [],\n };\n });\n}\n\nfunction decodeDescription(\n description?: Description,\n): StringValueNode | undefined {\n if (!description) {\n return;\n }\n\n const { value, block } = description;\n return {\n kind: \"StringValue\",\n value,\n block,\n };\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { DocumentNode } from "graphql";
|
|
2
2
|
import { SchemaDefinitions } from "../schema/definition";
|
|
3
|
-
export
|
|
3
|
+
export type EncodeASTSchemaOptions = {
|
|
4
|
+
includeDirectives?: boolean;
|
|
5
|
+
includeDescriptions?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function encodeASTSchema(schemaFragment: DocumentNode, options?: EncodeASTSchemaOptions): SchemaDefinitions[];
|
|
4
8
|
//# sourceMappingURL=encodeASTSchema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encodeASTSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/encodeASTSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,YAAY,
|
|
1
|
+
{"version":3,"file":"encodeASTSchema.d.ts","sourceRoot":"","sources":["../../src/utilities/encodeASTSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,YAAY,EASb,MAAM,SAAS,CAAC;AACjB,OAAO,EAWL,iBAAiB,EAalB,MAAM,sBAAsB,CAAC;AAI9B,MAAM,MAAM,sBAAsB,GAAG;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,wBAAgB,eAAe,CAC7B,cAAc,EAAE,YAAY,EAC5B,OAAO,CAAC,EAAE,sBAAsB,GAC/B,iBAAiB,EAAE,CA8CrB"}
|