apollo-compiler 1.31.1

A compiler for the GraphQL query language.
Documentation
type ComplicatedArgs {
  intArgField(intArg: Int): String
  nonNullIntArgField(nonNullIntArg: Int!): String
  stringArgField(stringArg: String): String
  booleanArgField(booleanArg: Boolean): String
  enumArgField(enumArg: FurColor): String
  floatArgField(floatArg: Float): String
  idArgField(idArg: ID): String
  stringListArgField(stringListArg: [String]): String
  stringListNonNullArgField(stringListNonNullArg: [String!]): String
  complexArgField(complexArg: ComplexInput): String
  multipleReqs(req1: Int!, req2: Int!): String
  nonNullFieldWithDefault(arg: Int! = 0): String
  multipleOpts(opt1: Int = 0, opt2: Int = 0): String
  multipleOptAndReq(req1: Int!, req2: Int!, opt1: Int = 0, opt2: Int = 0): String
}

enum FurColor {
  BROWN
  BLACK
  TAN
  SPOTTED
  NO_FUR
  UNKNOWN
}

input ComplexInput {
  requiredField: Boolean!
  nonNullField: Boolean! = false
  intField: Int
  stringField: String
  booleanField: Boolean
  stringListField: [String]
}

enum DogCommand {
  SIT
  HEEL
  DOWN
}

type Dog {
  doesKnowCommand(dogCommand: DogCommand): Boolean
  name(surname: Boolean): String
  isHouseTrained(atOtherHomes: Boolean = true): Boolean
}

interface Pet {
  name(surname: Boolean): String
}

type Query {
  complicatedArgs: ComplicatedArgs
  dog: Dog
  human(id: ID): Human
}

type Human {
  name(surname: Boolean): String
  pets: [Pet]
  relatives: [Human]!
}

query intIntoString {
  complicatedArgs {
    stringArgField(stringArg: 1)
  }
}

query floatIntoString {
  complicatedArgs {
    stringArgField(stringArg: 1.0)
  }
}

query booleanIntoString {
  complicatedArgs {
    stringArgField(stringArg: true)
  }
}

query unquotedStringIntoString {
  complicatedArgs {
    stringArgField(stringArg: BAR)
  }
}

query stringIntoInt {
  complicatedArgs {
    intArgField(intArg: "3")
  }
}

query bigIntIntoInt {
  complicatedArgs {
    intArgField(intArg: 829384293849283498239482938)
  }
}

query unquotedStringIntoInt {
  complicatedArgs {
    intArgField(intArg: FOO)
  }
}

query simpleFloatIntoInt {
  complicatedArgs {
    intArgField(intArg: 3.0)
  }
}

query floatIntoInt {
  complicatedArgs {
    intArgField(intArg: 3.333)
  }
}

query stringIntoFloat {
  complicatedArgs {
    floatArgField(floatArg: "3.333")
  }
}

query booleanIntoFloat {
  complicatedArgs {
    floatArgField(floatArg: true)
  }
}

query unquotedIntoFloat {
  complicatedArgs {
    floatArgField(floatArg: FOO)
  }
}

query intIntoBoolean {
  complicatedArgs {
    booleanArgField(booleanArg: 2)
  }
}

query floatIntoBoolean {
  complicatedArgs {
    booleanArgField(booleanArg: 1.0)
  }
}

query stringIntoBoolean {
  complicatedArgs {
    booleanArgField(booleanArg: "true")
  }
}

query unquotedIntoBoolean {
  complicatedArgs {
    booleanArgField(booleanArg: TRUE)
  }
}

query floatIntoId {
  complicatedArgs {
    idArgField(idArg: 1.0)
  }
}

query booleanIntoID {
  complicatedArgs {
    idArgField(idArg: true)
  }
}

query unquotedIntoID {
  complicatedArgs {
    idArgField(idArg: SOMETHING)
  }
}

query intIntoEnum {
  dog {
    doesKnowCommand(dogCommand: 2)
  }
}

query floatIntoEnum {
  dog {
    doesKnowCommand(dogCommand: 1.0)
  }
}

query stringIntoEnum {
  dog {
    doesKnowCommand(dogCommand: "SIT")
  }
}

query booleanIntoEnum {
  dog {
    doesKnowCommand(dogCommand: true)
  }
}

query unknownEnumValueIntoEnum {
  dog {
    doesKnowCommand(dogCommand: JUGGLE)
  }
}

query differentCaseEnumValueIntoEnum {
  dog {
    doesKnowCommand(dogCommand: sit)
  }
}

query incorrectListItemType {
  complicatedArgs {
    stringListArgField(stringListArg: ["one", 2])
  }
}

query singleValueOfIncorrectType {
  complicatedArgs {
    stringListArgField(stringListArg: 1)
  }
}

query incorrectValueType {
  complicatedArgs {
    multipleReqs(req2: "two", req1: "one")
  }
}

query incorrectValueAndMissingArgument {
  complicatedArgs {
    multipleReqs(req1: "one")
  }
}

query nullValue {
  complicatedArgs {
    multipleReqs(req1: null)
  }
}

query partialObjectMissingField {
  complicatedArgs {
    complexArgField(complexArg: {intField: 4})
  }
}

query partialObjectInvalidFieldType {
  complicatedArgs {
    complexArgField(complexArg: {stringListField: ["one", 2], requiredField: true})
  }
}

query partialObjectNullToNonNullField {
  complicatedArgs {
    complexArgField(complexArg: {requiredField: true, nonNullField: null})
  }
}

query partialObjectUnknownFieldArg {
  complicatedArgs {
    complexArgField(complexArg: {requiredField: true, invalidField: "value"})
  }
}

query withDirectiveWithIncorrectTypes {
  dog @include(if: "yes") {
    name @skip(if: ENUM)
  }
}

query variablesWithInvalidDefaultNullValues($a: Int! = null, $b: String! = null, $c: ComplexInput = {requiredField: null, intField: null}) {
  complicatedArgs {
    complexArgField(complexArg: $c)
    intArgField(intArg: $a)
    stringArgField(stringArg: $b)
  }
}

query variablesWithInvalidDefaultValues($a: Int = "one", $b: String = 4, $c: ComplexInput = "NotVeryComplex") {
  complicatedArgs {
    complexArgField(complexArg: $c)
    intArgField(intArg: $a)
    stringArgField(stringArg: $b)
    again: stringArgField(stringArg: $b)
  }
}

query variablesWithComplexInvalidDefaultValues($a: ComplexInput = {requiredField: 123, intField: "abc"}) {
  complicatedArgs {
    complexArgField(complexArg: $a)
  }
}

query complexVariablesMissingRequiredField($a: ComplexInput = {intField: 3}) {
  complicatedArgs {
    complexArgField(complexArg: $a)
  }
}

query listVariablesWithInvalidItem($a: [String] = ["one", 2]) {
  complicatedArgs {
    stringListArgField(stringListArg: $a)
  }
}