Skip to content

Commit 5153859

Browse files
committed
fix: stricter linting, and downgrading typescript for compatibility
1 parent d1a5f4b commit 5153859

12 files changed

+121
-65
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,10 @@
116116
"ts-jest": "^23.10.2",
117117
"ts-node": "^7.0.1",
118118
"tslint": "^5.11.0",
119+
"tslint-config-airbnb": "^5.11.1",
119120
"tslint-config-prettier": "^1.15.0",
120-
"tslint-config-standard": "^8.0.1",
121121
"typedoc": "^0.12.0",
122-
"typescript": "^3.0.3"
122+
"typescript": "~3.3.0"
123123
},
124124
"peerDependencies": {
125125
"graphql": "^0.12.0 || ^0.13.0 || ^14.0.0"

src/RewriteHandler.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Rewriter, { Variables } from './rewriters/Rewriter';
21
import { parse, print } from 'graphql';
3-
import { rewriteDoc, extractPath, rewriteResultsAtPath } from './ast';
2+
import { extractPath, rewriteDoc, rewriteResultsAtPath } from './ast';
3+
import Rewriter, { Variables } from './rewriters/Rewriter';
44

55
interface RewriterMatch {
66
rewriter: Rewriter;
@@ -17,7 +17,7 @@ export default class RewriteHandler {
1717
this.rewriters = rewriters;
1818
}
1919

20-
rewriteRequest(query: string, variables?: Variables) {
20+
public rewriteRequest(query: string, variables?: Variables) {
2121
if (this.hasProcessedRequest) throw new Error('This handler has already rewritten a request');
2222
this.hasProcessedRequest = true;
2323
const doc = parse(query);
@@ -42,7 +42,7 @@ export default class RewriteHandler {
4242
return { query: print(rewrittenDoc), variables: rewrittenVariables };
4343
}
4444

45-
rewriteResponse(response: any) {
45+
public rewriteResponse(response: any) {
4646
if (this.hasProcessedResponse) throw new Error('This handler has already returned a response');
4747
this.hasProcessedResponse = true;
4848
let rewrittenResponse = response;

src/ast.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ASTNode, ArgumentNode, DocumentNode, VariableDefinitionNode } from 'graphql';
1+
import { ASTNode, DocumentNode, VariableDefinitionNode } from 'graphql';
22

33
const ignoreKeys = new Set(['loc']);
44

@@ -52,17 +52,17 @@ export const rewriteDoc = (
5252
(node as any)[key] = val.map(elm => {
5353
if (typeof elm === 'object') {
5454
const next: NodeAndVarDefs = {
55-
node: elm,
56-
variableDefinitions
55+
variableDefinitions,
56+
node: elm
5757
};
5858
return walkRecursive(next, nextParents);
5959
}
6060
return elm;
6161
});
6262
} else if (typeof val === 'object') {
6363
const next: NodeAndVarDefs = {
64-
node: val,
65-
variableDefinitions
64+
variableDefinitions,
65+
node: val
6666
};
6767
(node as any)[key] = walkRecursive(next, nextParents);
6868
}
@@ -71,8 +71,8 @@ export const rewriteDoc = (
7171
};
7272

7373
const root: NodeAndVarDefs = {
74-
node: doc,
75-
variableDefinitions
74+
variableDefinitions,
75+
node: doc
7676
};
7777
const rewrittenDoc = walkRecursive(root, []) as DocumentNode;
7878
return replaceVariableDefinitions(rewrittenDoc, variableDefinitions);
@@ -115,9 +115,9 @@ export const extractPath = (parents: ReadonlyArray<ASTNode>): ReadonlyArray<stri
115115
return path;
116116
};
117117

118-
type ResultObj = {
118+
interface ResultObj {
119119
[key: string]: any;
120-
};
120+
}
121121

122122
export const rewriteResultsAtPath = (
123123
results: ResultObj,

src/rewriters/FieldArgNameRewriter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Rewriter, { RewriterOpts } from './Rewriter';
2-
import { FieldNode, ASTNode } from 'graphql';
1+
import { ASTNode, FieldNode } from 'graphql';
32
import { NodeAndVarDefs } from '../ast';
3+
import Rewriter, { RewriterOpts } from './Rewriter';
44

55
interface IFieldArgNameRewriterOpts extends RewriterOpts {
66
oldArgName: string;
@@ -21,7 +21,7 @@ class FieldArgNameRewriter extends Rewriter {
2121
this.newArgName = options.newArgName;
2222
}
2323

24-
matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
24+
public matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
2525
if (!super.matches(nodeAndVars, parents)) return false;
2626
const node = nodeAndVars.node as FieldNode;
2727
// is this a field with the correct arguments?
@@ -30,14 +30,14 @@ class FieldArgNameRewriter extends Rewriter {
3030
return !!node.arguments.find(arg => arg.name.value === this.oldArgName);
3131
}
3232

33-
rewriteQuery({ node, variableDefinitions }: NodeAndVarDefs) {
33+
public rewriteQuery({ node, variableDefinitions }: NodeAndVarDefs) {
3434
const newArguments = ((node as FieldNode).arguments || []).map(argument => {
3535
if (argument.name.value === this.oldArgName) {
3636
return { ...argument, name: { ...argument.name, value: this.newArgName } };
3737
}
3838
return argument;
3939
});
40-
return { node: { ...node, arguments: newArguments }, variableDefinitions } as NodeAndVarDefs;
40+
return { variableDefinitions, node: { ...node, arguments: newArguments } } as NodeAndVarDefs;
4141
}
4242
}
4343

src/rewriters/FieldArgTypeRewriter.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import Rewriter, { Variables, RewriterOpts } from './Rewriter';
2-
import { ASTNode, parseType, FieldNode, ArgumentNode, VariableNode, TypeNode } from 'graphql';
3-
import { nodesMatch, NodeAndVarDefs } from '../ast';
1+
import { ArgumentNode, ASTNode, FieldNode, parseType, TypeNode, VariableNode } from 'graphql';
2+
import { NodeAndVarDefs, nodesMatch } from '../ast';
43
import { identifyFunc } from '../utils';
4+
import Rewriter, { RewriterOpts, Variables } from './Rewriter';
55

66
interface FieldArgTypeRewriterOpts extends RewriterOpts {
77
argName: string;
@@ -28,7 +28,7 @@ class FieldArgTypeRewriter extends Rewriter {
2828
this.coerceVariable = options.coerceVariable || identifyFunc;
2929
}
3030

31-
matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
31+
public matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
3232
if (!super.matches(nodeAndVars, parents)) return false;
3333
const node = nodeAndVars.node as FieldNode;
3434
const { variableDefinitions } = nodeAndVars;
@@ -49,7 +49,7 @@ class FieldArgTypeRewriter extends Rewriter {
4949
return false;
5050
}
5151

52-
rewriteQuery({ node, variableDefinitions }: NodeAndVarDefs) {
52+
public rewriteQuery({ node, variableDefinitions }: NodeAndVarDefs) {
5353
const varRefName = this.extractMatchingVarRefName(node as FieldNode);
5454
const newVarDefs = variableDefinitions.map(varDef => {
5555
if (varDef.variable.name.value !== varRefName) return varDef;
@@ -58,7 +58,7 @@ class FieldArgTypeRewriter extends Rewriter {
5858
return { node, variableDefinitions: newVarDefs };
5959
}
6060

61-
rewriteVariables({ node }: NodeAndVarDefs, variables: Variables) {
61+
public rewriteVariables({ node }: NodeAndVarDefs, variables: Variables) {
6262
if (!variables) return variables;
6363
const varRefName = this.extractMatchingVarRefName(node as FieldNode);
6464
return { ...variables, [varRefName]: this.coerceVariable(variables[varRefName]) };

src/rewriters/FieldArgsToInputTypeRewriter.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Rewriter, { RewriterOpts } from './Rewriter';
2-
import { FieldNode, ArgumentNode, ObjectFieldNode, ASTNode } from 'graphql';
1+
import { ArgumentNode, ASTNode, FieldNode, ObjectFieldNode } from 'graphql';
32
import { NodeAndVarDefs } from '../ast';
3+
import Rewriter, { RewriterOpts } from './Rewriter';
44

55
interface FieldArgsToInputTypeRewriterOpts extends RewriterOpts {
66
argNames: string[];
@@ -22,7 +22,7 @@ class FieldArgsToInputTypeRewriter extends Rewriter {
2222
if (options.inputArgName) this.inputArgName = options.inputArgName;
2323
}
2424

25-
matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
25+
public matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
2626
if (!super.matches(nodeAndVars, parents)) return false;
2727
const node = nodeAndVars.node as FieldNode;
2828
// is this a field with the correct fieldName and arguments?
@@ -35,7 +35,7 @@ class FieldArgsToInputTypeRewriter extends Rewriter {
3535
return !!node.arguments.find(arg => this.argNames.indexOf(arg.name.value) >= 0);
3636
}
3737

38-
rewriteQuery({ node, variableDefinitions }: NodeAndVarDefs) {
38+
public rewriteQuery({ node, variableDefinitions }: NodeAndVarDefs) {
3939
const argsToNest = ((node as FieldNode).arguments || []).filter(
4040
argument => this.argNames.indexOf(argument.name.value) >= 0
4141
);
@@ -57,7 +57,7 @@ class FieldArgsToInputTypeRewriter extends Rewriter {
5757
}
5858
};
5959
newArguments.push(inputArgument);
60-
return { node: { ...node, arguments: newArguments }, variableDefinitions } as NodeAndVarDefs;
60+
return { variableDefinitions, node: { ...node, arguments: newArguments } } as NodeAndVarDefs;
6161
}
6262
}
6363

src/rewriters/NestFieldOutputsRewriter.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import Rewriter, { RewriterOpts } from './Rewriter';
2-
import { FieldNode, ASTNode } from 'graphql';
1+
import { ASTNode, FieldNode } from 'graphql';
32
import { NodeAndVarDefs } from '../ast';
3+
import Rewriter, { RewriterOpts } from './Rewriter';
44

55
interface NestFieldOutputsRewriterOpts extends RewriterOpts {
66
newOutputName: string;
@@ -21,7 +21,7 @@ class NestFieldOutputsRewriter extends Rewriter {
2121
this.outputsToNest = options.outputsToNest;
2222
}
2323

24-
matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
24+
public matches(nodeAndVars: NodeAndVarDefs, parents: ASTNode[]) {
2525
if (!super.matches(nodeAndVars, parents)) return false;
2626
const node = nodeAndVars.node as FieldNode;
2727
// is this a field with the correct selections?
@@ -40,7 +40,7 @@ class NestFieldOutputsRewriter extends Rewriter {
4040
);
4141
}
4242

43-
rewriteQuery(nodeAndVarDefs: NodeAndVarDefs) {
43+
public rewriteQuery(nodeAndVarDefs: NodeAndVarDefs) {
4444
const node = nodeAndVarDefs.node as FieldNode;
4545
const { variableDefinitions } = nodeAndVarDefs;
4646
if (!node.selectionSet) return nodeAndVarDefs;
@@ -60,12 +60,12 @@ class NestFieldOutputsRewriter extends Rewriter {
6060
};
6161
newOutputs.push(nestedOutput);
6262
return {
63-
node: { ...node, selectionSet: { ...node.selectionSet, selections: newOutputs } },
64-
variableDefinitions
63+
variableDefinitions,
64+
node: { ...node, selectionSet: { ...node.selectionSet, selections: newOutputs } }
6565
} as NodeAndVarDefs;
6666
}
6767

68-
rewriteResponse(response: any) {
68+
public rewriteResponse(response: any) {
6969
if (typeof response === 'object') {
7070
// undo the nesting in the response so it matches the original query
7171
if (response[this.newOutputName] && typeof response[this.newOutputName] === 'object') {

src/rewriters/Rewriter.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ abstract class Rewriter {
1818
if (rootTypes) this.rootTypes = rootTypes;
1919
}
2020

21-
matches({ node }: NodeAndVarDefs, parents: ReadonlyArray<ASTNode>): boolean {
21+
public matches({ node }: NodeAndVarDefs, parents: ReadonlyArray<ASTNode>): boolean {
2222
if (node.kind !== 'Field' || node.name.value !== this.fieldName) return false;
2323
const root = parents[0];
2424
if (
@@ -33,15 +33,15 @@ abstract class Rewriter {
3333
return true;
3434
}
3535

36-
rewriteQuery(nodeAndVarDefs: NodeAndVarDefs): NodeAndVarDefs {
36+
public rewriteQuery(nodeAndVarDefs: NodeAndVarDefs): NodeAndVarDefs {
3737
return nodeAndVarDefs;
3838
}
3939

40-
rewriteVariables(_nodeAndVarDefs: NodeAndVarDefs, variables: Variables): Variables {
40+
public rewriteVariables(nodeAndVarDefs: NodeAndVarDefs, variables: Variables): Variables {
4141
return variables;
4242
}
4343

44-
rewriteResponse(response: any): any {
44+
public rewriteResponse(response: any): any {
4545
return response;
4646
}
4747
}

test/ast.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import { OperationDefinitionNode, parse } from 'graphql';
12
import {
2-
rewriteResultsAtPath,
3-
nodesMatch,
43
extractVariableDefinitions,
5-
replaceVariableDefinitions
4+
nodesMatch,
5+
replaceVariableDefinitions,
6+
rewriteResultsAtPath
67
} from '../src/ast';
7-
import { parse, OperationDefinitionNode } from 'graphql';
88

99
describe('ast utils', () => {
1010
describe('rewriteResultsAtPath', () => {

test/testUtils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import * as dedent from 'dedent-js';
22

33
export const gqlFmt = (templateStrings: TemplateStringsArray | string, ...values: any[]) =>
4-
dedent(templateStrings, ...values) + '\n';
4+
`${dedent(templateStrings, ...values)}\n`;

0 commit comments

Comments
 (0)