-
-
Notifications
You must be signed in to change notification settings - Fork 35
/
schema.graphql
155 lines (126 loc) · 2.5 KB
/
schema.graphql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
enum SomeEnum {
X
Y
Z
}
enum SomeEnum2 {
hello
world
}
scalar MyCustomScalar
input InputWithRequiredFields {
requiredField: String!
optionalField: String
}
# Some comment
type Query {
"""
Some description
"""
repository(name: String!, owner: String): Repository!
queryWithDefaultArgs(
input: DefaultArgsInput
defaultValue: Int = 3
requiredButDefault: Int! = 1
): String
optionalArgs(name: String, owner: String): Repository!
user: User
someScalarValue(x: Float): String
recursiveType(requiredVal: [String!]): [RecursiveType]
throwsError: String!
requiredFields(input: InputWithRequiredFields!): String!
}
input DefaultArgsInput {
string: String! = "hello"
}
type RecursiveType {
value: String
recurse(arg: Int): RecursiveType
}
type Repository {
createdAt: String!
forks(filter: String): ForkConnection
scalarButWithRequiredArgs(x: Int!): String!
customScalar: MyCustomScalar
}
type ForkConnection {
edges: [ForkEdge]
}
type ForkEdge {
cursor: String
node: Fork
}
type Fork {
name: String
number: Int
}
type User {
"""
Some description
"""
name: String
common: Int
commonButDiffType: Int
}
# ---
type Subscription {
user: User
}
##################
extend type Query {
account: Account
}
union Account = User | Guest
type Guest {
anonymous: Boolean
common: Int
commonButDiffType: String
}
##################
extend type Query {
coordinates: Point
}
type House implements Point {
owner: User
x: String
y: String
}
type Bank implements Point {
address: String
x: String
y: String
}
interface Point {
x: String
y: String
}
# Ability to query interfaces that a union implements https://github.com/remorses/genql/issues/44
interface ClientError {
message: String!
}
type ClientErrorNameAlreadyTaken implements ClientError {
message: String!
ownProp1: String
}
type ClientErrorNameInvalid implements ClientError {
message: String!
ownProp2: String
}
type ClientErrorWithoutInterface {
ownProp3: String
}
union GenericError =
ClientErrorNameAlreadyTaken
| ClientErrorNameInvalid
| ClientErrorWithoutInterface
extend type Query {
unionThatImplementsInterface(typename: String): GenericError
InterfaceNotImplemented: InterfaceNotImplemented
}
interface InterfaceNotImplemented {
id: ID!
title: String
url: String
permalink: String
entry_id: ID
}