@@ -33,19 +33,35 @@ export type Types = {[name: string]: Type}
33
33
34
34
let promise : ?Promise < Types >
35
35
36
+
37
+ function convertRawField ( { name, type} : RawField ) : Field {
38
+ return ( { name, type : convertRawType ( type ) } : any )
39
+ }
40
+
41
+ function convertRawFields ( fields : Array < RawField > ) : { [ name : string ] : Field } {
42
+ const convertedFields = { }
43
+ for ( let field of fields ) {
44
+ convertedFields [ field . name ] = ( convertRawField ( field ) : any )
45
+ }
46
+ return convertedFields
47
+ }
48
+
49
+ function convertRawType ( { name, kind, ofType, fields} : RawType ) : Type {
50
+ return {
51
+ name,
52
+ kind,
53
+ ofType : ofType ? convertRawType ( ofType ) : null ,
54
+ fields : fields ? convertRawFields ( fields ) : null ,
55
+ }
56
+ }
57
+
36
58
export function linkTypes ( rawTypes : Array < RawType > ) : Types {
37
59
const types : Types = { }
60
+
38
61
for ( let rawType of rawTypes ) {
39
- const { name, kind , ofType , fields } = rawType
62
+ const { name} = rawType
40
63
if ( name ) {
41
- const type = types [ name ] = { name, kind}
42
- if ( ofType ) type . ofType = ( ofType : any )
43
- if ( fields ) {
44
- type . fields = { }
45
- for ( let field of fields ) {
46
- type . fields [ field . name ] = field
47
- }
48
- }
64
+ types [ name ] = convertRawType ( rawType )
49
65
}
50
66
}
51
67
function resolveType ( type : Type , parent : ?Field ) : Type {
0 commit comments