UNPKG

@pothos/plugin-sub-graph

Version:

A Pothos plugin for creating multiple variants or sub-selections of the same graph

256 lines 10.4 kB
import './global-types'; import { BasePlugin, type PothosInputFieldConfig, type PothosOutputFieldConfig, type PothosTypeConfig, type SchemaTypes } from '@pothos/core'; import { type GraphQLFieldConfigMap, type GraphQLInputFieldConfigMap, GraphQLInputObjectType, GraphQLInterfaceType, type GraphQLNamedType, GraphQLObjectType, GraphQLSchema } from 'graphql'; declare const pluginName = "subGraph"; export default pluginName; export declare class PothosSubGraphPlugin<Types extends SchemaTypes> extends BasePlugin<Types> { static createSubGraph<Types extends SchemaTypes>(schema: GraphQLSchema, subGraph: string[] | string, builder: PothosSchemaTypes.SchemaBuilder<Types>): GraphQLSchema; static filterTypes(types: readonly GraphQLNamedType[], subGraphs: string[]): Map<string, GraphQLNamedType>; static filterFields(type: GraphQLInterfaceType | GraphQLObjectType, newTypes: Map<string, GraphQLNamedType>, subGraphs: string[]): () => GraphQLFieldConfigMap<unknown, unknown>; static mapInputFields(type: GraphQLInputObjectType, newTypes: Map<string, GraphQLNamedType>, subGraphs: string[]): () => GraphQLInputFieldConfigMap; afterBuild(schema: GraphQLSchema): GraphQLSchema; onTypeConfig(typeConfig: PothosTypeConfig): { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Enum"; graphqlKind: "Enum"; pothosOptions: PothosSchemaTypes.EnumTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; values: import("graphql").ThunkObjMap<import("graphql").GraphQLEnumValueConfig>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").EnumTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<ReadonlyArray<import("graphql").EnumTypeExtensionNode>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "InputObject"; graphqlKind: "InputObject"; pothosOptions: PothosSchemaTypes.InputObjectTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").InputObjectTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").InputObjectTypeExtensionNode[]>; isOneOf?: boolean | undefined; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Interface"; graphqlKind: "Interface"; interfaces: import("@pothos/core").InterfaceParam<SchemaTypes>[]; pothosOptions: PothosSchemaTypes.InterfaceTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").InterfaceTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").InterfaceTypeExtensionNode[]>; resolveType?: import("graphql/jsutils/Maybe").Maybe<import("graphql").GraphQLTypeResolver<unknown, object>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Mutation"; graphqlKind: "Object"; pothosOptions: PothosSchemaTypes.MutationTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").ObjectTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").ObjectTypeExtensionNode[]>; isTypeOf?: import("graphql/jsutils/Maybe").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Object"; graphqlKind: "Object"; interfaces: import("@pothos/core").InterfaceParam<SchemaTypes>[]; pothosOptions: PothosSchemaTypes.ObjectTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").ObjectTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").ObjectTypeExtensionNode[]>; isTypeOf?: import("graphql/jsutils/Maybe").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Query"; graphqlKind: "Object"; pothosOptions: PothosSchemaTypes.QueryTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").ObjectTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").ObjectTypeExtensionNode[]>; isTypeOf?: import("graphql/jsutils/Maybe").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Scalar"; graphqlKind: "Scalar"; pothosOptions: PothosSchemaTypes.ScalarTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; specifiedByURL?: import("graphql/jsutils/Maybe").Maybe<string>; serialize?: import("graphql").GraphQLScalarSerializer<unknown> | undefined; parseValue?: import("graphql").GraphQLScalarValueParser<unknown> | undefined; parseLiteral?: import("graphql").GraphQLScalarLiteralParser<unknown> | undefined; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").ScalarTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<ReadonlyArray<import("graphql").ScalarTypeExtensionNode>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Subscription"; graphqlKind: "Object"; pothosOptions: PothosSchemaTypes.SubscriptionTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").ObjectTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").ObjectTypeExtensionNode[]>; isTypeOf?: import("graphql/jsutils/Maybe").Maybe<import("graphql").GraphQLIsTypeOfFn<unknown, object>>; } | { extensions: { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; } | { subGraphs: string[]; }; kind: "Union"; graphqlKind: "Union"; types: import("@pothos/core").ObjectParam<SchemaTypes>[]; pothosOptions: PothosSchemaTypes.UnionTypeOptions; name: string; description?: import("graphql/jsutils/Maybe").Maybe<string>; astNode?: import("graphql/jsutils/Maybe").Maybe<import("graphql").UnionTypeDefinitionNode>; extensionASTNodes?: import("graphql/jsutils/Maybe").Maybe<readonly import("graphql").UnionTypeExtensionNode[]>; resolveType?: import("graphql/jsutils/Maybe").Maybe<import("graphql").GraphQLTypeResolver<unknown, object>>; }; onInputFieldConfig(fieldConfig: PothosInputFieldConfig<Types>): PothosInputFieldConfig<Types>; onOutputFieldConfig(fieldConfig: PothosOutputFieldConfig<Types>): PothosOutputFieldConfig<Types>; } //# sourceMappingURL=index.d.ts.map