Browse Source

Type bugfixes;

bjorn 9 years ago
parent
commit
1a1d5b67e8
1 changed files with 14 additions and 3 deletions
  1. 14 3
      types.lua

+ 14 - 3
types.lua

@@ -46,7 +46,7 @@ function types.object(config)
     fields[fieldName] = {
     fields[fieldName] = {
       name = fieldName,
       name = fieldName,
       kind = field.kind,
       kind = field.kind,
-      args = field.args or {}
+      arguments = field.arguments or {}
     }
     }
   end
   end
 
 
@@ -54,7 +54,8 @@ function types.object(config)
     __type = 'Object',
     __type = 'Object',
     name = config.name,
     name = config.name,
     isTypeOf = config.isTypeOf,
     isTypeOf = config.isTypeOf,
-    fields = fields
+    fields = fields,
+    interfaces = config.interfaces
   }
   }
 
 
   instance.nonNull = types.nonNull(instance)
   instance.nonNull = types.nonNull(instance)
@@ -69,11 +70,21 @@ function types.interface(config)
     assert(type(config.resolveType) == 'function', 'must provide resolveType as a function')
     assert(type(config.resolveType) == 'function', 'must provide resolveType as a function')
   end
   end
 
 
+  local fields = {}
+  for fieldName, field in pairs(config.fields) do
+    field = field.__type and { kind = field } or field
+    fields[fieldName] = {
+      name = fieldName,
+      kind = field.kind,
+      arguments = field.arguments or {}
+    }
+  end
+
   local instance = {
   local instance = {
     __type = 'Interface',
     __type = 'Interface',
     name = config.name,
     name = config.name,
     description = config.description,
     description = config.description,
-    fields = config.fields,
+    fields = fields,
     resolveType = config.resolveType
     resolveType = config.resolveType
   }
   }