type-graphql-utils
Version:
utilities to transform type-graphql types
15 lines (14 loc) • 1.42 kB
TypeScript
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 {};