@graphitation/supermassive 4.0.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintcache +1 -1
- package/CHANGELOG.md +18 -2
- package/lib/executeWithoutSchema.d.ts +12 -15
- package/lib/executeWithoutSchema.d.ts.map +1 -1
- package/lib/executeWithoutSchema.js +51 -18
- package/lib/executeWithoutSchema.js.map +2 -2
- package/lib/executeWithoutSchema.mjs +53 -19
- package/lib/executeWithoutSchema.mjs.map +2 -2
- package/lib/types.d.ts +5 -1
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utilities/mergeResolvers.d.ts.map +1 -1
- package/lib/utilities/mergeResolvers.js +21 -8
- package/lib/utilities/mergeResolvers.js.map +2 -2
- package/lib/utilities/mergeResolvers.mjs +21 -8
- package/lib/utilities/mergeResolvers.mjs.map +2 -2
- package/lib/values.d.ts +1 -0
- package/lib/values.d.ts.map +1 -1
- package/lib/values.js +41 -7
- package/lib/values.js.map +2 -2
- package/lib/values.mjs +46 -9
- package/lib/values.mjs.map +2 -2
- package/package.json +1 -1
package/lib/types.d.ts
CHANGED
|
@@ -142,6 +142,10 @@ export type SchemaFragment = {
|
|
|
142
142
|
resolvers: UserResolvers;
|
|
143
143
|
operationTypes?: OperationTypes;
|
|
144
144
|
};
|
|
145
|
+
export type SchemaFragmentForInputVariablesRequest = {
|
|
146
|
+
kind: "InputVariables";
|
|
147
|
+
typeNames: string[];
|
|
148
|
+
};
|
|
145
149
|
export type SchemaFragmentForReturnTypeRequest = {
|
|
146
150
|
kind: "ReturnType";
|
|
147
151
|
parentTypeName: TypeName;
|
|
@@ -152,7 +156,7 @@ export type SchemaFragmentForRuntimeTypeRequest = {
|
|
|
152
156
|
abstractTypeName: TypeName;
|
|
153
157
|
runtimeTypeName: TypeName;
|
|
154
158
|
};
|
|
155
|
-
export type SchemaFragmentRequest = SchemaFragmentForReturnTypeRequest | SchemaFragmentForRuntimeTypeRequest;
|
|
159
|
+
export type SchemaFragmentRequest = SchemaFragmentForInputVariablesRequest | SchemaFragmentForReturnTypeRequest | SchemaFragmentForRuntimeTypeRequest;
|
|
156
160
|
export type SchemaFragmentLoaderResult = {
|
|
157
161
|
mergedFragment: SchemaFragment;
|
|
158
162
|
mergedContextValue?: unknown;
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["import {\n GraphQLError,\n GraphQLFormattedError,\n GraphQLScalarType,\n DocumentNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\nimport { Path } from \"./jsutils/Path\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { FieldGroup } from \"./collectFields\";\nimport { OperationTypes, SchemaDefinitions } from \"./schema/definition\";\nimport { TypeName } from \"./schema/reference\";\n\nexport type ScalarTypeResolver = GraphQLScalarType;\nexport type EnumTypeResolver = Record<string, unknown>;\nexport type FunctionFieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = (\n source: TSource,\n args: TArgs,\n context: TContext,\n info: ResolveInfo,\n) => TReturn;\n\nexport type FieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> =\n | FunctionFieldResolver<TSource, TContext, TArgs, TReturn>\n | FieldResolverObject<TSource, TContext, TArgs, TReturn>;\n\nexport type FieldResolverObject<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = {\n subscribe?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n resolve?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n};\n\nexport type TypeResolver<TSource, TContext> = (\n value: TSource,\n context: TContext,\n info: ResolveInfo,\n) => PromiseOrValue<Maybe<string>>;\n\nexport type ObjectTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n};\n\nexport type UserInterfaceTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserUnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserResolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | UserInterfaceTypeResolver\n | UserUnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver;\n\n// TODO: Keep only UserResolver\nexport type Resolver<TSource, TContext> = UserResolver<TSource, TContext>;\n\nexport type Resolvers<TSource = unknown, TContext = unknown> = UserResolvers<\n TSource,\n TContext\n>;\n\nexport type UserResolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n UserResolver<TSource, TContext>\n>;\n\nexport interface ResolveInfo {\n fieldName: string;\n fieldNodes: FieldGroup;\n returnTypeName: string;\n parentTypeName: string;\n // readonly returnType: GraphQLOutputType;\n // readonly parentType: GraphQLObjectType;\n path: Path;\n // readonly schema: GraphQLSchema;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n}\n\nexport type ExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | TotalExecutionResult<TData, TExtensions>\n | SubscriptionExecutionResult<TData, TExtensions>\n | IncrementalExecutionResult<TData, TExtensions>;\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `hasNext` is true if a future payload is expected.\n * - `extensions` is reserved for adding non-standard properties.\n * - `incremental` is a list of the results from defer/stream directives.\n */\nexport interface TotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport type SubscriptionExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> = AsyncGenerator<TotalExecutionResult<TData, TExtensions>>;\n\nexport interface FormattedTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: InitialIncrementalExecutionResult<TData, TExtensions>;\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<TData, TExtensions>,\n void,\n void\n >;\n}\n\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedInitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface SubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface FormattedIncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface IncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport type IncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TData, TExtensions>\n | IncrementalStreamResult<TData, TExtensions>;\n\nexport type FormattedIncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TData, TExtensions>\n | FormattedIncrementalStreamResult<TData, TExtensions>;\n\nexport interface CommonExecutionArgs {\n document: DocumentNode;\n rootValue?: unknown;\n contextValue?: unknown;\n buildContextValue?: (contextValue?: unknown) => unknown;\n variableValues?: Maybe<{ [variable: string]: unknown }>;\n operationName?: Maybe<string>;\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>;\n subscribeFieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n fieldExecutionHooks?: ExecutionHooks;\n enablePerEventContext?: boolean;\n enableEarlyExecution?: boolean;\n}\nexport type ExecutionWithoutSchemaArgs = CommonExecutionArgs & {\n schemaFragment: SchemaFragment;\n schemaFragmentLoader?: SchemaFragmentLoader;\n};\n\nexport type ExecutionWithSchemaArgs = CommonExecutionArgs & {\n definitions: DocumentNode;\n resolvers: UserResolvers;\n};\n\nexport type SchemaId = string;\n\nexport type SchemaFragment = {\n schemaId: SchemaId;\n definitions: SchemaDefinitions;\n resolvers: UserResolvers;\n operationTypes?: OperationTypes;\n};\n\nexport type SchemaFragmentForReturnTypeRequest = {\n kind: \"ReturnType\";\n parentTypeName: TypeName;\n fieldName: string;\n};\nexport type SchemaFragmentForRuntimeTypeRequest = {\n kind: \"RuntimeType\";\n abstractTypeName: TypeName;\n runtimeTypeName: TypeName;\n};\n\nexport type SchemaFragmentRequest =\n | SchemaFragmentForReturnTypeRequest\n | SchemaFragmentForRuntimeTypeRequest;\n\nexport type SchemaFragmentLoaderResult = {\n mergedFragment: SchemaFragment;\n mergedContextValue?: unknown;\n};\n\nexport type SchemaFragmentLoader = (\n currentFragment: SchemaFragment,\n currentContextValue: unknown,\n req: SchemaFragmentRequest,\n) => Promise<SchemaFragmentLoaderResult>;\n\nexport type DocumentWithMinimalViableSchema = {\n readonly kind: \"Document\";\n readonly loc?: Location;\n readonly definitions: DefinitionNodeWithMinimalViableSchema[];\n};\n\nexport type DefinitionNodeWithMinimalViableSchema = (\n | OperationDefinitionNode\n | FragmentDefinitionNode\n) & {\n readonly __defs: SchemaDefinitions;\n};\n"],
|
|
4
|
+
"sourcesContent": ["import {\n GraphQLError,\n GraphQLFormattedError,\n GraphQLScalarType,\n DocumentNode,\n FragmentDefinitionNode,\n OperationDefinitionNode,\n} from \"graphql\";\nimport { Maybe } from \"./jsutils/Maybe\";\nimport { PromiseOrValue } from \"./jsutils/PromiseOrValue\";\nimport { ObjMap } from \"./jsutils/ObjMap\";\nimport { Path } from \"./jsutils/Path\";\nimport { ExecutionHooks } from \"./hooks/types\";\nimport { FieldGroup } from \"./collectFields\";\nimport { OperationTypes, SchemaDefinitions } from \"./schema/definition\";\nimport { TypeName } from \"./schema/reference\";\n\nexport type ScalarTypeResolver = GraphQLScalarType;\nexport type EnumTypeResolver = Record<string, unknown>;\nexport type FunctionFieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = (\n source: TSource,\n args: TArgs,\n context: TContext,\n info: ResolveInfo,\n) => TReturn;\n\nexport type FieldResolver<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> =\n | FunctionFieldResolver<TSource, TContext, TArgs, TReturn>\n | FieldResolverObject<TSource, TContext, TArgs, TReturn>;\n\nexport type FieldResolverObject<\n TSource,\n TContext,\n TArgs = Record<string, unknown>,\n TReturn = unknown,\n> = {\n subscribe?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n resolve?: FunctionFieldResolver<TSource, TContext, TArgs, TReturn>;\n};\n\nexport type TypeResolver<TSource, TContext> = (\n value: TSource,\n context: TContext,\n info: ResolveInfo,\n) => PromiseOrValue<Maybe<string>>;\n\nexport type ObjectTypeResolver<\n TSource = unknown,\n TContext = unknown,\n TArgs = unknown,\n> = {\n [key: string]: FieldResolver<TSource, TContext, TArgs>;\n};\n\nexport type UserInterfaceTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserUnionTypeResolver = {\n __resolveType?: TypeResolver<unknown, unknown>;\n};\n\nexport type UserResolver<TSource, TContext> =\n | ObjectTypeResolver<TSource, TContext>\n | UserInterfaceTypeResolver\n | UserUnionTypeResolver\n | ScalarTypeResolver\n | EnumTypeResolver;\n\n// TODO: Keep only UserResolver\nexport type Resolver<TSource, TContext> = UserResolver<TSource, TContext>;\n\nexport type Resolvers<TSource = unknown, TContext = unknown> = UserResolvers<\n TSource,\n TContext\n>;\n\nexport type UserResolvers<TSource = unknown, TContext = unknown> = Record<\n string,\n UserResolver<TSource, TContext>\n>;\n\nexport interface ResolveInfo {\n fieldName: string;\n fieldNodes: FieldGroup;\n returnTypeName: string;\n parentTypeName: string;\n // readonly returnType: GraphQLOutputType;\n // readonly parentType: GraphQLObjectType;\n path: Path;\n // readonly schema: GraphQLSchema;\n fragments: ObjMap<FragmentDefinitionNode>;\n rootValue: unknown;\n operation: OperationDefinitionNode;\n variableValues: { [variable: string]: unknown };\n}\n\nexport type ExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | TotalExecutionResult<TData, TExtensions>\n | SubscriptionExecutionResult<TData, TExtensions>\n | IncrementalExecutionResult<TData, TExtensions>;\n\n/**\n * The result of GraphQL execution.\n *\n * - `errors` is included when any errors occurred as a non-empty array.\n * - `data` is the result of a successful execution of the query.\n * - `hasNext` is true if a future payload is expected.\n * - `extensions` is reserved for adding non-standard properties.\n * - `incremental` is a list of the results from defer/stream directives.\n */\nexport interface TotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport type SubscriptionExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> = AsyncGenerator<TotalExecutionResult<TData, TExtensions>>;\n\nexport interface FormattedTotalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n data?: TData | null;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n initialResult: InitialIncrementalExecutionResult<TData, TExtensions>;\n subsequentResults: AsyncGenerator<\n SubsequentIncrementalExecutionResult<TData, TExtensions>,\n void,\n void\n >;\n}\n\nexport interface InitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedInitialIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface SubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<IncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface FormattedSubsequentIncrementalExecutionResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n hasNext: boolean;\n incremental?: ReadonlyArray<FormattedIncrementalResult<TData, TExtensions>>;\n extensions?: TExtensions;\n}\n\nexport interface IncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends TotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface FormattedIncrementalDeferResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> extends FormattedTotalExecutionResult<TData, TExtensions> {\n path?: ReadonlyArray<string | number>;\n label?: string;\n}\n\nexport interface IncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport interface FormattedIncrementalStreamResult<\n TData = Array<unknown>,\n TExtensions = ObjMap<unknown>,\n> {\n errors?: ReadonlyArray<GraphQLFormattedError>;\n items?: TData | null;\n path?: ReadonlyArray<string | number>;\n label?: string;\n extensions?: TExtensions;\n}\n\nexport type IncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | IncrementalDeferResult<TData, TExtensions>\n | IncrementalStreamResult<TData, TExtensions>;\n\nexport type FormattedIncrementalResult<\n TData = ObjMap<unknown>,\n TExtensions = ObjMap<unknown>,\n> =\n | FormattedIncrementalDeferResult<TData, TExtensions>\n | FormattedIncrementalStreamResult<TData, TExtensions>;\n\nexport interface CommonExecutionArgs {\n document: DocumentNode;\n rootValue?: unknown;\n contextValue?: unknown;\n buildContextValue?: (contextValue?: unknown) => unknown;\n variableValues?: Maybe<{ [variable: string]: unknown }>;\n operationName?: Maybe<string>;\n fieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n typeResolver?: Maybe<TypeResolver<unknown, unknown>>;\n subscribeFieldResolver?: Maybe<FunctionFieldResolver<unknown, unknown>>;\n fieldExecutionHooks?: ExecutionHooks;\n enablePerEventContext?: boolean;\n enableEarlyExecution?: boolean;\n}\nexport type ExecutionWithoutSchemaArgs = CommonExecutionArgs & {\n schemaFragment: SchemaFragment;\n schemaFragmentLoader?: SchemaFragmentLoader;\n};\n\nexport type ExecutionWithSchemaArgs = CommonExecutionArgs & {\n definitions: DocumentNode;\n resolvers: UserResolvers;\n};\n\nexport type SchemaId = string;\n\nexport type SchemaFragment = {\n schemaId: SchemaId;\n definitions: SchemaDefinitions;\n resolvers: UserResolvers;\n operationTypes?: OperationTypes;\n};\n\nexport type SchemaFragmentForInputVariablesRequest = {\n kind: \"InputVariables\";\n typeNames: string[];\n};\nexport type SchemaFragmentForReturnTypeRequest = {\n kind: \"ReturnType\";\n parentTypeName: TypeName;\n fieldName: string;\n};\nexport type SchemaFragmentForRuntimeTypeRequest = {\n kind: \"RuntimeType\";\n abstractTypeName: TypeName;\n runtimeTypeName: TypeName;\n};\n\nexport type SchemaFragmentRequest =\n | SchemaFragmentForInputVariablesRequest\n | SchemaFragmentForReturnTypeRequest\n | SchemaFragmentForRuntimeTypeRequest;\n\nexport type SchemaFragmentLoaderResult = {\n mergedFragment: SchemaFragment;\n mergedContextValue?: unknown;\n};\n\nexport type SchemaFragmentLoader = (\n currentFragment: SchemaFragment,\n currentContextValue: unknown,\n req: SchemaFragmentRequest,\n) => Promise<SchemaFragmentLoaderResult>;\n\nexport type DocumentWithMinimalViableSchema = {\n readonly kind: \"Document\";\n readonly loc?: Location;\n readonly definitions: DefinitionNodeWithMinimalViableSchema[];\n};\n\nexport type DefinitionNodeWithMinimalViableSchema = (\n | OperationDefinitionNode\n | FragmentDefinitionNode\n) & {\n readonly __defs: SchemaDefinitions;\n};\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeResolvers.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeResolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,GACrC,SAAS,
|
|
1
|
+
{"version":3,"file":"mergeResolvers.d.ts","sourceRoot":"","sources":["../../src/utilities/mergeResolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,EACtB,SAAS,EAAE,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,GACrC,SAAS,CAEX"}
|
|
@@ -23,24 +23,37 @@ __export(mergeResolvers_exports, {
|
|
|
23
23
|
module.exports = __toCommonJS(mergeResolvers_exports);
|
|
24
24
|
var import_isObjectLike = require("../jsutils/isObjectLike");
|
|
25
25
|
function mergeResolvers(accumulator, resolvers) {
|
|
26
|
+
return mergeResolversRecursive(accumulator, resolvers, /* @__PURE__ */ new Set());
|
|
27
|
+
}
|
|
28
|
+
function mergeResolversRecursive(accumulator, resolvers, owned) {
|
|
26
29
|
for (const entry of resolvers) {
|
|
27
30
|
if (Array.isArray(entry)) {
|
|
28
|
-
|
|
31
|
+
mergeResolversRecursive(accumulator, entry, owned);
|
|
29
32
|
} else {
|
|
30
|
-
mergeResolversObjMap(accumulator, entry);
|
|
33
|
+
mergeResolversObjMap(accumulator, entry, owned);
|
|
31
34
|
}
|
|
32
35
|
}
|
|
33
36
|
return accumulator;
|
|
34
37
|
}
|
|
35
|
-
function mergeResolversObjMap(accumulator, resolvers) {
|
|
38
|
+
function mergeResolversObjMap(accumulator, resolvers, owned) {
|
|
36
39
|
for (const [typeName, typeResolver] of Object.entries(resolvers)) {
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
+
const existing = accumulator[typeName];
|
|
41
|
+
if (existing === void 0) {
|
|
42
|
+
if (typeResolver) {
|
|
43
|
+
accumulator[typeName] = typeResolver;
|
|
44
|
+
}
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (!(0, import_isObjectLike.isObjectLike)(existing) || !(0, import_isObjectLike.isObjectLike)(typeResolver)) {
|
|
40
48
|
continue;
|
|
41
49
|
}
|
|
42
|
-
if (
|
|
43
|
-
|
|
50
|
+
if (!owned.has(typeName)) {
|
|
51
|
+
accumulator[typeName] = Object.assign(
|
|
52
|
+
Object.create(Object.getPrototypeOf(existing)),
|
|
53
|
+
existing
|
|
54
|
+
);
|
|
55
|
+
owned.add(typeName);
|
|
44
56
|
}
|
|
57
|
+
Object.assign(accumulator[typeName], typeResolver);
|
|
45
58
|
}
|
|
46
59
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/mergeResolvers.ts"],
|
|
4
|
-
"sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAA6B;AAEtB,SAAS,eACd,aACA,WACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,
|
|
4
|
+
"sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n return mergeResolversRecursive(accumulator, resolvers, new Set());\n}\n\nfunction mergeResolversRecursive(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n owned: Set<string>,\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n mergeResolversRecursive(accumulator, entry, owned);\n } else {\n mergeResolversObjMap(accumulator, entry, owned);\n }\n }\n return accumulator;\n}\n\nfunction mergeResolversObjMap(\n accumulator: Resolvers,\n resolvers: Resolvers,\n owned: Set<string>,\n) {\n for (const [typeName, typeResolver] of Object.entries(resolvers)) {\n const existing = accumulator[typeName];\n if (existing === undefined) {\n if (typeResolver) {\n accumulator[typeName] = typeResolver;\n }\n continue;\n }\n\n if (!isObjectLike(existing) || !isObjectLike(typeResolver)) {\n continue;\n }\n\n if (!owned.has(typeName)) {\n accumulator[typeName] = Object.assign(\n Object.create(Object.getPrototypeOf(existing)),\n existing,\n );\n owned.add(typeName);\n }\n\n Object.assign(accumulator[typeName], typeResolver);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAA6B;AAEtB,SAAS,eACd,aACA,WACW;AACX,SAAO,wBAAwB,aAAa,WAAW,oBAAI,IAAI,CAAC;AAClE;AAEA,SAAS,wBACP,aACA,WACA,OACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,8BAAwB,aAAa,OAAO,KAAK;AAAA,IACnD,OAAO;AACL,2BAAqB,aAAa,OAAO,KAAK;AAAA,IAChD;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBACP,aACA,WACA,OACA;AACA,aAAW,CAAC,UAAU,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,UAAM,WAAW,YAAY,QAAQ;AACrC,QAAI,aAAa,QAAW;AAC1B,UAAI,cAAc;AAChB,oBAAY,QAAQ,IAAI;AAAA,MAC1B;AACA;AAAA,IACF;AAEA,QAAI,KAAC,kCAAa,QAAQ,KAAK,KAAC,kCAAa,YAAY,GAAG;AAC1D;AAAA,IACF;AAEA,QAAI,CAAC,MAAM,IAAI,QAAQ,GAAG;AACxB,kBAAY,QAAQ,IAAI,OAAO;AAAA,QAC7B,OAAO,OAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,QAC7C;AAAA,MACF;AACA,YAAM,IAAI,QAAQ;AAAA,IACpB;AAEA,WAAO,OAAO,YAAY,QAAQ,GAAG,YAAY;AAAA,EACnD;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
// src/utilities/mergeResolvers.ts
|
|
2
2
|
import { isObjectLike } from "../jsutils/isObjectLike.mjs";
|
|
3
3
|
function mergeResolvers(accumulator, resolvers) {
|
|
4
|
+
return mergeResolversRecursive(accumulator, resolvers, /* @__PURE__ */ new Set());
|
|
5
|
+
}
|
|
6
|
+
function mergeResolversRecursive(accumulator, resolvers, owned) {
|
|
4
7
|
for (const entry of resolvers) {
|
|
5
8
|
if (Array.isArray(entry)) {
|
|
6
|
-
|
|
9
|
+
mergeResolversRecursive(accumulator, entry, owned);
|
|
7
10
|
} else {
|
|
8
|
-
mergeResolversObjMap(accumulator, entry);
|
|
11
|
+
mergeResolversObjMap(accumulator, entry, owned);
|
|
9
12
|
}
|
|
10
13
|
}
|
|
11
14
|
return accumulator;
|
|
12
15
|
}
|
|
13
|
-
function mergeResolversObjMap(accumulator, resolvers) {
|
|
16
|
+
function mergeResolversObjMap(accumulator, resolvers, owned) {
|
|
14
17
|
for (const [typeName, typeResolver] of Object.entries(resolvers)) {
|
|
15
|
-
const
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
+
const existing = accumulator[typeName];
|
|
19
|
+
if (existing === void 0) {
|
|
20
|
+
if (typeResolver) {
|
|
21
|
+
accumulator[typeName] = typeResolver;
|
|
22
|
+
}
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (!isObjectLike(existing) || !isObjectLike(typeResolver)) {
|
|
18
26
|
continue;
|
|
19
27
|
}
|
|
20
|
-
if (
|
|
21
|
-
|
|
28
|
+
if (!owned.has(typeName)) {
|
|
29
|
+
accumulator[typeName] = Object.assign(
|
|
30
|
+
Object.create(Object.getPrototypeOf(existing)),
|
|
31
|
+
existing
|
|
32
|
+
);
|
|
33
|
+
owned.add(typeName);
|
|
22
34
|
}
|
|
35
|
+
Object.assign(accumulator[typeName], typeResolver);
|
|
23
36
|
}
|
|
24
37
|
}
|
|
25
38
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utilities/mergeResolvers.ts"],
|
|
4
|
-
"sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n
|
|
5
|
-
"mappings": ";AACA,SAAS,oBAAoB;AAEtB,SAAS,eACd,aACA,WACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,
|
|
4
|
+
"sourcesContent": ["import { Resolvers } from \"../types\";\nimport { isObjectLike } from \"../jsutils/isObjectLike\";\n\nexport function mergeResolvers(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n): Resolvers {\n return mergeResolversRecursive(accumulator, resolvers, new Set());\n}\n\nfunction mergeResolversRecursive(\n accumulator: Resolvers,\n resolvers: (Resolvers | Resolvers[])[],\n owned: Set<string>,\n): Resolvers {\n for (const entry of resolvers) {\n if (Array.isArray(entry)) {\n mergeResolversRecursive(accumulator, entry, owned);\n } else {\n mergeResolversObjMap(accumulator, entry, owned);\n }\n }\n return accumulator;\n}\n\nfunction mergeResolversObjMap(\n accumulator: Resolvers,\n resolvers: Resolvers,\n owned: Set<string>,\n) {\n for (const [typeName, typeResolver] of Object.entries(resolvers)) {\n const existing = accumulator[typeName];\n if (existing === undefined) {\n if (typeResolver) {\n accumulator[typeName] = typeResolver;\n }\n continue;\n }\n\n if (!isObjectLike(existing) || !isObjectLike(typeResolver)) {\n continue;\n }\n\n if (!owned.has(typeName)) {\n accumulator[typeName] = Object.assign(\n Object.create(Object.getPrototypeOf(existing)),\n existing,\n );\n owned.add(typeName);\n }\n\n Object.assign(accumulator[typeName], typeResolver);\n }\n}\n"],
|
|
5
|
+
"mappings": ";AACA,SAAS,oBAAoB;AAEtB,SAAS,eACd,aACA,WACW;AACX,SAAO,wBAAwB,aAAa,WAAW,oBAAI,IAAI,CAAC;AAClE;AAEA,SAAS,wBACP,aACA,WACA,OACW;AACX,aAAW,SAAS,WAAW;AAC7B,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,8BAAwB,aAAa,OAAO,KAAK;AAAA,IACnD,OAAO;AACL,2BAAqB,aAAa,OAAO,KAAK;AAAA,IAChD;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,qBACP,aACA,WACA,OACA;AACA,aAAW,CAAC,UAAU,YAAY,KAAK,OAAO,QAAQ,SAAS,GAAG;AAChE,UAAM,WAAW,YAAY,QAAQ;AACrC,QAAI,aAAa,QAAW;AAC1B,UAAI,cAAc;AAChB,oBAAY,QAAQ,IAAI;AAAA,MAC1B;AACA;AAAA,IACF;AAEA,QAAI,CAAC,aAAa,QAAQ,KAAK,CAAC,aAAa,YAAY,GAAG;AAC1D;AAAA,IACF;AAEA,QAAI,CAAC,MAAM,IAAI,QAAQ,GAAG;AACxB,kBAAY,QAAQ,IAAI,OAAO;AAAA,QAC7B,OAAO,OAAO,OAAO,eAAe,QAAQ,CAAC;AAAA,QAC7C;AAAA,MACF;AACA,YAAM,IAAI,QAAQ;AAAA,IACpB;AAEA,WAAO,OAAO,YAAY,QAAQ,GAAG,YAAY;AAAA,EACnD;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/lib/values.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export declare function getVariableValues(schemaFragment: SchemaFragment, varDef
|
|
|
27
27
|
}, options?: {
|
|
28
28
|
maxErrors?: number;
|
|
29
29
|
}): CoercedVariableValues;
|
|
30
|
+
export declare function getMissingVariableTypes(varDefNodes: ReadonlyArray<VariableDefinitionNode>, schemaFragment: SchemaFragment): string[];
|
|
30
31
|
/**
|
|
31
32
|
* Prepares an object map of argument values given a list of argument
|
|
32
33
|
* definitions and list of argument AST nodes.
|
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,EACL,wBAAwB,EACxB,eAAe,
|
|
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,EAUhB,MAAM,qBAAqB,CAAC;AAS7B,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,CA2BvB;AAED,wBAAgB,uBAAuB,CACrC,WAAW,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAClD,cAAc,EAAE,cAAc,YAqC/B;AAuFD;;;;;;;;;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,CAiGjC;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
|
@@ -20,6 +20,7 @@ var values_exports = {};
|
|
|
20
20
|
__export(values_exports, {
|
|
21
21
|
getArgumentValues: () => getArgumentValues,
|
|
22
22
|
getDirectiveValues: () => getDirectiveValues,
|
|
23
|
+
getMissingVariableTypes: () => getMissingVariableTypes,
|
|
23
24
|
getVariableValues: () => getVariableValues
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(values_exports);
|
|
@@ -56,19 +57,52 @@ function getVariableValues(schemaFragment, varDefNodes, inputs, options) {
|
|
|
56
57
|
}
|
|
57
58
|
return { errors };
|
|
58
59
|
}
|
|
60
|
+
function getMissingVariableTypes(varDefNodes, schemaFragment) {
|
|
61
|
+
const missingTypeReferences = [];
|
|
62
|
+
const typeReferencesToValidate = varDefNodes.map(
|
|
63
|
+
(varDefNode) => (0, import_reference.typeReferenceFromNode)(varDefNode.type)
|
|
64
|
+
);
|
|
65
|
+
const queuedForValidation = new Set(typeReferencesToValidate);
|
|
66
|
+
let index = 0;
|
|
67
|
+
while (index < typeReferencesToValidate.length) {
|
|
68
|
+
const varTypeReference = typeReferencesToValidate[index++];
|
|
69
|
+
if (!(0, import_definition.isInputType)(schemaFragment.definitions, varTypeReference)) {
|
|
70
|
+
missingTypeReferences.push((0, import_reference.typeNameFromReference)(varTypeReference));
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
const inputObjectDef = (0, import_definition.getInputObjectType)(
|
|
74
|
+
schemaFragment.definitions,
|
|
75
|
+
varTypeReference
|
|
76
|
+
);
|
|
77
|
+
if (inputObjectDef) {
|
|
78
|
+
for (const maybeTypeReference of Object.values(
|
|
79
|
+
(0, import_definition.getInputObjectFields)(inputObjectDef)
|
|
80
|
+
)) {
|
|
81
|
+
const typeReference = Array.isArray(maybeTypeReference) ? maybeTypeReference[0] : maybeTypeReference;
|
|
82
|
+
if (!queuedForValidation.has(typeReference)) {
|
|
83
|
+
queuedForValidation.add(typeReference);
|
|
84
|
+
typeReferencesToValidate.push(typeReference);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return missingTypeReferences;
|
|
90
|
+
}
|
|
59
91
|
function coerceVariableValues(schemaFragment, varDefNodes, inputs, onError) {
|
|
60
92
|
const coercedValues = {};
|
|
61
93
|
for (const varDefNode of varDefNodes) {
|
|
62
94
|
const varName = varDefNode.variable.name.value;
|
|
63
95
|
const varTypeReference = (0, import_reference.typeReferenceFromNode)(varDefNode.type);
|
|
64
96
|
if (!(0, import_definition.isInputType)(schemaFragment.definitions, varTypeReference)) {
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
const errorMessage = !(0, import_definition.isDefined)(
|
|
98
|
+
schemaFragment.definitions,
|
|
99
|
+
varTypeReference
|
|
100
|
+
) ? `Missing definition for input type "${(0, import_reference.typeNameFromReference)(
|
|
101
|
+
varTypeReference
|
|
102
|
+
)}"` : `Variable "$${varName}" expected value of type "${(0, import_reference.inspectTypeReference)(
|
|
103
|
+
varTypeReference
|
|
104
|
+
)}" which cannot be used as an input type.`;
|
|
105
|
+
onError((0, import_graphql.locatedError)(errorMessage, [varDefNode.type]));
|
|
72
106
|
continue;
|
|
73
107
|
}
|
|
74
108
|
if (!hasOwnProperty(inputs, varName)) {
|
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 {\n DirectiveDefinitionTuple,\n FieldDefinition,\n getFieldDefinitionArgs,\n getDirectiveDefinitionName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n getDirectiveDefinitionArgs,\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\nfunction isFieldDefinition(\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): def is FieldDefinition {\n return node.kind === Kind.FIELD;\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 = isFieldDefinition(def, node)\n ? getFieldDefinitionArgs(def)\n : getDirectiveDefinitionArgs(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 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 = getDirectiveDefinitionName(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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAQO;AACP,qBAAwB;AACxB,4BAA+B;AAE/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 getFieldDefinitionArgs,\n getDirectiveDefinitionName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n getDirectiveDefinitionArgs,\n getInputObjectType,\n getInputObjectFields,\n} from \"./schema/definition\";\nimport { valueFromAST } from \"./utilities/valueFromAST\";\nimport { coerceInputValue } from \"./utilities/coerceInputValue\";\nimport {\n inspectTypeReference,\n isNonNullType,\n typeReferenceFromNode,\n typeNameFromReference,\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\nexport function getMissingVariableTypes(\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n schemaFragment: SchemaFragment,\n) {\n const missingTypeReferences = [];\n const typeReferencesToValidate = varDefNodes.map((varDefNode) =>\n typeReferenceFromNode(varDefNode.type),\n );\n const queuedForValidation = new Set(typeReferencesToValidate);\n\n let index = 0;\n while (index < typeReferencesToValidate.length) {\n const varTypeReference = typeReferencesToValidate[index++];\n if (!isInputType(schemaFragment.definitions, varTypeReference)) {\n missingTypeReferences.push(typeNameFromReference(varTypeReference));\n continue;\n }\n\n const inputObjectDef = getInputObjectType(\n schemaFragment.definitions,\n varTypeReference,\n );\n if (inputObjectDef) {\n for (const maybeTypeReference of Object.values(\n getInputObjectFields(inputObjectDef),\n )) {\n const typeReference = Array.isArray(maybeTypeReference)\n ? maybeTypeReference[0]\n : maybeTypeReference;\n\n if (!queuedForValidation.has(typeReference)) {\n queuedForValidation.add(typeReference);\n typeReferencesToValidate.push(typeReference);\n }\n }\n }\n }\n\n return missingTypeReferences;\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 errorMessage = !isDefined(\n schemaFragment.definitions,\n varTypeReference,\n )\n ? `Missing definition for input type \"${typeNameFromReference(\n varTypeReference,\n )}\"`\n : `Variable \"$${varName}\" expected value of type \"${inspectTypeReference(\n varTypeReference,\n )}\" which cannot be used as an input type.`;\n\n onError(locatedError(errorMessage, [varDefNode.type]));\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\nfunction isFieldDefinition(\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): def is FieldDefinition {\n return node.kind === Kind.FIELD;\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 = isFieldDefinition(def, node)\n ? getFieldDefinitionArgs(def)\n : getDirectiveDefinitionArgs(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 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 = getDirectiveDefinitionName(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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAQO;AACP,qBAAwB;AACxB,4BAA+B;AAE/B,wBAYO;AACP,0BAA6B;AAC7B,8BAAiC;AACjC,uBAKO;AAkBA,SAAS,kBACd,gBACA,aACA,QACA,SACuB;AACvB,QAAM,SAAyB,CAAC;AAChC,QAAM,YAAY,mCAAS;AAC3B,MAAI;AACF,UAAM,UAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,UAAU;AACT,YAAI,aAAa,QAAQ,OAAO,UAAU,WAAW;AACnD,oBAAM;AAAA,YACJ;AAAA,YACA,CAAC;AAAA,UACH;AAAA,QACF;AACA,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF;AAEA,QAAI,OAAO,WAAW,GAAG;AACvB,aAAO,EAAE,QAAQ;AAAA,IACnB;AAAA,EACF,SAAS,OAAP;AACA,WAAO,KAAK,KAAqB;AAAA,EACnC;AAEA,SAAO,EAAE,OAAe;AAC1B;AAEO,SAAS,wBACd,aACA,gBACA;AACA,QAAM,wBAAwB,CAAC;AAC/B,QAAM,2BAA2B,YAAY;AAAA,IAAI,CAAC,mBAChD,wCAAsB,WAAW,IAAI;AAAA,EACvC;AACA,QAAM,sBAAsB,IAAI,IAAI,wBAAwB;AAE5D,MAAI,QAAQ;AACZ,SAAO,QAAQ,yBAAyB,QAAQ;AAC9C,UAAM,mBAAmB,yBAAyB,OAAO;AACzD,QAAI,KAAC,+BAAY,eAAe,aAAa,gBAAgB,GAAG;AAC9D,4BAAsB,SAAK,wCAAsB,gBAAgB,CAAC;AAClE;AAAA,IACF;AAEA,UAAM,qBAAiB;AAAA,MACrB,eAAe;AAAA,MACf;AAAA,IACF;AACA,QAAI,gBAAgB;AAClB,iBAAW,sBAAsB,OAAO;AAAA,YACtC,wCAAqB,cAAc;AAAA,MACrC,GAAG;AACD,cAAM,gBAAgB,MAAM,QAAQ,kBAAkB,IAClD,mBAAmB,CAAC,IACpB;AAEJ,YAAI,CAAC,oBAAoB,IAAI,aAAa,GAAG;AAC3C,8BAAoB,IAAI,aAAa;AACrC,mCAAyB,KAAK,aAAa;AAAA,QAC7C;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,qBACP,gBACA,aACA,QACA,SACiC;AACjC,QAAM,gBAAiD,CAAC;AACxD,aAAW,cAAc,aAAa;AACpC,UAAM,UAAU,WAAW,SAAS,KAAK;AACzC,UAAM,uBAAmB,wCAAsB,WAAW,IAAI;AAE9D,QAAI,KAAC,+BAAY,eAAe,aAAa,gBAAgB,GAAG;AAG9D,YAAM,eAAe,KAAC;AAAA,QACpB,eAAe;AAAA,QACf;AAAA,MACF,IACI,0CAAsC;AAAA,QACpC;AAAA,MACF,OACA,cAAc,wCAAoC;AAAA,QAChD;AAAA,MACF;AAEJ,kBAAQ,6BAAa,cAAc,CAAC,WAAW,IAAI,CAAC,CAAC;AACrD;AAAA,IACF;AAEA,QAAI,CAAC,eAAe,QAAQ,OAAO,GAAG;AACpC,UAAI,WAAW,cAAc;AAC3B,sBAAc,OAAO,QAAI;AAAA,UACvB,WAAW;AAAA,UACX;AAAA,UACA;AAAA,QACF;AAAA,MACF,eAAW,gCAAc,gBAAgB,GAAG;AAC1C,cAAM,iBAAa,uCAAqB,gBAAgB;AACxD;AAAA,cACE;AAAA,YACE,cAAc,8BAA8B;AAAA,YAC5C,CAAC,UAAU;AAAA,UACb;AAAA,QACF;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,QAAQ,OAAO,OAAO;AAC5B,QAAI,UAAU,YAAQ,gCAAc,gBAAgB,GAAG;AACrD,YAAM,iBAAa,uCAAqB,gBAAgB;AACxD;AAAA,YACE;AAAA,UACE,cAAc,8BAA8B;AAAA,UAC5C,CAAC,UAAU;AAAA,QACb;AAAA,MACF;AACA;AAAA,IACF;AAEA,kBAAc,OAAO,QAAI;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,MAAM,cAAc,UAAU;AAC7B,YAAI,SACF,cAAc,oCAAgC,wBAAQ,YAAY;AACpE,YAAI,KAAK,SAAS,GAAG;AACnB,oBAAU,QAAQ,cAAU,sCAAe,IAAI;AAAA,QACjD;AACA,oBAAQ,6BAAa,SAAS,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;AAAA,MACnE;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;AAEA,SAAS,kBACP,KACA,MACwB;AACxB,SAAO,KAAK,SAAS,oBAAK;AAC5B;AAYO,SAAS,kBACd,YACA,KACA,MACiC;AAhOnC;AAiOE,QAAM,cAAc,WAAW,eAAe;AAC9C,QAAM,gBAAiD,CAAC;AACxD,QAAM,eAAe,kBAAkB,KAAK,IAAI,QAC5C,0CAAuB,GAAG,QAC1B,8CAA2B,GAAG;AAClC,MAAI,CAAC,cAAc;AACjB,WAAO;AAAA,EACT;AAEA,QAAM,iBAAgB,UAAK,cAAL,YAAkB,CAAC;AACzC,QAAM,aAAa,IAAI,IAAI,cAAc,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,GAAG,CAAC,CAAC;AAE5E,aAAW,CAAC,MAAM,WAAW,KAAK,OAAO,QAAQ,YAAY,GAAG;AAC9D,UAAM,eAAe,WAAW,IAAI,IAAI;AACxC,UAAM,sBAAkB,8CAA2B,WAAW;AAC9D,UAAM,mBAAe,wCAAqB,WAAW;AAErD,QAAI,gBAAgB,MAAM;AACxB,UAAI,iBAAiB,QAAW;AAC9B,sBAAc,IAAI,IAAI;AAAA,MACxB,eAAW,gCAAc,eAAe,GAAG;AACzC,cAAM,WAAO,uCAAqB,eAAe;AACjD,kBAAM;AAAA,UACJ,aAAa,2BAA2B;AAAA,UACxC,CAAC,IAAI;AAAA,QACP;AAAA,MACF;AACA;AAAA,IACF;AAEA,QAAI,KAAC,6BAAU,aAAa,eAAe,GAAG;AAC5C,gBAAM;AAAA,QACJ,oCAAoC,WAAW,KAAK,QAAQ,KAAK,KAAK;AAAA,QACtE,CAAC,YAAY;AAAA,MACf;AAAA,IACF;AAUA,UAAM,YAAY,aAAa;AAC/B,QAAI,SAAS,UAAU,SAAS,oBAAK;AAErC,QAAI,UAAU,SAAS,oBAAK,UAAU;AACpC,YAAM,eAAe,UAAU,KAAK;AACpC,UACE,WAAW,kBAAkB,QAC7B,CAAC,eAAe,WAAW,gBAAgB,YAAY,GACvD;AACA,YAAI,iBAAiB,QAAW;AAC9B,wBAAc,IAAI,IAAI;AAAA,QACxB,eAAW,gCAAc,eAAe,GAAG;AACzC,gBAAM,WAAO,uCAAqB,eAAe;AACjD,oBAAM;AAAA,YACJ,aAAa,2BAA2B,qCACP;AAAA,YACjC,CAAC,SAAS;AAAA,UACZ;AAAA,QACF;AACA;AAAA,MACF;AACA,eAAS,WAAW,eAAe,YAAY,KAAK;AAAA,IACtD;AAEA,QAAI,cAAU,gCAAc,eAAe,GAAG;AAC5C,YAAM,WAAO,uCAAqB,eAAe;AACjD,gBAAM;AAAA,QACJ,aAAa,2BAA2B;AAAA,QACxC,CAAC,SAAS;AAAA,MACZ;AAAA,IACF;AAEA,UAAM,mBAAe;AAAA,MACnB;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,WAAW;AAAA,IACb;AACA,QAAI,iBAAiB,QAAW;AAI9B,gBAAM;AAAA,QACJ,aAAa,+BAA2B,sBAAM,SAAS;AAAA,QACvD,CAAC,SAAS;AAAA,MACZ;AAAA,IACF;AACA,kBAAc,IAAI,IAAI;AAAA,EACxB;AAEA,SAAO;AACT;AAaO,SAAS,mBACd,YACA,cACA,MAC6C;AAlV/C;AAmVE,QAAM,WAAO,8CAA2B,YAAY;AAGpD,QAAM,iBAAgB,UAAK,eAAL,mBAAiB;AAAA,IACrC,CAAC,cAAc,UAAU,KAAK,UAAU;AAAA;AAG1C,MAAI,eAAe;AACjB,WAAO,kBAAkB,YAAY,cAAc,aAAa;AAAA,EAClE;AACF;AAEA,SAAS,eAAe,KAAc,MAAuB;AAC3D,SAAO,OAAO,UAAU,eAAe,KAAK,KAAK,IAAI;AACvD;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/lib/values.mjs
CHANGED
|
@@ -13,14 +13,17 @@ import {
|
|
|
13
13
|
getInputValueTypeReference,
|
|
14
14
|
isDefined,
|
|
15
15
|
isInputType,
|
|
16
|
-
getDirectiveDefinitionArgs
|
|
16
|
+
getDirectiveDefinitionArgs,
|
|
17
|
+
getInputObjectType,
|
|
18
|
+
getInputObjectFields
|
|
17
19
|
} from "./schema/definition.mjs";
|
|
18
20
|
import { valueFromAST } from "./utilities/valueFromAST.mjs";
|
|
19
21
|
import { coerceInputValue } from "./utilities/coerceInputValue.mjs";
|
|
20
22
|
import {
|
|
21
23
|
inspectTypeReference,
|
|
22
24
|
isNonNullType,
|
|
23
|
-
typeReferenceFromNode
|
|
25
|
+
typeReferenceFromNode,
|
|
26
|
+
typeNameFromReference
|
|
24
27
|
} from "./schema/reference.mjs";
|
|
25
28
|
function getVariableValues(schemaFragment, varDefNodes, inputs, options) {
|
|
26
29
|
const errors = [];
|
|
@@ -48,19 +51,52 @@ function getVariableValues(schemaFragment, varDefNodes, inputs, options) {
|
|
|
48
51
|
}
|
|
49
52
|
return { errors };
|
|
50
53
|
}
|
|
54
|
+
function getMissingVariableTypes(varDefNodes, schemaFragment) {
|
|
55
|
+
const missingTypeReferences = [];
|
|
56
|
+
const typeReferencesToValidate = varDefNodes.map(
|
|
57
|
+
(varDefNode) => typeReferenceFromNode(varDefNode.type)
|
|
58
|
+
);
|
|
59
|
+
const queuedForValidation = new Set(typeReferencesToValidate);
|
|
60
|
+
let index = 0;
|
|
61
|
+
while (index < typeReferencesToValidate.length) {
|
|
62
|
+
const varTypeReference = typeReferencesToValidate[index++];
|
|
63
|
+
if (!isInputType(schemaFragment.definitions, varTypeReference)) {
|
|
64
|
+
missingTypeReferences.push(typeNameFromReference(varTypeReference));
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
const inputObjectDef = getInputObjectType(
|
|
68
|
+
schemaFragment.definitions,
|
|
69
|
+
varTypeReference
|
|
70
|
+
);
|
|
71
|
+
if (inputObjectDef) {
|
|
72
|
+
for (const maybeTypeReference of Object.values(
|
|
73
|
+
getInputObjectFields(inputObjectDef)
|
|
74
|
+
)) {
|
|
75
|
+
const typeReference = Array.isArray(maybeTypeReference) ? maybeTypeReference[0] : maybeTypeReference;
|
|
76
|
+
if (!queuedForValidation.has(typeReference)) {
|
|
77
|
+
queuedForValidation.add(typeReference);
|
|
78
|
+
typeReferencesToValidate.push(typeReference);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return missingTypeReferences;
|
|
84
|
+
}
|
|
51
85
|
function coerceVariableValues(schemaFragment, varDefNodes, inputs, onError) {
|
|
52
86
|
const coercedValues = {};
|
|
53
87
|
for (const varDefNode of varDefNodes) {
|
|
54
88
|
const varName = varDefNode.variable.name.value;
|
|
55
89
|
const varTypeReference = typeReferenceFromNode(varDefNode.type);
|
|
56
90
|
if (!isInputType(schemaFragment.definitions, varTypeReference)) {
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
91
|
+
const errorMessage = !isDefined(
|
|
92
|
+
schemaFragment.definitions,
|
|
93
|
+
varTypeReference
|
|
94
|
+
) ? `Missing definition for input type "${typeNameFromReference(
|
|
95
|
+
varTypeReference
|
|
96
|
+
)}"` : `Variable "$${varName}" expected value of type "${inspectTypeReference(
|
|
97
|
+
varTypeReference
|
|
98
|
+
)}" which cannot be used as an input type.`;
|
|
99
|
+
onError(locatedError(errorMessage, [varDefNode.type]));
|
|
64
100
|
continue;
|
|
65
101
|
}
|
|
66
102
|
if (!hasOwnProperty(inputs, varName)) {
|
|
@@ -199,5 +235,6 @@ function hasOwnProperty(obj, prop) {
|
|
|
199
235
|
export {
|
|
200
236
|
getArgumentValues,
|
|
201
237
|
getDirectiveValues,
|
|
238
|
+
getMissingVariableTypes,
|
|
202
239
|
getVariableValues
|
|
203
240
|
};
|
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 { ExecutionContext } from \"./executeWithoutSchema\";\nimport {\n DirectiveDefinitionTuple,\n FieldDefinition,\n getFieldDefinitionArgs,\n getDirectiveDefinitionName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n getDirectiveDefinitionArgs,\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\nfunction isFieldDefinition(\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): def is FieldDefinition {\n return node.kind === Kind.FIELD;\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 = isFieldDefinition(def, node)\n ? getFieldDefinitionArgs(def)\n : getDirectiveDefinitionArgs(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 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 = getDirectiveDefinitionName(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": ";AAAA;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AACP,SAAS,eAAe;AACxB,SAAS,sBAAsB;AAE/B;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAkBA,SAAS,kBACd,gBACA,aACA,QACA,SACuB;AACvB,QAAM,SAAyB,CAAC;AAChC,QAAM,YAAY,mCAAS;AAC3B,MAAI;AACF,UAAM,UAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA,CAAC,UAAU;AACT,YAAI,aAAa,QAAQ,OAAO,UAAU,WAAW;AACnD,gBAAM;AAAA,YACJ;AAAA,YACA,CAAC;AAAA,UACH;AAAA,QACF;AACA,eAAO,KAAK,KAAK;AAAA,MACnB;AAAA,IACF;AAEA,QAAI,OAAO,WAAW,GAAG;AACvB,aAAO,EAAE,QAAQ;AAAA,IACnB;AAAA,EACF,SAAS,OAAP;AACA,WAAO,KAAK,KAAqB;AAAA,EACnC;AAEA,SAAO,EAAE,OAAe;AAC1B;AAEA,SAAS,qBACP,gBACA,aACA,QACA,SACiC;AACjC,QAAM,gBAAiD,CAAC;AACxD,aAAW,cAAc,aAAa;AACpC,UAAM,UAAU,WAAW,SAAS,KAAK;AACzC,UAAM,mBAAmB,sBAAsB,WAAW,IAAI;AAE9D,QAAI,CAAC,YAAY,eAAe,aAAa,gBAAgB,GAAG;AAG9D,YAAM,
|
|
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 getFieldDefinitionArgs,\n getDirectiveDefinitionName,\n getInputDefaultValue,\n getInputValueTypeReference,\n isDefined,\n isInputType,\n getDirectiveDefinitionArgs,\n getInputObjectType,\n getInputObjectFields,\n} from \"./schema/definition\";\nimport { valueFromAST } from \"./utilities/valueFromAST\";\nimport { coerceInputValue } from \"./utilities/coerceInputValue\";\nimport {\n inspectTypeReference,\n isNonNullType,\n typeReferenceFromNode,\n typeNameFromReference,\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\nexport function getMissingVariableTypes(\n varDefNodes: ReadonlyArray<VariableDefinitionNode>,\n schemaFragment: SchemaFragment,\n) {\n const missingTypeReferences = [];\n const typeReferencesToValidate = varDefNodes.map((varDefNode) =>\n typeReferenceFromNode(varDefNode.type),\n );\n const queuedForValidation = new Set(typeReferencesToValidate);\n\n let index = 0;\n while (index < typeReferencesToValidate.length) {\n const varTypeReference = typeReferencesToValidate[index++];\n if (!isInputType(schemaFragment.definitions, varTypeReference)) {\n missingTypeReferences.push(typeNameFromReference(varTypeReference));\n continue;\n }\n\n const inputObjectDef = getInputObjectType(\n schemaFragment.definitions,\n varTypeReference,\n );\n if (inputObjectDef) {\n for (const maybeTypeReference of Object.values(\n getInputObjectFields(inputObjectDef),\n )) {\n const typeReference = Array.isArray(maybeTypeReference)\n ? maybeTypeReference[0]\n : maybeTypeReference;\n\n if (!queuedForValidation.has(typeReference)) {\n queuedForValidation.add(typeReference);\n typeReferencesToValidate.push(typeReference);\n }\n }\n }\n }\n\n return missingTypeReferences;\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 errorMessage = !isDefined(\n schemaFragment.definitions,\n varTypeReference,\n )\n ? `Missing definition for input type \"${typeNameFromReference(\n varTypeReference,\n )}\"`\n : `Variable \"$${varName}\" expected value of type \"${inspectTypeReference(\n varTypeReference,\n )}\" which cannot be used as an input type.`;\n\n onError(locatedError(errorMessage, [varDefNode.type]));\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\nfunction isFieldDefinition(\n def: FieldDefinition | DirectiveDefinitionTuple,\n node: FieldNode | DirectiveNode,\n): def is FieldDefinition {\n return node.kind === Kind.FIELD;\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 = isFieldDefinition(def, node)\n ? getFieldDefinitionArgs(def)\n : getDirectiveDefinitionArgs(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 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 = getDirectiveDefinitionName(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
|
}
|