graphile-build-pg
Version:
Build a GraphQL schema by reflection over a PostgreSQL schema. Easy to customize since it's built with plugins on graphile-build
28 lines (24 loc) • 850 B
TypeScript
import { ResolveTree } from "graphql-parse-resolve-info";
import { Build, Scope } from "graphile-build";
import { SQL } from "pg-sql2";
import QueryBuilder from "../QueryBuilder";
// eslint-disable-next-line @typescript-eslint/no-unused-vars
type FieldContext<T> = any;
type FieldWithHooksFunction = any;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
interface PgFieldOptions<T> {
hoistCursor?: boolean;
withQueryBuilder?: (
queryBuilder: QueryBuilder,
args: { parsedResolveInfoFragment: ResolveTree }
) => void;
}
export default function pgField<T>(
build: Build,
fieldWithHooks: FieldWithHooksFunction,
fieldName: string,
fieldSpecGenerator: T | ((fieldContext: FieldContext<T>) => T),
fieldScope: Scope<T>,
whereFrom?: false | ((queryBuilder: QueryBuilder) => SQL),
options?: PgFieldOptions<T>
): T;