Skip to content

Commit

Permalink
feat(utils): support connections in makeExtendSchemaPlugin (#413)
Browse files Browse the repository at this point in the history
  • Loading branch information
benjie committed Mar 7, 2019
1 parent 87bc4bd commit 7f5fffb
Show file tree
Hide file tree
Showing 9 changed files with 1,563 additions and 42 deletions.
24 changes: 22 additions & 2 deletions packages/graphile-build-pg/src/QueryBuilder.d.ts
@@ -1,8 +1,11 @@
import * as sql from "pg-sql2";
import { PgClass } from "./plugins/PgIntrospectionPlugin";

type SQL = sql.SQL;
export { sql, SQL };

export type GraphQLContext = any;

export interface GenContext {
queryBuilder: QueryBuilder;
}
Expand All @@ -16,16 +19,31 @@ export type CursorValue = object;
export type CursorComparator = (val: CursorValue, isAfter: boolean) => void;

export default class QueryBuilder {
public parentQueryBuilder: QueryBuilder | void;
public context: GraphQLContext;
public beforeLock(field: string, fn: () => void): void;
public makeLiveCollection(
table: PgClass,
cb?: (checker: (data: any) => (record: any) => boolean) => void
): void;
public addLiveCondition(
checkerGenerator: (data: {}) => (record: any) => boolean,
requirements?: { [key: string]: SQL }
): void;
public setCursorComparator(fn: CursorComparator): void;
public addCursorCondition(cursorValue: CursorValue, isAfter: boolean): void;
public select(exprGen: SQLGen, alias: RawAlias): void;
public selectIdentifiers(table: PgClass): void;
public selectCursor(exprGen: SQLGen): void;
public from(expr: SQLGen, alias?: SQLAlias): void;
public where(exprGen: SQLGen): void;
public whereBound(exprGen: SQLGen, isLower: boolean): void;
public setOrderIsUnique(): void;
public orderBy(exprGen: SQLGen, ascending: boolean, nullsFirst: boolean | null): void;
public orderBy(
exprGen: SQLGen,
ascending: boolean,
nullsFirst: boolean | null
): void;
public limit(limitGen: NumberGen): void;
public offset(offsetGen: NumberGen): void;
public first(first: number): void;
Expand All @@ -45,7 +63,9 @@ export default class QueryBuilder {
};
public getFinalOffset(): number;
public getFinalLimit(): number;
public getOrderByExpressionsAndDirections(): Array<[SQL, boolean, boolean | null]>;
public getOrderByExpressionsAndDirections(): Array<
[SQL, boolean, boolean | null]
>;
public getSelectFieldsCount(): number;
public buildSelectFields(): SQL;
public buildSelectJson({ addNullCase }: { addNullCase?: boolean }): SQL;
Expand Down
1 change: 1 addition & 0 deletions packages/graphile-build/src/SchemaBuilder.js
Expand Up @@ -75,6 +75,7 @@ export type Build = {|
currentHookName: ?string,
currentHookEvent: ?string,
},
scopeByType: Map<GraphQLType, Scope>,
|};

export type BuildExtensionQuery = {|
Expand Down
2 changes: 2 additions & 0 deletions packages/graphile-build/src/makeNewBuild.js
Expand Up @@ -815,6 +815,7 @@ export default function makeNewBuild(builder: SchemaBuilder): { ...Build } {
}
}

this.scopeByType.set(Self, scope);
if (finalSpec.name) {
this.addType(
Self,
Expand Down Expand Up @@ -889,5 +890,6 @@ export default function makeNewBuild(builder: SchemaBuilder): { ...Build } {
currentHookEvent: null,
},
liveCoordinator: new LiveCoordinator(),
scopeByType: new Map(),
};
}

0 comments on commit 7f5fffb

Please sign in to comment.