@graphql-tools/utils
Version:
Common package containing utils and types for GraphQL tools
75 lines (74 loc) • 2.97 kB
TypeScript
import { GraphQLEnumType, GraphQLInputObjectType, GraphQLNamedType, GraphQLScalarType, visit } from 'graphql';
export interface SchemaPrintOptions {
/**
* Descriptions are defined as preceding string literals, however an older
* experimental version of the SDL supported preceding comments as
* descriptions. Set to true to enable this deprecated behavior.
* This option is provided to ease adoption and will be removed in v16.
*
* Default: false
*/
commentDescriptions?: boolean;
assumeValid?: boolean;
}
export interface GetDocumentNodeFromSchemaOptions {
pathToDirectivesInExtensions?: Array<string>;
}
export declare type PrintSchemaWithDirectivesOptions = SchemaPrintOptions & GetDocumentNodeFromSchemaOptions;
export declare type Maybe<T> = null | undefined | T;
export declare type Constructor<T> = new (...args: any[]) => T;
export declare type PruneSchemaFilter = (type: GraphQLNamedType) => boolean;
/**
* Options for removing unused types from the schema
*/
export interface PruneSchemaOptions {
/**
* Return true to skip pruning this type. This check will run first before any other options.
* This can be helpful for schemas that support type extensions like Apollo Federation.
*/
skipPruning?: PruneSchemaFilter;
/**
* Set to `true` to skip pruning object types or interfaces with no no fields
*/
skipEmptyCompositeTypePruning?: boolean;
/**
* Set to `true` to skip pruning interfaces that are not implemented by any
* other types
*/
skipUnimplementedInterfacesPruning?: boolean;
/**
* Set to `true` to skip pruning empty unions
*/
skipEmptyUnionPruning?: boolean;
/**
* Set to `true` to skip pruning unused types
*/
skipUnusedTypesPruning?: boolean;
}
export declare type InputLeafValueTransformer = (type: GraphQLEnumType | GraphQLScalarType, originalValue: any) => any;
export declare type InputObjectValueTransformer = (type: GraphQLInputObjectType, originalValue: Record<string, any>) => Record<string, any>;
export declare type ASTVisitorKeyMap = Partial<Parameters<typeof visit>[2]>;
export declare type DirectiveLocationEnum = typeof DirectiveLocation;
export declare enum DirectiveLocation {
/** Request Definitions */
QUERY = "QUERY",
MUTATION = "MUTATION",
SUBSCRIPTION = "SUBSCRIPTION",
FIELD = "FIELD",
FRAGMENT_DEFINITION = "FRAGMENT_DEFINITION",
FRAGMENT_SPREAD = "FRAGMENT_SPREAD",
INLINE_FRAGMENT = "INLINE_FRAGMENT",
VARIABLE_DEFINITION = "VARIABLE_DEFINITION",
/** Type System Definitions */
SCHEMA = "SCHEMA",
SCALAR = "SCALAR",
OBJECT = "OBJECT",
FIELD_DEFINITION = "FIELD_DEFINITION",
ARGUMENT_DEFINITION = "ARGUMENT_DEFINITION",
INTERFACE = "INTERFACE",
UNION = "UNION",
ENUM = "ENUM",
ENUM_VALUE = "ENUM_VALUE",
INPUT_OBJECT = "INPUT_OBJECT",
INPUT_FIELD_DEFINITION = "INPUT_FIELD_DEFINITION"
}