UNPKG

graphql-compose-connection

Version:

Plugin for `graphql-compose` which provide a connection resolver for types.

45 lines 2.3 kB
import { ObjectTypeComposer, InterfaceTypeComposer, Resolver, ResolverResolveParams, ObjectTypeComposerFieldConfigMap } from 'graphql-compose'; import { PageInfoType, ConnectionType } from './types/connectionType'; import { CursorDataType } from './cursor'; export declare type ConnectionResolverOpts<TContext> = { findManyResolver: Resolver; countResolver: Resolver; sort: ConnectionSortMapOpts; name?: string; defaultLimit?: number | undefined; edgeTypeName?: string; edgeFields?: ObjectTypeComposerFieldConfigMap<any, TContext>; }; export declare type ConnectionSortOpts<TSource = any, TContext = any> = { value: any; cursorFields: string[]; beforeCursorQuery: (rawQuery: any, cursorData: CursorDataType, resolveParams: Partial<ResolverResolveParams<TSource, TContext, ConnectionTArgs>>) => any; afterCursorQuery: (rawQuery: any, cursorData: CursorDataType, resolveParams: Partial<ResolverResolveParams<TSource, TContext, ConnectionTArgs>>) => any; }; export declare type ConnectionSortMapOpts = { [sortName: string]: ConnectionSortOpts; }; export interface ConnectionTArgs { first?: number | null; after?: string; last?: number | null; before?: string; sort?: Record<string, any>; filter?: Record<string, any>; [argName: string]: any; } export declare function prepareConnectionResolver<TSource, TContext>(tc: ObjectTypeComposer<TSource, TContext> | InterfaceTypeComposer<TSource, TContext>, opts: ConnectionResolverOpts<TContext>): Resolver<TSource, TContext>; export declare function preparePageInfo(edges: { cursor: string; [key: string]: any; }[], args: { last?: number | null; first?: number | null; after?: string; before?: string; }, limit: number, skip: number): PageInfoType; export declare function prepareRawQuery(rp: Partial<ResolverResolveParams<any, any, ConnectionTArgs>>, sortConfig: ConnectionSortOpts): void; export declare function prepareLimitSkipFallback(rp: ResolverResolveParams<any, any, ConnectionTArgs>, limit: number, skip: number): [number, number]; export declare function emptyConnection(): ConnectionType; export declare function findSortConfig(configs: ConnectionSortMapOpts, val: unknown): ConnectionSortOpts | undefined; //# sourceMappingURL=connection.d.ts.map