Skip to content

Nullable defaults args and required default args are impossible to express #195

Open
@dwwoelfel

Description

There are two use cases of arg defaultValues that can't be expressed with ocaml-graphql-server.

  1. A nullable arg can never be null in the resolver.
  2. A non-null arg can't have a default.

Take the valid graphql schema:

type Query {
  field(argOne: String = "A" argTwo: String! = "B"): String!
}

argTwo can't be expressed with ocaml-graphql-server.

If the resolve function (in js to make it easier to demonstrate what is happening) looks like this:

resolve(_, {argOne, argTwo}) {
  return `${argOne}${argTwo}`
}

A nullable arg can never be null in the resolver:

{
  field(argOne: null)
}
{"field": "B"}

Example of 2:

{
  field(argTwo: null)
}
{"errors": [{"message": "argTwo must be non-null"}]}

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions