@graphitation/supermassive 3.3.0 → 3.4.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 +18 -2
- package/lib/collectFields.d.ts +8 -21
- package/lib/collectFields.d.ts.map +1 -1
- package/lib/collectFields.js +95 -97
- package/lib/collectFields.js.map +2 -2
- package/lib/collectFields.mjs +95 -97
- package/lib/collectFields.mjs.map +2 -2
- package/lib/executeWithoutSchema.d.ts +50 -6
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +517 -622
- package/lib/executeWithoutSchema.js.map +3 -3
- package/lib/executeWithoutSchema.mjs +518 -633
- package/lib/executeWithoutSchema.mjs.map +3 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/index.mjs.map +1 -1
- package/lib/types.d.ts +27 -63
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utilities/decodeASTSchema.js +3 -0
- package/lib/utilities/decodeASTSchema.js.map +2 -2
- package/lib/utilities/decodeASTSchema.mjs +3 -0
- package/lib/utilities/decodeASTSchema.mjs.map +2 -2
- package/lib/values.d.ts +4 -5
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js +8 -13
- package/lib/values.js.map +2 -2
- package/lib/values.mjs +8 -13
- package/lib/values.mjs.map +2 -2
- package/package.json +1 -1
- package/lib/IncrementalPublisher.d.ts +0 -131
- package/lib/IncrementalPublisher.d.ts.map +0 -1
- package/lib/IncrementalPublisher.js +0 -519
- package/lib/IncrementalPublisher.js.map +0 -7
- package/lib/IncrementalPublisher.mjs +0 -503
- package/lib/IncrementalPublisher.mjs.map +0 -7
- package/lib/buildFieldPlan.d.ts +0 -18
- package/lib/buildFieldPlan.d.ts.map +0 -1
- package/lib/buildFieldPlan.js +0 -120
- package/lib/buildFieldPlan.js.map +0 -7
- package/lib/buildFieldPlan.mjs +0 -101
- package/lib/buildFieldPlan.mjs.map +0 -7
- package/lib/jsutils/getBySet.d.ts +0 -2
- package/lib/jsutils/getBySet.d.ts.map +0 -1
- package/lib/jsutils/getBySet.js +0 -32
- package/lib/jsutils/getBySet.js.map +0 -7
- package/lib/jsutils/getBySet.mjs +0 -13
- package/lib/jsutils/getBySet.mjs.map +0 -7
- package/lib/jsutils/isSameSet.d.ts +0 -2
- package/lib/jsutils/isSameSet.d.ts.map +0 -1
- package/lib/jsutils/isSameSet.js +0 -34
- package/lib/jsutils/isSameSet.js.map +0 -7
- package/lib/jsutils/isSameSet.mjs +0 -15
- package/lib/jsutils/isSameSet.mjs.map +0 -7
- package/lib/jsutils/promiseWithResolvers.d.ts +0 -11
- package/lib/jsutils/promiseWithResolvers.d.ts.map +0 -1
- package/lib/jsutils/promiseWithResolvers.js +0 -32
- package/lib/jsutils/promiseWithResolvers.js.map +0 -7
- package/lib/jsutils/promiseWithResolvers.mjs +0 -13
- package/lib/jsutils/promiseWithResolvers.mjs.map +0 -7
package/lib/values.mjs
CHANGED
|
@@ -107,9 +107,9 @@ function coerceVariableValues(schemaFragment, varDefNodes, inputs, onError) {
|
|
|
107
107
|
}
|
|
108
108
|
return coercedValues;
|
|
109
109
|
}
|
|
110
|
-
function getArgumentValues(
|
|
110
|
+
function getArgumentValues(exeContext, def, node) {
|
|
111
111
|
var _a;
|
|
112
|
-
const definitions = schemaFragment.definitions;
|
|
112
|
+
const definitions = exeContext.schemaFragment.definitions;
|
|
113
113
|
const coercedValues = {};
|
|
114
114
|
const argumentDefs = node.kind === Kind.FIELD ? getFieldArguments(def) : getDirectiveArguments(def);
|
|
115
115
|
if (!argumentDefs) {
|
|
@@ -143,7 +143,7 @@ function getArgumentValues(schemaFragment, def, node, variableValues) {
|
|
|
143
143
|
let isNull = valueNode.kind === Kind.NULL;
|
|
144
144
|
if (valueNode.kind === Kind.VARIABLE) {
|
|
145
145
|
const variableName = valueNode.name.value;
|
|
146
|
-
if (variableValues == null || !hasOwnProperty(variableValues, variableName)) {
|
|
146
|
+
if (exeContext.variableValues == null || !hasOwnProperty(exeContext.variableValues, variableName)) {
|
|
147
147
|
if (defaultValue !== void 0) {
|
|
148
148
|
coercedValues[name] = defaultValue;
|
|
149
149
|
} else if (isNonNullType(argumentTypeRef)) {
|
|
@@ -155,7 +155,7 @@ function getArgumentValues(schemaFragment, def, node, variableValues) {
|
|
|
155
155
|
}
|
|
156
156
|
continue;
|
|
157
157
|
}
|
|
158
|
-
isNull = variableValues[variableName] == null;
|
|
158
|
+
isNull = exeContext.variableValues[variableName] == null;
|
|
159
159
|
}
|
|
160
160
|
if (isNull && isNonNullType(argumentTypeRef)) {
|
|
161
161
|
const type = inspectTypeReference(argumentTypeRef);
|
|
@@ -167,8 +167,8 @@ function getArgumentValues(schemaFragment, def, node, variableValues) {
|
|
|
167
167
|
const coercedValue = valueFromAST(
|
|
168
168
|
valueNode,
|
|
169
169
|
argumentTypeRef,
|
|
170
|
-
schemaFragment,
|
|
171
|
-
variableValues
|
|
170
|
+
exeContext.schemaFragment,
|
|
171
|
+
exeContext.variableValues
|
|
172
172
|
);
|
|
173
173
|
if (coercedValue === void 0) {
|
|
174
174
|
throw locatedError(
|
|
@@ -180,19 +180,14 @@ function getArgumentValues(schemaFragment, def, node, variableValues) {
|
|
|
180
180
|
}
|
|
181
181
|
return coercedValues;
|
|
182
182
|
}
|
|
183
|
-
function getDirectiveValues(
|
|
183
|
+
function getDirectiveValues(exeContext, directiveDef, node) {
|
|
184
184
|
var _a;
|
|
185
185
|
const name = getDirectiveName(directiveDef);
|
|
186
186
|
const directiveNode = (_a = node.directives) == null ? void 0 : _a.find(
|
|
187
187
|
(directive) => directive.name.value === name
|
|
188
188
|
);
|
|
189
189
|
if (directiveNode) {
|
|
190
|
-
return getArgumentValues(
|
|
191
|
-
schemaFragment,
|
|
192
|
-
directiveDef,
|
|
193
|
-
directiveNode,
|
|
194
|
-
variableValues
|
|
195
|
-
);
|
|
190
|
+
return getArgumentValues(exeContext, directiveDef, directiveNode);
|
|
196
191
|
}
|
|
197
192
|
}
|
|
198
193
|
function hasOwnProperty(obj, prop) {
|
package/lib/values.mjs.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 {\n DirectiveDefinitionTuple,\n FieldDefinition,\n getFieldArguments,\n getDirectiveName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n getDirectiveArguments,\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\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\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 locatedError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n [],\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 locatedError(\n `Variable \"$${varName}\" expected value of type \"${varTypeStr}\" which cannot be used as an input type.`,\n [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 locatedError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n [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 locatedError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n [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(locatedError(prefix + \"; \" + error.message, [varDefNode]));\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 schemaFragment: SchemaFragment,\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n variableValues?: Maybe<ObjMap<unknown>>,\n): { [argument: string]: unknown } {\n const definitions = schemaFragment.definitions;\n const coercedValues: { [argument: string]: unknown } = {};\n const argumentDefs =\n node.kind === Kind.FIELD\n ? getFieldArguments(def as FieldDefinition)\n : getDirectiveArguments(def as DirectiveDefinitionTuple);\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 variableValues == null ||\n !hasOwnProperty(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 = 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 schemaFragment,\n 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 locatedError(\n `Argument \"${name}\" has invalid value ${print(valueNode)}.`,\n [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 schemaFragment: SchemaFragment,\n directiveDef: DirectiveDefinitionTuple,\n node: { directives?: ReadonlyArray<DirectiveNode> },\n variableValues?: Maybe<ObjMap<unknown>>,\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(\n schemaFragment,\n directiveDef,\n directiveNode,\n variableValues,\n );\n }\n}\n\nfunction hasOwnProperty(obj: unknown, prop: string): boolean {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n"],
|
|
5
|
-
"mappings": ";AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AACP,SAAS,eAAe;AACxB,SAAS,sBAAsB;
|
|
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 getFieldArguments,\n getDirectiveName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n getDirectiveArguments,\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 locatedError(\n \"Too many errors processing variables, error limit reached. Execution aborted.\",\n [],\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 locatedError(\n `Variable \"$${varName}\" expected value of type \"${varTypeStr}\" which cannot be used as an input type.`,\n [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 locatedError(\n `Variable \"$${varName}\" of required type \"${varTypeStr}\" was not provided.`,\n [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 locatedError(\n `Variable \"$${varName}\" of non-null type \"${varTypeStr}\" must not be null.`,\n [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(locatedError(prefix + \"; \" + error.message, [varDefNode]));\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 =\n node.kind === Kind.FIELD\n ? getFieldArguments(def as FieldDefinition)\n : getDirectiveArguments(def as DirectiveDefinitionTuple);\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 locatedError(\n `Argument \"${name}\" has invalid value ${print(valueNode)}.`,\n [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/package.json
CHANGED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
import type { GraphQLError } from "graphql";
|
|
2
|
-
import type { ObjMap } from "./jsutils/ObjMap";
|
|
3
|
-
import type { Path } from "./jsutils/Path";
|
|
4
|
-
import type { GroupedFieldSet } from "./buildFieldPlan";
|
|
5
|
-
import { TotalExecutionResult, IncrementalExecutionResults } from "./types";
|
|
6
|
-
/**
|
|
7
|
-
* This class is used to publish incremental results to the client, enabling semi-concurrent
|
|
8
|
-
* execution while preserving result order.
|
|
9
|
-
*
|
|
10
|
-
* The internal publishing state is managed as follows:
|
|
11
|
-
*
|
|
12
|
-
* '_released': the set of Subsequent Result records that are ready to be sent to the client,
|
|
13
|
-
* i.e. their parents have completed and they have also completed.
|
|
14
|
-
*
|
|
15
|
-
* `_pending`: the set of Subsequent Result records that are definitely pending, i.e. their
|
|
16
|
-
* parents have completed so that they can no longer be filtered. This includes all Subsequent
|
|
17
|
-
* Result records in `released`, as well as the records that have not yet completed.
|
|
18
|
-
*
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export declare class IncrementalPublisher {
|
|
22
|
-
private _nextId;
|
|
23
|
-
private _released;
|
|
24
|
-
private _pending;
|
|
25
|
-
private _signalled;
|
|
26
|
-
private _resolve;
|
|
27
|
-
constructor();
|
|
28
|
-
reportNewDeferFragmentRecord(deferredFragmentRecord: DeferredFragmentRecord, parentIncrementalResultRecord: InitialResultRecord | DeferredFragmentRecord | StreamItemsRecord): void;
|
|
29
|
-
reportNewDeferredGroupedFieldSetRecord(deferredGroupedFieldSetRecord: DeferredGroupedFieldSetRecord): void;
|
|
30
|
-
reportNewStreamItemsRecord(streamItemsRecord: StreamItemsRecord, parentIncrementalDataRecord: IncrementalDataRecord): void;
|
|
31
|
-
completeDeferredGroupedFieldSet(deferredGroupedFieldSetRecord: DeferredGroupedFieldSetRecord, data: ObjMap<unknown>): void;
|
|
32
|
-
markErroredDeferredGroupedFieldSet(deferredGroupedFieldSetRecord: DeferredGroupedFieldSetRecord, error: GraphQLError): void;
|
|
33
|
-
completeDeferredFragmentRecord(deferredFragmentRecord: DeferredFragmentRecord): void;
|
|
34
|
-
completeStreamItemsRecord(streamItemsRecord: StreamItemsRecord, items: Array<unknown>): void;
|
|
35
|
-
markErroredStreamItemsRecord(streamItemsRecord: StreamItemsRecord, error: GraphQLError): void;
|
|
36
|
-
setIsFinalRecord(streamItemsRecord: StreamItemsRecord): void;
|
|
37
|
-
setIsCompletedAsyncIterator(streamItemsRecord: StreamItemsRecord): void;
|
|
38
|
-
addFieldError(incrementalDataRecord: IncrementalDataRecord, error: GraphQLError): void;
|
|
39
|
-
buildDataResponse(initialResultRecord: InitialResultRecord, data: ObjMap<unknown> | null): TotalExecutionResult | IncrementalExecutionResults;
|
|
40
|
-
buildErrorResponse(initialResultRecord: InitialResultRecord, error: GraphQLError): TotalExecutionResult;
|
|
41
|
-
filter(nullPath: Path | undefined, erroringIncrementalDataRecord: IncrementalDataRecord): void;
|
|
42
|
-
private _pendingSourcesToResults;
|
|
43
|
-
private _getNextId;
|
|
44
|
-
private _subscribe;
|
|
45
|
-
private _trigger;
|
|
46
|
-
private _reset;
|
|
47
|
-
private _introduce;
|
|
48
|
-
private _release;
|
|
49
|
-
private _push;
|
|
50
|
-
private _getIncrementalResult;
|
|
51
|
-
private _processPending;
|
|
52
|
-
private _getIncrementalDeferResult;
|
|
53
|
-
private _completedRecordToResult;
|
|
54
|
-
private _publish;
|
|
55
|
-
private _getChildren;
|
|
56
|
-
private _getDescendants;
|
|
57
|
-
private _nullsChildSubsequentResultRecord;
|
|
58
|
-
private _matchesPath;
|
|
59
|
-
}
|
|
60
|
-
/** @internal */
|
|
61
|
-
export declare class InitialResultRecord {
|
|
62
|
-
errors: Array<GraphQLError>;
|
|
63
|
-
children: Set<SubsequentResultRecord>;
|
|
64
|
-
constructor();
|
|
65
|
-
}
|
|
66
|
-
/** @internal */
|
|
67
|
-
export declare class DeferredGroupedFieldSetRecord {
|
|
68
|
-
path: ReadonlyArray<string | number>;
|
|
69
|
-
deferredFragmentRecords: ReadonlyArray<DeferredFragmentRecord>;
|
|
70
|
-
groupedFieldSet: GroupedFieldSet;
|
|
71
|
-
shouldInitiateDefer: boolean;
|
|
72
|
-
errors: Array<GraphQLError>;
|
|
73
|
-
data: ObjMap<unknown> | undefined;
|
|
74
|
-
sent: boolean;
|
|
75
|
-
constructor(opts: {
|
|
76
|
-
path: Path | undefined;
|
|
77
|
-
deferredFragmentRecords: ReadonlyArray<DeferredFragmentRecord>;
|
|
78
|
-
groupedFieldSet: GroupedFieldSet;
|
|
79
|
-
shouldInitiateDefer: boolean;
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
/** @internal */
|
|
83
|
-
export declare class DeferredFragmentRecord {
|
|
84
|
-
path: ReadonlyArray<string | number>;
|
|
85
|
-
label: string | undefined;
|
|
86
|
-
id: string | undefined;
|
|
87
|
-
children: Set<SubsequentResultRecord>;
|
|
88
|
-
deferredGroupedFieldSetRecords: Set<DeferredGroupedFieldSetRecord>;
|
|
89
|
-
errors: Array<GraphQLError>;
|
|
90
|
-
filtered: boolean;
|
|
91
|
-
pendingSent?: boolean;
|
|
92
|
-
_pending: Set<DeferredGroupedFieldSetRecord>;
|
|
93
|
-
constructor(opts: {
|
|
94
|
-
path: Path | undefined;
|
|
95
|
-
label: string | undefined;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
/** @internal */
|
|
99
|
-
export declare class StreamRecord {
|
|
100
|
-
label: string | undefined;
|
|
101
|
-
path: ReadonlyArray<string | number>;
|
|
102
|
-
id: string | undefined;
|
|
103
|
-
errors: Array<GraphQLError>;
|
|
104
|
-
earlyReturn?: (() => Promise<unknown>) | undefined;
|
|
105
|
-
pendingSent?: boolean;
|
|
106
|
-
constructor(opts: {
|
|
107
|
-
label: string | undefined;
|
|
108
|
-
path: Path;
|
|
109
|
-
earlyReturn?: (() => Promise<unknown>) | undefined;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
/** @internal */
|
|
113
|
-
export declare class StreamItemsRecord {
|
|
114
|
-
errors: Array<GraphQLError>;
|
|
115
|
-
streamRecord: StreamRecord;
|
|
116
|
-
path: ReadonlyArray<string | number>;
|
|
117
|
-
items: Array<unknown> | undefined;
|
|
118
|
-
children: Set<SubsequentResultRecord>;
|
|
119
|
-
isFinalRecord?: boolean;
|
|
120
|
-
isCompletedAsyncIterator?: boolean;
|
|
121
|
-
isCompleted: boolean;
|
|
122
|
-
filtered: boolean;
|
|
123
|
-
constructor(opts: {
|
|
124
|
-
streamRecord: StreamRecord;
|
|
125
|
-
path: Path | undefined;
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
export type IncrementalDataRecord = InitialResultRecord | DeferredGroupedFieldSetRecord | StreamItemsRecord;
|
|
129
|
-
type SubsequentResultRecord = DeferredFragmentRecord | StreamItemsRecord;
|
|
130
|
-
export {};
|
|
131
|
-
//# sourceMappingURL=IncrementalPublisher.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IncrementalPublisher.d.ts","sourceRoot":"","sources":["../src/IncrementalPublisher.ts"],"names":[],"mappings":"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"}
|