UNPKG

@pothos/plugin-add-graphql

Version:

A Pothos plugin for adding existing GraphQL types to a Pothos schema

33 lines 2.34 kB
import type { EnumValues, FieldMap, FieldRef, InputFieldRef, InputFieldsFromShape, NullableToOptional, ObjectParam, SchemaTypes } from '@pothos/core'; export type AddGraphQLObjectFieldsShape<Types extends SchemaTypes, Shape> = (t: PothosSchemaTypes.ObjectFieldBuilder<Types, Shape>) => Record<string, FieldRef<Types> | null>; export type AddGraphQLInterfaceFieldsShape<Types extends SchemaTypes, Shape> = (t: PothosSchemaTypes.InterfaceFieldBuilder<Types, Shape>) => Record<string, FieldRef<Types> | null>; export type AddGraphQLInputFieldsShape<Types extends SchemaTypes, Shape> = (t: PothosSchemaTypes.InputFieldBuilder<Types, 'InputObject'>) => Record<string, (InputFieldRef<Types, unknown> & { [K in keyof Shape]?: InputFieldRef<Types, Shape[K]>; }) | null>; export type OutputShapeFromFields<Fields extends FieldMap> = NullableToOptional<{ [K in keyof Fields]: Fields[K] extends FieldRef<infer T> ? T : never; }>; export type AddGraphQLObjectTypeOptions<Types extends SchemaTypes, Shape> = Omit<PothosSchemaTypes.ObjectTypeOptions<Types, Shape>, 'fields'> & { name?: string; fields?: AddGraphQLObjectFieldsShape<Types, Shape>; }; export interface AddGraphQLInterfaceTypeOptions<Types extends SchemaTypes, Shape> extends Omit<PothosSchemaTypes.InterfaceTypeOptions<Types, Shape>, 'fields'> { name?: string; fields?: AddGraphQLInterfaceFieldsShape<Types, Shape>; } export interface AddGraphQLUnionTypeOptions<Types extends SchemaTypes, Member extends ObjectParam<Types> = ObjectParam<Types>> extends Omit<PothosSchemaTypes.UnionTypeOptions<Types, Member>, 'types'> { name?: string; types?: Member[]; } export interface AddGraphQLEnumTypeOptions<Types extends SchemaTypes, Values extends EnumValues<Types> = EnumValues<Types>> extends Omit<PothosSchemaTypes.EnumTypeOptions<Types, Values>, 'values'> { name?: string; values?: Values; } export interface AddGraphQLInputTypeOptions<Types extends SchemaTypes, Shape extends {}> extends Omit<PothosSchemaTypes.InputObjectTypeOptions<Types, InputFieldsFromShape<Types, Shape, 'InputObject'>>, 'fields'> { name?: string; fields?: AddGraphQLInputFieldsShape<Types, Shape>; } export type EnumValuesWithShape<Types extends SchemaTypes, Shape> = EnumValues<Types> & (Record<string, { value: Shape; }> | Shape[]); //# sourceMappingURL=types.d.ts.map