react-relay icon indicating copy to clipboard operation
react-relay copied to clipboard

Error: Expected null to be a GraphQL composite type.

Open yang opened this issue 7 years ago • 1 comments

Using just the default schema.graphql in master, I get:

$ yarn install
...

$ yarn run -- relay-compiler --src ./src --schema ./schema.graphql
yarn run v0.27.5
$ "/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/.bin/relay-compiler" "--src" "./src" "--schema" "./schema.graphql"
HINT: pass --watch to keep watching for changes.
Parsed default in 0.14s

Writing default
Error: Error loading schema. Expected the schema to be a .graphql or a .json
file, describing your GraphQL server's API. Error detail:

Error: Type "SignupUserInput" was defined more than once.
    at buildASTSchema (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/graphql/utilities/buildASTSchema.js:111:17)
    at _getSchema (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:184:13)
    at Object.getSchema (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:103:19)
    at RelayCodegenRunner.<anonymous> (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:4749:48)
    at next (native)
    at step (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
    at /Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
    at Promise.F (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/core-js/library/modules/_export.js:35:28)
    at RelayCodegenRunner.<anonymous> (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    at RelayCodegenRunner.write (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:4829:21)
    at _getSchema (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:186:12)
    at Object.getSchema (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:103:19)
    at RelayCodegenRunner.<anonymous> (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:4749:48)
    at next (native)
    at step (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
    at /Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
    at Promise.F (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/core-js/library/modules/_export.js:35:28)
    at RelayCodegenRunner.<anonymous> (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    at RelayCodegenRunner.write (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:4829:21)
    at RelayCodegenRunner.<anonymous> (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:4653:41)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

If I run with my own graphcool project schema as documented, I get:

$ get-graphql-schema https://api.graph.cool/relay/v1/cj6eo8cw84ssw0121eh3p14j7 > schema.graphql

$ yarn run -- relay-compiler --src ./src --schema ./schema.graphql
yarn run v0.27.5
$ "/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/.bin/relay-compiler" "--src" "./src" "--schema" "./schema.graphql"
HINT: pass --watch to keep watching for changes.
Parsed default in 0.13s

Writing default
Error: Expected null to be a GraphQL composite type.
    at invariant (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/graphql/jsutils/invariant.js:19:11)
    at assertCompositeType (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/graphql/type/definition.js:113:27)
    at RelayParser._transformOperation (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:2192:17)
    at RelayParser.transform (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:2089:22)
    at Object.transform (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:2058:18)
    at /Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:1110:37
    at Array.map (native)
    at convertASTDefinitions (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:1109:32)
    at Object.convertASTDocumentsWithBase (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:1090:11)
    at RelayFileWriter.<anonymous> (/Users/yang/proj/data-mgmt-research/howtographql/react-relay/node_modules/relay-compiler/bin/relay-compiler:5317:50)
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

$ cat schema.graphql
type AddToUsersLinksPayload {
  viewer: Viewer!
  clientMutationId: String!
  postedByUser: User
  linksLink: Link
  postedByUserEdge: UserEdge
  linksLinkEdge: LinkEdge
}

input AddToUsersLinksUserInput {
  linksLinkId: ID!
  postedByUserId: ID!
  clientMutationId: String!
}

type AddToUsersVotesPayload {
  viewer: Viewer!
  clientMutationId: String!
  userUser: User
  votesVote: Vote
  userUserEdge: UserEdge
  votesVoteEdge: VoteEdge
}

input AddToUsersVotesUserInput {
  votesVoteId: ID!
  userUserId: ID!
  clientMutationId: String!
}

input AddToVotesOnLinkLinkInput {
  votesVoteId: ID!
  linkLinkId: ID!
  clientMutationId: String!
}

type AddToVotesOnLinkPayload {
  viewer: Viewer!
  clientMutationId: String!
  linkLink: Link
  votesVote: Vote
  linkLinkEdge: LinkEdge
  votesVoteEdge: VoteEdge
}

input AUTH_PROVIDER_EMAIL {
  email: String!
  password: String!
}

input AuthProviderSignupData {
  email: AUTH_PROVIDER_EMAIL
}

input CreateFile {
  name: String!
}

input CreateFileInput {
  name: String!
  clientMutationId: String!
}

type CreateFilePayload {
  viewer: Viewer!
  clientMutationId: String!
  file: File
  edge: FileEdge
}

input CreateLink {
  description: String!
  url: String!
  postedById: ID
  votesIds: [ID!]
  votes: [LinkvotesVote!]
}

input CreateLinkInput {
  description: String!
  url: String!
  postedById: ID
  votesIds: [ID!]
  votes: [LinkvotesVote!]
  clientMutationId: String!
}

type CreateLinkPayload {
  viewer: Viewer!
  clientMutationId: String!
  link: Link
  edge: LinkEdge
  postedBy: User
}

input CreateUser {
  name: String!
  linksIds: [ID!]
  links: [UserlinksLink!]
  votesIds: [ID!]
  votes: [UservotesVote!]
}

# If authentication was successful the payload contains the user and a token. If unsuccessful this payload is null.
type CreateUserPayload {
  user: User
  clientMutationId: String
  viewer: Viewer!
}

input CreateVote {
  linkId: ID
  link: VotelinkLink
  userId: ID
}

input CreateVoteInput {
  linkId: ID
  link: VotelinkLink
  userId: ID
  clientMutationId: String!
}

type CreateVotePayload {
  viewer: Viewer!
  clientMutationId: String!
  vote: Vote
  edge: VoteEdge
  link: Link
  user: User
}

scalar DateTime

input DeleteFileInput {
  id: ID!
  clientMutationId: String!
}

type DeleteFilePayload {
  viewer: Viewer!
  clientMutationId: String!
  file: File
  edge: FileEdge
  deletedId: ID
}

input DeleteLinkInput {
  id: ID!
  clientMutationId: String!
}

type DeleteLinkPayload {
  viewer: Viewer!
  clientMutationId: String!
  link: Link
  edge: LinkEdge
  postedBy: User
  deletedId: ID
}

input DeleteUserInput {
  id: ID!
  clientMutationId: String!
}

type DeleteUserPayload {
  viewer: Viewer!
  clientMutationId: String!
  user: User
  edge: UserEdge
  deletedId: ID
}

input DeleteVoteInput {
  id: ID!
  clientMutationId: String!
}

type DeleteVotePayload {
  viewer: Viewer!
  clientMutationId: String!
  vote: Vote
  edge: VoteEdge
  link: Link
  user: User
  deletedId: ID
}

type File implements Node {
  contentType: String!
  createdAt: DateTime!
  id: ID!
  name: String!
  secret: String!
  size: Int!
  updatedAt: DateTime!
  url: String!
}

# A connection to a list of items.
type FileConnection {
  # Information to aid in pagination.
  pageInfo: PageInfo!

  # A list of edges.
  edges: [FileEdge]

  # Count of filtered result set without considering pagination arguments
  count: Int!
}

# An edge in a connection.
type FileEdge {
  # The item at the end of the edge.
  node: File!

  # A cursor for use in pagination.
  cursor: String!
}

input FileFilter {
  # Logical AND on all given filters.
  AND: [FileFilter!]

  # Logical OR on all given filters.
  OR: [FileFilter!]
  contentType: String

  # All values that are not equal to given value.
  contentType_not: String

  # All values that are contained in given list.
  contentType_in: [String!]

  # All values that are not contained in given list.
  contentType_not_in: [String!]

  # All values less than the given value.
  contentType_lt: String

  # All values less than or equal the given value.
  contentType_lte: String

  # All values greater than the given value.
  contentType_gt: String

  # All values greater than or equal the given value.
  contentType_gte: String

  # All values containing the given string.
  contentType_contains: String

  # All values not containing the given string.
  contentType_not_contains: String

  # All values starting with the given string.
  contentType_starts_with: String

  # All values not starting with the given string.
  contentType_not_starts_with: String

  # All values ending with the given string.
  contentType_ends_with: String

  # All values not ending with the given string.
  contentType_not_ends_with: String
  createdAt: DateTime

  # All values that are not equal to given value.
  createdAt_not: DateTime

  # All values that are contained in given list.
  createdAt_in: [DateTime!]

  # All values that are not contained in given list.
  createdAt_not_in: [DateTime!]

  # All values less than the given value.
  createdAt_lt: DateTime

  # All values less than or equal the given value.
  createdAt_lte: DateTime

  # All values greater than the given value.
  createdAt_gt: DateTime

  # All values greater than or equal the given value.
  createdAt_gte: DateTime
  id: ID

  # All values that are not equal to given value.
  id_not: ID

  # All values that are contained in given list.
  id_in: [ID!]

  # All values that are not contained in given list.
  id_not_in: [ID!]

  # All values less than the given value.
  id_lt: ID

  # All values less than or equal the given value.
  id_lte: ID

  # All values greater than the given value.
  id_gt: ID

  # All values greater than or equal the given value.
  id_gte: ID

  # All values containing the given string.
  id_contains: ID

  # All values not containing the given string.
  id_not_contains: ID

  # All values starting with the given string.
  id_starts_with: ID

  # All values not starting with the given string.
  id_not_starts_with: ID

  # All values ending with the given string.
  id_ends_with: ID

  # All values not ending with the given string.
  id_not_ends_with: ID
  name: String

  # All values that are not equal to given value.
  name_not: String

  # All values that are contained in given list.
  name_in: [String!]

  # All values that are not contained in given list.
  name_not_in: [String!]

  # All values less than the given value.
  name_lt: String

  # All values less than or equal the given value.
  name_lte: String

  # All values greater than the given value.
  name_gt: String

  # All values greater than or equal the given value.
  name_gte: String

  # All values containing the given string.
  name_contains: String

  # All values not containing the given string.
  name_not_contains: String

  # All values starting with the given string.
  name_starts_with: String

  # All values not starting with the given string.
  name_not_starts_with: String

  # All values ending with the given string.
  name_ends_with: String

  # All values not ending with the given string.
  name_not_ends_with: String
  secret: String

  # All values that are not equal to given value.
  secret_not: String

  # All values that are contained in given list.
  secret_in: [String!]

  # All values that are not contained in given list.
  secret_not_in: [String!]

  # All values less than the given value.
  secret_lt: String

  # All values less than or equal the given value.
  secret_lte: String

  # All values greater than the given value.
  secret_gt: String

  # All values greater than or equal the given value.
  secret_gte: String

  # All values containing the given string.
  secret_contains: String

  # All values not containing the given string.
  secret_not_contains: String

  # All values starting with the given string.
  secret_starts_with: String

  # All values not starting with the given string.
  secret_not_starts_with: String

  # All values ending with the given string.
  secret_ends_with: String

  # All values not ending with the given string.
  secret_not_ends_with: String
  size: Int

  # All values that are not equal to given value.
  size_not: Int

  # All values that are contained in given list.
  size_in: [Int!]

  # All values that are not contained in given list.
  size_not_in: [Int!]

  # All values less than the given value.
  size_lt: Int

  # All values less than or equal the given value.
  size_lte: Int

  # All values greater than the given value.
  size_gt: Int

  # All values greater than or equal the given value.
  size_gte: Int
  updatedAt: DateTime

  # All values that are not equal to given value.
  updatedAt_not: DateTime

  # All values that are contained in given list.
  updatedAt_in: [DateTime!]

  # All values that are not contained in given list.
  updatedAt_not_in: [DateTime!]

  # All values less than the given value.
  updatedAt_lt: DateTime

  # All values less than or equal the given value.
  updatedAt_lte: DateTime

  # All values greater than the given value.
  updatedAt_gt: DateTime

  # All values greater than or equal the given value.
  updatedAt_gte: DateTime
  url: String

  # All values that are not equal to given value.
  url_not: String

  # All values that are contained in given list.
  url_in: [String!]

  # All values that are not contained in given list.
  url_not_in: [String!]

  # All values less than the given value.
  url_lt: String

  # All values less than or equal the given value.
  url_lte: String

  # All values greater than the given value.
  url_gt: String

  # All values greater than or equal the given value.
  url_gte: String

  # All values containing the given string.
  url_contains: String

  # All values not containing the given string.
  url_not_contains: String

  # All values starting with the given string.
  url_starts_with: String

  # All values not starting with the given string.
  url_not_starts_with: String

  # All values ending with the given string.
  url_ends_with: String

  # All values not ending with the given string.
  url_not_ends_with: String
}

enum FileOrderBy {
  contentType_ASC
  contentType_DESC
  createdAt_ASC
  createdAt_DESC
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  secret_ASC
  secret_DESC
  size_ASC
  size_DESC
  updatedAt_ASC
  updatedAt_DESC
  url_ASC
  url_DESC
}

type Link implements Node {
  createdAt: DateTime!
  description: String!
  id: ID!
  postedBy(filter: UserFilter): User
  updatedAt: DateTime!
  url: String!
  votes(filter: VoteFilter, orderBy: VoteOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): VoteConnection
}

# A connection to a list of items.
type LinkConnection {
  # Information to aid in pagination.
  pageInfo: PageInfo!

  # A list of edges.
  edges: [LinkEdge]

  # Count of filtered result set without considering pagination arguments
  count: Int!
}

# An edge in a connection.
type LinkEdge {
  # The item at the end of the edge.
  node: Link!

  # A cursor for use in pagination.
  cursor: String!
}

input LinkFilter {
  # Logical AND on all given filters.
  AND: [LinkFilter!]

  # Logical OR on all given filters.
  OR: [LinkFilter!]
  createdAt: DateTime

  # All values that are not equal to given value.
  createdAt_not: DateTime

  # All values that are contained in given list.
  createdAt_in: [DateTime!]

  # All values that are not contained in given list.
  createdAt_not_in: [DateTime!]

  # All values less than the given value.
  createdAt_lt: DateTime

  # All values less than or equal the given value.
  createdAt_lte: DateTime

  # All values greater than the given value.
  createdAt_gt: DateTime

  # All values greater than or equal the given value.
  createdAt_gte: DateTime
  description: String

  # All values that are not equal to given value.
  description_not: String

  # All values that are contained in given list.
  description_in: [String!]

  # All values that are not contained in given list.
  description_not_in: [String!]

  # All values less than the given value.
  description_lt: String

  # All values less than or equal the given value.
  description_lte: String

  # All values greater than the given value.
  description_gt: String

  # All values greater than or equal the given value.
  description_gte: String

  # All values containing the given string.
  description_contains: String

  # All values not containing the given string.
  description_not_contains: String

  # All values starting with the given string.
  description_starts_with: String

  # All values not starting with the given string.
  description_not_starts_with: String

  # All values ending with the given string.
  description_ends_with: String

  # All values not ending with the given string.
  description_not_ends_with: String
  id: ID

  # All values that are not equal to given value.
  id_not: ID

  # All values that are contained in given list.
  id_in: [ID!]

  # All values that are not contained in given list.
  id_not_in: [ID!]

  # All values less than the given value.
  id_lt: ID

  # All values less than or equal the given value.
  id_lte: ID

  # All values greater than the given value.
  id_gt: ID

  # All values greater than or equal the given value.
  id_gte: ID

  # All values containing the given string.
  id_contains: ID

  # All values not containing the given string.
  id_not_contains: ID

  # All values starting with the given string.
  id_starts_with: ID

  # All values not starting with the given string.
  id_not_starts_with: ID

  # All values ending with the given string.
  id_ends_with: ID

  # All values not ending with the given string.
  id_not_ends_with: ID
  updatedAt: DateTime

  # All values that are not equal to given value.
  updatedAt_not: DateTime

  # All values that are contained in given list.
  updatedAt_in: [DateTime!]

  # All values that are not contained in given list.
  updatedAt_not_in: [DateTime!]

  # All values less than the given value.
  updatedAt_lt: DateTime

  # All values less than or equal the given value.
  updatedAt_lte: DateTime

  # All values greater than the given value.
  updatedAt_gt: DateTime

  # All values greater than or equal the given value.
  updatedAt_gte: DateTime
  url: String

  # All values that are not equal to given value.
  url_not: String

  # All values that are contained in given list.
  url_in: [String!]

  # All values that are not contained in given list.
  url_not_in: [String!]

  # All values less than the given value.
  url_lt: String

  # All values less than or equal the given value.
  url_lte: String

  # All values greater than the given value.
  url_gt: String

  # All values greater than or equal the given value.
  url_gte: String

  # All values containing the given string.
  url_contains: String

  # All values not containing the given string.
  url_not_contains: String

  # All values starting with the given string.
  url_starts_with: String

  # All values not starting with the given string.
  url_not_starts_with: String

  # All values ending with the given string.
  url_ends_with: String

  # All values not ending with the given string.
  url_not_ends_with: String
  postedBy: UserFilter
  votes_every: VoteFilter
  votes_some: VoteFilter
  votes_none: VoteFilter
}

enum LinkOrderBy {
  createdAt_ASC
  createdAt_DESC
  description_ASC
  description_DESC
  id_ASC
  id_DESC
  updatedAt_ASC
  updatedAt_DESC
  url_ASC
  url_DESC
}

input LinkvotesVote {
  userId: ID
}

type Mutation {
  createFile(input: CreateFileInput!): CreateFilePayload
  createLink(input: CreateLinkInput!): CreateLinkPayload
  createVote(input: CreateVoteInput!): CreateVotePayload
  updateFile(input: UpdateFileInput!): UpdateFilePayload
  updateLink(input: UpdateLinkInput!): UpdateLinkPayload
  updateUser(input: UpdateUserInput!): UpdateUserPayload
  updateVote(input: UpdateVoteInput!): UpdateVotePayload
  updateOrCreateFile(input: UpdateOrCreateFileInput!): UpdateOrCreateFilePayload
  updateOrCreateLink(input: UpdateOrCreateLinkInput!): UpdateOrCreateLinkPayload
  updateOrCreateUser(input: UpdateOrCreateUserInput!): UpdateOrCreateUserPayload
  updateOrCreateVote(input: UpdateOrCreateVoteInput!): UpdateOrCreateVotePayload
  deleteFile(input: DeleteFileInput!): DeleteFilePayload
  deleteLink(input: DeleteLinkInput!): DeleteLinkPayload
  deleteUser(input: DeleteUserInput!): DeleteUserPayload
  deleteVote(input: DeleteVoteInput!): DeleteVotePayload
  addToUsersLinks(input: AddToUsersLinksUserInput!): AddToUsersLinksPayload
  addToUsersVotes(input: AddToUsersVotesUserInput!): AddToUsersVotesPayload
  addToVotesOnLink(input: AddToVotesOnLinkLinkInput!): AddToVotesOnLinkPayload
  removeFromUsersLinks(input: RemoveFromUsersLinksUserInput!): RemoveFromUsersLinksPayload
  removeFromUsersVotes(input: RemoveFromUsersVotesUserInput!): RemoveFromUsersVotesPayload
  removeFromVotesOnLink(input: RemoveFromVotesOnLinkLinkInput!): RemoveFromVotesOnLinkPayload
  signinUser(input: SigninUserInput!): SigninPayload!
  createUser(input: SignupUserInput!): CreateUserPayload!
}

# An object with an ID
interface Node {
  # The id of the object.
  id: ID!
}

# Information about pagination in a connection.
type PageInfo {
  # When paginating forwards, are there more items?
  hasNextPage: Boolean!

  # When paginating backwards, are there more items?
  hasPreviousPage: Boolean!

  # When paginating backwards, the cursor to continue.
  startCursor: String

  # When paginating forwards, the cursor to continue.
  endCursor: String
}

type Query {
  viewer: Viewer!

  # Fetches an object given its ID
  node(
    # The ID of an object
    id: ID!
  ): Node
}

type RemoveFromUsersLinksPayload {
  viewer: Viewer!
  clientMutationId: String!
  postedByUser: User
  linksLink: Link
  postedByUserEdge: UserEdge
  linksLinkEdge: LinkEdge
}

input RemoveFromUsersLinksUserInput {
  linksLinkId: ID!
  postedByUserId: ID!
  clientMutationId: String!
}

type RemoveFromUsersVotesPayload {
  viewer: Viewer!
  clientMutationId: String!
  userUser: User
  votesVote: Vote
  userUserEdge: UserEdge
  votesVoteEdge: VoteEdge
}

input RemoveFromUsersVotesUserInput {
  votesVoteId: ID!
  userUserId: ID!
  clientMutationId: String!
}

input RemoveFromVotesOnLinkLinkInput {
  votesVoteId: ID!
  linkLinkId: ID!
  clientMutationId: String!
}

type RemoveFromVotesOnLinkPayload {
  viewer: Viewer!
  clientMutationId: String!
  linkLink: Link
  votesVote: Vote
  linkLinkEdge: LinkEdge
  votesVoteEdge: VoteEdge
}

# If authentication was successful the payload contains the user and a token. If unsuccessful this payload is null.
type SigninPayload {
  token: String
  user: User
  clientMutationId: String
  viewer: Viewer!
}

input SigninUserInput {
  email: AUTH_PROVIDER_EMAIL
  clientMutationId: String!
}

input SignupUserInput {
  name: String!
  linksIds: [ID!]
  links: [UserlinksLink!]
  votesIds: [ID!]
  votes: [UservotesVote!]
  clientMutationId: String!
  authProvider: AuthProviderSignupData!
}

input UpdateFile {
  id: ID!
  name: String
}

input UpdateFileInput {
  id: ID!
  name: String
  clientMutationId: String!
}

type UpdateFilePayload {
  viewer: Viewer!
  clientMutationId: String!
  file: File
  edge: FileEdge
}

input UpdateLink {
  description: String
  id: ID!
  url: String
  postedById: ID
  votesIds: [ID!]
  votes: [LinkvotesVote!]
}

input UpdateLinkInput {
  description: String
  id: ID!
  url: String
  postedById: ID
  votesIds: [ID!]
  votes: [LinkvotesVote!]
  clientMutationId: String!
}

type UpdateLinkPayload {
  viewer: Viewer!
  clientMutationId: String!
  link: Link
  edge: LinkEdge
  postedBy: User
}

input UpdateOrCreateFileInput {
  update: UpdateFile!
  create: CreateFile!
  clientMutationId: String!
}

type UpdateOrCreateFilePayload {
  viewer: Viewer!
  clientMutationId: String!
  file: File
  edge: FileEdge
}

input UpdateOrCreateLinkInput {
  update: UpdateLink!
  create: CreateLink!
  clientMutationId: String!
}

type UpdateOrCreateLinkPayload {
  viewer: Viewer!
  clientMutationId: String!
  link: Link
  edge: LinkEdge
  postedBy: User
}

input UpdateOrCreateUserInput {
  update: UpdateUser!
  create: CreateUser!
  clientMutationId: String!
}

type UpdateOrCreateUserPayload {
  viewer: Viewer!
  clientMutationId: String!
  user: User
  edge: UserEdge
}

input UpdateOrCreateVoteInput {
  update: UpdateVote!
  create: CreateVote!
  clientMutationId: String!
}

type UpdateOrCreateVotePayload {
  viewer: Viewer!
  clientMutationId: String!
  vote: Vote
  edge: VoteEdge
  link: Link
  user: User
}

input UpdateUser {
  id: ID!
  name: String
  linksIds: [ID!]
  links: [UserlinksLink!]
  votesIds: [ID!]
  votes: [UservotesVote!]
}

input UpdateUserInput {
  id: ID!
  name: String
  linksIds: [ID!]
  links: [UserlinksLink!]
  votesIds: [ID!]
  votes: [UservotesVote!]
  clientMutationId: String!
}

type UpdateUserPayload {
  viewer: Viewer!
  clientMutationId: String!
  user: User
  edge: UserEdge
}

input UpdateVote {
  id: ID!
  linkId: ID
  link: VotelinkLink
  userId: ID
}

input UpdateVoteInput {
  id: ID!
  linkId: ID
  link: VotelinkLink
  userId: ID
  clientMutationId: String!
}

type UpdateVotePayload {
  viewer: Viewer!
  clientMutationId: String!
  vote: Vote
  edge: VoteEdge
  link: Link
  user: User
}

type User implements Node {
  createdAt: DateTime!
  email: String
  id: ID!
  links(filter: LinkFilter, orderBy: LinkOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): LinkConnection
  name: String!
  password: String
  updatedAt: DateTime!
  votes(filter: VoteFilter, orderBy: VoteOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): VoteConnection
}

# A connection to a list of items.
type UserConnection {
  # Information to aid in pagination.
  pageInfo: PageInfo!

  # A list of edges.
  edges: [UserEdge]

  # Count of filtered result set without considering pagination arguments
  count: Int!
}

# An edge in a connection.
type UserEdge {
  # The item at the end of the edge.
  node: User!

  # A cursor for use in pagination.
  cursor: String!
}

input UserFilter {
  # Logical AND on all given filters.
  AND: [UserFilter!]

  # Logical OR on all given filters.
  OR: [UserFilter!]
  createdAt: DateTime

  # All values that are not equal to given value.
  createdAt_not: DateTime

  # All values that are contained in given list.
  createdAt_in: [DateTime!]

  # All values that are not contained in given list.
  createdAt_not_in: [DateTime!]

  # All values less than the given value.
  createdAt_lt: DateTime

  # All values less than or equal the given value.
  createdAt_lte: DateTime

  # All values greater than the given value.
  createdAt_gt: DateTime

  # All values greater than or equal the given value.
  createdAt_gte: DateTime
  email: String

  # All values that are not equal to given value.
  email_not: String

  # All values that are contained in given list.
  email_in: [String!]

  # All values that are not contained in given list.
  email_not_in: [String!]

  # All values less than the given value.
  email_lt: String

  # All values less than or equal the given value.
  email_lte: String

  # All values greater than the given value.
  email_gt: String

  # All values greater than or equal the given value.
  email_gte: String

  # All values containing the given string.
  email_contains: String

  # All values not containing the given string.
  email_not_contains: String

  # All values starting with the given string.
  email_starts_with: String

  # All values not starting with the given string.
  email_not_starts_with: String

  # All values ending with the given string.
  email_ends_with: String

  # All values not ending with the given string.
  email_not_ends_with: String
  id: ID

  # All values that are not equal to given value.
  id_not: ID

  # All values that are contained in given list.
  id_in: [ID!]

  # All values that are not contained in given list.
  id_not_in: [ID!]

  # All values less than the given value.
  id_lt: ID

  # All values less than or equal the given value.
  id_lte: ID

  # All values greater than the given value.
  id_gt: ID

  # All values greater than or equal the given value.
  id_gte: ID

  # All values containing the given string.
  id_contains: ID

  # All values not containing the given string.
  id_not_contains: ID

  # All values starting with the given string.
  id_starts_with: ID

  # All values not starting with the given string.
  id_not_starts_with: ID

  # All values ending with the given string.
  id_ends_with: ID

  # All values not ending with the given string.
  id_not_ends_with: ID
  name: String

  # All values that are not equal to given value.
  name_not: String

  # All values that are contained in given list.
  name_in: [String!]

  # All values that are not contained in given list.
  name_not_in: [String!]

  # All values less than the given value.
  name_lt: String

  # All values less than or equal the given value.
  name_lte: String

  # All values greater than the given value.
  name_gt: String

  # All values greater than or equal the given value.
  name_gte: String

  # All values containing the given string.
  name_contains: String

  # All values not containing the given string.
  name_not_contains: String

  # All values starting with the given string.
  name_starts_with: String

  # All values not starting with the given string.
  name_not_starts_with: String

  # All values ending with the given string.
  name_ends_with: String

  # All values not ending with the given string.
  name_not_ends_with: String
  password: String

  # All values that are not equal to given value.
  password_not: String

  # All values that are contained in given list.
  password_in: [String!]

  # All values that are not contained in given list.
  password_not_in: [String!]

  # All values less than the given value.
  password_lt: String

  # All values less than or equal the given value.
  password_lte: String

  # All values greater than the given value.
  password_gt: String

  # All values greater than or equal the given value.
  password_gte: String

  # All values containing the given string.
  password_contains: String

  # All values not containing the given string.
  password_not_contains: String

  # All values starting with the given string.
  password_starts_with: String

  # All values not starting with the given string.
  password_not_starts_with: String

  # All values ending with the given string.
  password_ends_with: String

  # All values not ending with the given string.
  password_not_ends_with: String
  updatedAt: DateTime

  # All values that are not equal to given value.
  updatedAt_not: DateTime

  # All values that are contained in given list.
  updatedAt_in: [DateTime!]

  # All values that are not contained in given list.
  updatedAt_not_in: [DateTime!]

  # All values less than the given value.
  updatedAt_lt: DateTime

  # All values less than or equal the given value.
  updatedAt_lte: DateTime

  # All values greater than the given value.
  updatedAt_gt: DateTime

  # All values greater than or equal the given value.
  updatedAt_gte: DateTime
  links_every: LinkFilter
  links_some: LinkFilter
  links_none: LinkFilter
  votes_every: VoteFilter
  votes_some: VoteFilter
  votes_none: VoteFilter
}

input UserlinksLink {
  description: String!
  url: String!
  votesIds: [ID!]
  votes: [LinkvotesVote!]
}

enum UserOrderBy {
  createdAt_ASC
  createdAt_DESC
  email_ASC
  email_DESC
  id_ASC
  id_DESC
  name_ASC
  name_DESC
  password_ASC
  password_DESC
  updatedAt_ASC
  updatedAt_DESC
}

input UservotesVote {
  linkId: ID
  link: VotelinkLink
}

# This is the famous Relay viewer object
type Viewer {
  allFiles(filter: FileFilter, orderBy: FileOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): FileConnection!
  allLinks(filter: LinkFilter, orderBy: LinkOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): LinkConnection!
  allUsers(filter: UserFilter, orderBy: UserOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection!
  allVotes(filter: VoteFilter, orderBy: VoteOrderBy, skip: Int, after: String, before: String, first: Int, last: Int): VoteConnection!
  user: User
  File(id: ID, secret: String, url: String): File
  Link(id: ID): Link
  User(email: String, id: ID): User
  Vote(id: ID): Vote
  id: ID!
}

type Vote implements Node {
  createdAt: DateTime!
  id: ID!
  link(filter: LinkFilter): Link
  updatedAt: DateTime!
  user(filter: UserFilter): User
}

# A connection to a list of items.
type VoteConnection {
  # Information to aid in pagination.
  pageInfo: PageInfo!

  # A list of edges.
  edges: [VoteEdge]

  # Count of filtered result set without considering pagination arguments
  count: Int!
}

# An edge in a connection.
type VoteEdge {
  # The item at the end of the edge.
  node: Vote!

  # A cursor for use in pagination.
  cursor: String!
}

input VoteFilter {
  # Logical AND on all given filters.
  AND: [VoteFilter!]

  # Logical OR on all given filters.
  OR: [VoteFilter!]
  createdAt: DateTime

  # All values that are not equal to given value.
  createdAt_not: DateTime

  # All values that are contained in given list.
  createdAt_in: [DateTime!]

  # All values that are not contained in given list.
  createdAt_not_in: [DateTime!]

  # All values less than the given value.
  createdAt_lt: DateTime

  # All values less than or equal the given value.
  createdAt_lte: DateTime

  # All values greater than the given value.
  createdAt_gt: DateTime

  # All values greater than or equal the given value.
  createdAt_gte: DateTime
  id: ID

  # All values that are not equal to given value.
  id_not: ID

  # All values that are contained in given list.
  id_in: [ID!]

  # All values that are not contained in given list.
  id_not_in: [ID!]

  # All values less than the given value.
  id_lt: ID

  # All values less than or equal the given value.
  id_lte: ID

  # All values greater than the given value.
  id_gt: ID

  # All values greater than or equal the given value.
  id_gte: ID

  # All values containing the given string.
  id_contains: ID

  # All values not containing the given string.
  id_not_contains: ID

  # All values starting with the given string.
  id_starts_with: ID

  # All values not starting with the given string.
  id_not_starts_with: ID

  # All values ending with the given string.
  id_ends_with: ID

  # All values not ending with the given string.
  id_not_ends_with: ID
  updatedAt: DateTime

  # All values that are not equal to given value.
  updatedAt_not: DateTime

  # All values that are contained in given list.
  updatedAt_in: [DateTime!]

  # All values that are not contained in given list.
  updatedAt_not_in: [DateTime!]

  # All values less than the given value.
  updatedAt_lt: DateTime

  # All values less than or equal the given value.
  updatedAt_lte: DateTime

  # All values greater than the given value.
  updatedAt_gt: DateTime

  # All values greater than or equal the given value.
  updatedAt_gte: DateTime
  link: LinkFilter
  user: UserFilter
}

input VotelinkLink {
  description: String!
  url: String!
  postedById: ID
  votesIds: [ID!]
  votes: [LinkvotesVote!]
}

enum VoteOrderBy {
  createdAt_ASC
  createdAt_DESC
  id_ASC
  id_DESC
  updatedAt_ASC
  updatedAt_DESC
}

Thanks in advance for any help.

yang avatar Aug 21 '17 05:08 yang

I got same error.. Did you solve it?

githubmaster1987 avatar Oct 23 '17 11:10 githubmaster1987