Skip to content

Commit f8e7c45

Browse files
authored
chore(types): use type-only imports in graphile-utils (#719)
1 parent 59a07a2 commit f8e7c45

13 files changed

Lines changed: 65 additions & 42 deletions

packages/graphile-build-pg/src/plugins/PgBasicsPlugin.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import chalk from "chalk";
3333
import pickBy from "lodash/pickBy";
3434
import PgLiveProvider from "../PgLiveProvider";
3535
import pgPrepareAndRun from "../pgPrepareAndRun";
36+
import { formatSQLForDebugging } from "./debugSql";
3637

3738
const defaultPgColumnFilter = (_attr, _build, _context) => true;
3839
type Keys = Array<{
@@ -359,6 +360,7 @@ export default (function PgBasicsPlugin(
359360
sqlCommentByAddingTags,
360361
pgPrepareAndRun,
361362
pgAugmentIntrospectionResults,
363+
formatSQLForDebugging,
362364
});
363365
},
364366
["PgBasics"]

packages/graphile-utils/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,5 @@
4949
"graphile-build": "^4.5.0",
5050
"graphile-build-pg": "^4.5.0"
5151
},
52-
"files": [
53-
"node8plus"
54-
]
52+
"files": ["node8plus"]
5553
}

packages/graphile-utils/src/fieldHelpers.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import debugFactory from "debug";
2-
import { GraphQLResolveInfo } from "graphql";
3-
import { Build, Context } from "graphile-build";
4-
import { QueryBuilder, SQL, formatSQLForDebugging } from "graphile-build-pg";
2+
import type { GraphQLResolveInfo } from "graphql";
3+
import type { Build, Context } from "graphile-build";
4+
import type { QueryBuilder, SQL } from "graphile-build-pg";
55

66
// Not really the right scope, but eases debugging for users
77
const debugSql = debugFactory("graphile-build-pg:sql");
@@ -23,7 +23,14 @@ export function makeFieldHelpers<TSource>(
2323
context: any,
2424
resolveInfo: GraphQLResolveInfo
2525
) {
26-
const { parseResolveInfo, pgQueryFromResolveData, pgSql: sql } = build;
26+
const {
27+
parseResolveInfo,
28+
pgQueryFromResolveData,
29+
pgSql: sql,
30+
31+
// Default is for support of graphile-build-pg pre 4.12:
32+
formatSQLForDebugging = require("graphile-build-pg").formatSQLForDebugging,
33+
} = build;
2734
const { getDataFromParsedResolveInfoFragment, scope } = fieldContext;
2835
const { pgFieldIntrospection, isPgFieldConnection } = scope;
2936

packages/graphile-utils/src/introspectionHelpers.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,27 @@
1-
import {
1+
import type {
22
PgClass,
3-
PgEntityKind,
43
PgConstraint,
54
PgAttribute,
65
PgEntity,
76
PgProc,
87
} from "graphile-build-pg";
98
import parseIdentifierParts from "./parseIdentifierParts";
10-
import { Build } from "graphile-build";
9+
import type { Build } from "graphile-build";
1110

1211
export function isAttribute(obj: PgEntity): obj is PgAttribute {
13-
return obj.kind === PgEntityKind.ATTRIBUTE;
12+
return obj.kind === "attribute";
1413
}
1514

1615
export function isConstraint(obj: PgEntity): obj is PgConstraint {
17-
return obj.kind === PgEntityKind.CONSTRAINT;
16+
return obj.kind === "constraint";
1817
}
1918

2019
export function isClass(obj: PgEntity): obj is PgClass {
21-
return obj.kind === PgEntityKind.CLASS;
20+
return obj.kind === "class";
2221
}
2322

2423
export function isProcedure(obj: PgEntity): obj is PgProc {
25-
return obj.kind === PgEntityKind.PROCEDURE;
24+
return obj.kind === "procedure";
2625
}
2726

2827
export function entityIsIdentifiedBy(

packages/graphile-utils/src/makeAddInflectorsPlugin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Plugin, Options, Build } from "graphile-build";
1+
import type { Plugin, Options, Build } from "graphile-build";
22

33
interface Inflectors {
44
[str: string]: (...args: Array<any>) => any;

packages/graphile-utils/src/makeAddPgTableConditionPlugin.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// BELOW HERE, IMPORTS ARE ONLY TYPES (not values)
2-
import { GraphQLInputFieldConfig } from "graphql";
3-
import { SQL, sql as sqlType, QueryBuilder } from "graphile-build-pg";
4-
import { Build, Plugin } from "graphile-build";
2+
import type { GraphQLInputFieldConfig } from "graphql";
3+
import type { SQL, sql as sqlType, QueryBuilder } from "graphile-build-pg";
4+
import type { Build, Plugin } from "graphile-build";
55

66
export default function makeAddPgTableConditionPlugin(
77
schemaName: string,
@@ -17,7 +17,7 @@ export default function makeAddPgTableConditionPlugin(
1717
},
1818
build: Build
1919
) => SQL | null | undefined
20-
) {
20+
): Plugin {
2121
const displayName = `makeAddPgTableConditionPlugin__${schemaName}__${tableName}__${conditionFieldName}`;
2222
const plugin: Plugin = builder => {
2323
const instance = Symbol(displayName);

packages/graphile-utils/src/makeAddPgTableOrderByPlugin.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// BELOW HERE, IMPORTS ARE ONLY TYPES (not values)
2-
import { SQL, QueryBuilder } from "graphile-build-pg";
3-
import { Build, Plugin } from "graphile-build";
2+
import type { SQL, QueryBuilder } from "graphile-build-pg";
3+
import type { Build, Plugin } from "graphile-build";
44

55
type OrderBySpecIdentity =
66
| string

packages/graphile-utils/src/makeChangeNullabilityPlugin.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
1-
import { SchemaBuilder, Build, Context, Plugin, Options } from "graphile-build";
2-
import { GraphQLInputFieldConfig, GraphQLFieldConfig } from "graphql";
1+
import type {
2+
SchemaBuilder,
3+
Build,
4+
Context,
5+
Plugin,
6+
Options,
7+
} from "graphile-build";
8+
import type { GraphQLInputFieldConfig, GraphQLFieldConfig } from "graphql";
39

410
interface ChangeNullabilityRules {
511
[typeName: string]: {

packages/graphile-utils/src/makeExtendSchemaPlugin.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
1-
import { SchemaBuilder, Build, Context, Plugin, Options } from "graphile-build";
2-
import { QueryBuilder, PgClass } from "graphile-build-pg";
3-
import {
1+
import type {
2+
SchemaBuilder,
3+
Build,
4+
Context,
5+
Plugin,
6+
Options,
7+
} from "graphile-build";
8+
import type { QueryBuilder, PgClass } from "graphile-build-pg";
9+
import type {
410
// ONLY import types here, not values
511
// Misc:
612
GraphQLIsTypeOfFn,

packages/graphile-utils/src/makePgSmartTagsPlugin.ts

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Plugin, Build } from "graphile-build";
2-
import {
1+
import type { Plugin, Build } from "graphile-build";
2+
import type {
33
PgEntityKind,
44
PgEntity,
55
PgIntrospectionResultsByKind,
@@ -36,11 +36,10 @@ export type PgSmartTagSupportedKinds =
3636
const meaningByKind: {
3737
[kind in PgSmartTagSupportedKinds]: string;
3838
} = {
39-
[PgEntityKind.CLASS]:
40-
"for tables, composite types, views and materialized views",
41-
[PgEntityKind.ATTRIBUTE]: "for columns/attributes (of any 'class' type)",
42-
[PgEntityKind.CONSTRAINT]: "for table constraints",
43-
[PgEntityKind.PROCEDURE]: "for functions/procedures",
39+
["class"]: "for tables, composite types, views and materialized views",
40+
["attribute"]: "for columns/attributes (of any 'class' type)",
41+
["constraint"]: "for table constraints",
42+
["procedure"]: "for functions/procedures",
4443
};
4544

4645
const validKinds = Object.entries(meaningByKind)
@@ -263,7 +262,7 @@ function pgSmartTagRulesFromJSON(
263262
key: string,
264263
deprecated = false
265264
): void {
266-
if (kind !== PgEntityKind.CLASS) {
265+
if (kind !== "class") {
267266
throw new Error(
268267
`makeJSONPgSmartTagsPlugin: '${key}' is only valid on a class; you tried to set it on a '${kind}' at 'config.${kind}.${identifier}.${key}'`
269268
);
@@ -347,7 +346,7 @@ function pgSmartTagRulesFromJSON(
347346
process(
348347
kind,
349348
identifier,
350-
PgEntityKind.ATTRIBUTE,
349+
"attribute" as PgEntityKind.ATTRIBUTE,
351350
columns,
352351
"columns",
353352
true
@@ -357,7 +356,7 @@ function pgSmartTagRulesFromJSON(
357356
process(
358357
kind,
359358
identifier,
360-
PgEntityKind.ATTRIBUTE,
359+
"attribute" as PgEntityKind.ATTRIBUTE,
361360
attribute,
362361
"attribute"
363362
);
@@ -366,7 +365,7 @@ function pgSmartTagRulesFromJSON(
366365
process(
367366
kind,
368367
identifier,
369-
PgEntityKind.CONSTRAINT,
368+
"constraint" as PgEntityKind.CONSTRAINT,
370369
constraint,
371370
"constraint"
372371
);

0 commit comments

Comments
 (0)