UNPKG

type-graphql-utils

Version:

utilities to transform type-graphql types

15 lines (14 loc) 1.42 kB
import { ClassType } from 'type-graphql'; import type { FieldMetadata } from 'type-graphql/dist/metadata/definitions'; declare type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>; declare type RequiredBy<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>; export declare function buildEnum<T extends ClassType>(Class: T, name: string): Record<keyof InstanceType<T>, keyof InstanceType<T>>; export interface Options { directives?: boolean; } export declare function buildType(BaseClass: ClassType, buildFn: (f: FieldMetadata) => FieldMetadata | FieldMetadata[] | undefined, options?: Options): any; export declare function Pick<T extends ClassType, K extends keyof InstanceType<T>>(BaseClass: T, names: Record<K, 1>, options?: Options): ClassType<Pick<InstanceType<T>, K>>; export declare function Omit<T extends ClassType, K extends keyof InstanceType<T>>(BaseClass: T, names: Record<K, 1>, options?: Options): ClassType<Omit<InstanceType<T>, K>>; export declare function Partial<T extends ClassType, K extends keyof InstanceType<T> = keyof InstanceType<T>>(BaseClass: T, names?: Record<K, 1> | null, options?: Options): ClassType<PartialBy<InstanceType<T>, K>>; export declare function Required<T extends ClassType, K extends keyof InstanceType<T> = keyof InstanceType<T>>(BaseClass: T, names?: Record<K, 1> | null, options?: Options): ClassType<RequiredBy<InstanceType<T>, K>>; export {};