Skip to content

Commit 14b6d80

Browse files
committed
Merge branch 'listrequired'
2 parents ec2bb16 + 48d6f54 commit 14b6d80

File tree

10 files changed

+29
-19
lines changed

10 files changed

+29
-19
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "graphql-js-tree",
3-
"version": "0.1.0",
3+
"version": "0.1.1",
44
"private": false,
55
"license": "MIT",
66
"description": "GraphQL Parser providing simplier structure",

src/Models/Spec.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,7 @@ export enum Options {
9898
name = 'name',
9999
}
100100

101-
export type FieldType = { type: Options; nest?: FieldType; name?: string };
101+
export type FieldType =
102+
| { type: Options.name; name: string }
103+
| { type: Options.required; nest: FieldType }
104+
| { type: Options.array; nest: FieldType };

src/Models/Types.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,5 @@ export type AllTypes =
3030
| Type;
3131

3232
export interface GraphQLNodeParams {
33-
type?: AllTypes;
34-
for?: AllTypes[];
33+
type: AllTypes;
3534
}

src/TreeToGraphQL/templates/ArgumentTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ParserField } from '@/Models';
2-
import { getTypeName } from '@/TreeToGraphQL/templates/shared/getTypeName';
2+
import { getTypeName } from '@/shared/getTypeName';
33
import { TemplateUtils } from './TemplateUtils';
44

55
/**

src/TreeToGraphQL/templates/DirectiveTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ParserField } from '@/Models';
2-
import { getTypeName } from '@/TreeToGraphQL/templates/shared/getTypeName';
2+
import { getTypeName } from '@/shared/getTypeName';
33
import { TemplateUtils } from './TemplateUtils';
44

55
/**

src/TreeToGraphQL/templates/UnionMemberTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ParserField } from '@/Models';
2-
import { getTypeName } from '@/TreeToGraphQL/templates/shared/getTypeName';
2+
import { getTypeName } from '@/shared/getTypeName';
33

44
/**
55
* Template for union member represented in GraphQL Union - `type U = A | B` where A and B are union members

src/TreeToGraphQL/templates/ValueTemplate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { ParserField, Value } from '@/Models';
2-
import { getTypeName } from '@/TreeToGraphQL/templates/shared/getTypeName';
2+
import { getTypeName } from '@/shared/getTypeName';
33
import { TemplateUtils } from './TemplateUtils';
44

55
/**

src/TreeToGraphQL/templates/shared/getTypeName.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from './TreeToGraphQL';
22
export * from './Parser';
33
export * from './Models';
4+
export * from './shared/getTypeName';

src/shared/getTypeName.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { FieldType, Options } from '@/Models';
2+
3+
export const getTypeName = (f: FieldType): string => {
4+
if (f.type === Options.name) {
5+
return f.name;
6+
}
7+
return getTypeName(f.nest);
8+
};
9+
10+
export const compileType = (f: FieldType, fn: (x: string) => string = (x) => x): string => {
11+
if (f.type === Options.name) {
12+
return fn(f.name);
13+
} else if (f.type === Options.array) {
14+
return compileType(f.nest, (x) => `[${fn(x)}]`);
15+
} else {
16+
return compileType(f.nest, (x) => `${fn(x)}!`);
17+
}
18+
};

0 commit comments

Comments
 (0)