Skip to content

Commit f387803

Browse files
committed
Pass options into convertQuery
1 parent c26d001 commit f387803

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/jsonToGraphQLQuery.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ function filterNonConfigFields(fieldName: string, ignoreFields: string[]) {
5252
&& ignoreFields.indexOf(fieldName) == -1;
5353
}
5454

55-
function convertQuery(node: any, level: number, ignoreFields: string[], output: Array<[ string, number ]>) {
55+
function convertQuery(node: any, level: number, output: Array<[ string, number ]>, options: IJsonToGraphQLOptions) {
5656
Object.keys(node)
57-
.filter((key) => filterNonConfigFields(key, ignoreFields))
57+
.filter((key) => filterNonConfigFields(key, options.ignoreFields))
5858
.forEach((key) => {
5959
if (typeof node[key] === 'object') {
6060
const fieldCount = Object.keys(node[key])
61-
.filter((keyCount) => filterNonConfigFields(keyCount, ignoreFields)).length;
61+
.filter((keyCount) => filterNonConfigFields(keyCount, options.ignoreFields)).length;
6262
const subFields = fieldCount > 0;
6363
let token: string;
6464

@@ -77,7 +77,7 @@ function convertQuery(node: any, level: number, ignoreFields: string[], output:
7777
}
7878

7979
output.push([ token + (fieldCount > 0 ? ' {' : ''), level ]);
80-
convertQuery(node[key], level + 1, ignoreFields, output);
80+
convertQuery(node[key], level + 1, output, options);
8181

8282
if (subFields) {
8383
output.push([ '}', level ]);
@@ -100,9 +100,12 @@ export function jsonToGraphQLQuery(query: any, options: IJsonToGraphQLOptions =
100100
if (Object.keys(query).length == 0) {
101101
throw new Error('query object has no data');
102102
}
103+
if (!(options.ignoreFields instanceof Array)) {
104+
options.ignoreFields = [];
105+
}
103106

104107
const queryLines: Array<[string, number]> = [];
105-
convertQuery(query, 0, options.ignoreFields || [], queryLines);
108+
convertQuery(query, 0, queryLines, options);
106109

107110
let output = '';
108111
queryLines.forEach(([line, level]) => {

0 commit comments

Comments
 (0)