UNPKG

@backland/schema

Version:

TypeScript schema declaration and validation library with static type inference

31 lines (30 loc) 1.3 kB
export declare class QueryBuilder<S extends Record<string, any> = Record<string, any>> { chain: Set<string>; edges: Map<string, Function>; object: Record<string, any>; query: string; builder: (data: GraphGetData<S>) => Array<any>; constructor(builder: (data: GraphGetData<S>) => Array<any>); read: () => string; build: (parent?: string[]) => any; } export declare function graphGet<T extends Record<string, any>>(builder: (data: GraphGetData<T>) => Array<any>): QueryBuilder<T>; export type Utils<T extends Readonly<Record<string, unknown>>> = { $aliasFor: (alias: string) => GraphGetData<T>; $all_on: (args: string[]) => GraphGetData<T>; $args: (args: Record<string, any>) => GraphGetData<T>; $directives: (args: Record<string, any>) => GraphGetData<T>; $name: (alias: string) => GraphGetData<T>; $on: (record: { [K: string]: unknown; __typeName: string; } | { [K: string]: unknown; __typeName: string; }[]) => GraphGetData<T>; $val: T; $variables: (args: Record<string, any>) => GraphGetData<T>; }; export type GraphGetData<O extends Readonly<Record<string, any>>> = { [K in keyof O]: ((...args: any[]) => Utils<GraphGetData<O[K]>> & GraphGetData<O[K]>) & Utils<O[K]> & GraphGetData<O[K]>; };