UNPKG

t-graphql

Version:

typed GraphQL - end-to-end type-safe GraphQL for TypeScript. Think tRPC, but GraphQL

14 lines (13 loc) 1.15 kB
import { AnySchemaType, EmptySchemaType } from '../SchemaType'; import { ObjectUnionToObjectIntersection } from '../types/ObjectUnionToObjectIntersection.type'; type FilterByKey<U, K extends string> = Extract<U, { [key in K]: any; }>; export type MergePartialSchemaResolvers<Rs extends object, Schema extends AnySchemaType = EmptySchemaType> = Omit<ObjectUnionToObjectIntersection<Rs>, Schema['Query']['typename'] | Schema['Mutation']['typename'] | Schema['Subscription']['typename']> & ([FilterByKey<Rs, Schema['Query']['typename']>] extends [never] ? Record<never, any> : { [typename in Schema['Query']['typename']]: ObjectUnionToObjectIntersection<FilterByKey<Rs, typename>[typename]>; }) & ([FilterByKey<Rs, Schema['Mutation']['typename']>] extends [never] ? Record<never, any> : { [typename in Schema['Mutation']['typename']]: ObjectUnionToObjectIntersection<FilterByKey<Rs, typename>[typename]>; }) & ([FilterByKey<Rs, Schema['Subscription']['typename']>] extends [never] ? Record<never, any> : { [typename in Schema['Subscription']['typename']]: ObjectUnionToObjectIntersection<FilterByKey<Rs, typename>[typename]>; }); export {};