1/* eslint-disable */
2import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core';
3export type Maybe<T> = T | null;
4export type InputMaybe<T> = Maybe<T>;
5export type Exact<T extends { [key: string]: unknown }> = {
6 [K in keyof T]: T[K];
7};
8export type MakeOptional<T, K extends keyof T> = Omit<T, K> & {
9 [SubKey in K]?: Maybe<T[SubKey]>;
10};
11export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & {
12 [SubKey in K]: Maybe<T[SubKey]>;
13};
14export type MakeEmpty<
15 T extends { [key: string]: unknown },
16 K extends keyof T
17> = { [_ in K]?: never };
18export type Incremental<T> =
19 | T
20 | {
21 [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never;
22 };
23/** All built-in and custom scalars, mapped to their actual values */
24export type Scalars = {
25 ID: { input: string; output: string };
26 String: { input: string; output: string };
27 Boolean: { input: boolean; output: boolean };
28 Int: { input: number; output: number };
29 Float: { input: number; output: number };
30};
31
32/** Move a Pokémon can perform with the associated damage and type. */
33export type Attack = {
34 __typename?: 'Attack';
35 damage?: Maybe<Scalars['Int']['output']>;
36 name?: Maybe<Scalars['String']['output']>;
37 type?: Maybe<PokemonType>;
38};
39
40export type AttacksConnection = {
41 __typename?: 'AttacksConnection';
42 fast?: Maybe<Array<Maybe<Attack>>>;
43 special?: Maybe<Array<Maybe<Attack>>>;
44};
45
46/** Requirement that prevents an evolution through regular means of levelling up. */
47export type EvolutionRequirement = {
48 __typename?: 'EvolutionRequirement';
49 amount?: Maybe<Scalars['Int']['output']>;
50 name?: Maybe<Scalars['String']['output']>;
51};
52
53export type Pokemon = {
54 __typename?: 'Pokemon';
55 attacks?: Maybe<AttacksConnection>;
56 /** @deprecated And this is the reason why */
57 classification?: Maybe<Scalars['String']['output']>;
58 evolutionRequirements?: Maybe<Array<Maybe<EvolutionRequirement>>>;
59 evolutions?: Maybe<Array<Maybe<Pokemon>>>;
60 /** Likelihood of an attempt to catch a Pokémon to fail. */
61 fleeRate?: Maybe<Scalars['Float']['output']>;
62 height?: Maybe<PokemonDimension>;
63 id: Scalars['ID']['output'];
64 /** Maximum combat power a Pokémon may achieve at max level. */
65 maxCP?: Maybe<Scalars['Int']['output']>;
66 /** Maximum health points a Pokémon may achieve at max level. */
67 maxHP?: Maybe<Scalars['Int']['output']>;
68 name: Scalars['String']['output'];
69 resistant?: Maybe<Array<Maybe<PokemonType>>>;
70 types?: Maybe<Array<Maybe<PokemonType>>>;
71 weaknesses?: Maybe<Array<Maybe<PokemonType>>>;
72 weight?: Maybe<PokemonDimension>;
73};
74
75export type PokemonDimension = {
76 __typename?: 'PokemonDimension';
77 maximum?: Maybe<Scalars['String']['output']>;
78 minimum?: Maybe<Scalars['String']['output']>;
79};
80
81/** Elemental property associated with either a Pokémon or one of their moves. */
82export enum PokemonType {
83 Bug = 'Bug',
84 Dark = 'Dark',
85 Dragon = 'Dragon',
86 Electric = 'Electric',
87 Fairy = 'Fairy',
88 Fighting = 'Fighting',
89 Fire = 'Fire',
90 Flying = 'Flying',
91 Ghost = 'Ghost',
92 Grass = 'Grass',
93 Ground = 'Ground',
94 Ice = 'Ice',
95 Normal = 'Normal',
96 Poison = 'Poison',
97 Psychic = 'Psychic',
98 Rock = 'Rock',
99 Steel = 'Steel',
100 Water = 'Water',
101}
102
103export type Query = {
104 __typename?: 'Query';
105 /** Get a single Pokémon by its ID, a three character long identifier padded with zeroes */
106 pokemon?: Maybe<Pokemon>;
107 /** List out all Pokémon, optionally in pages */
108 pokemons?: Maybe<Array<Maybe<Pokemon>>>;
109};
110
111export type QueryPokemonArgs = {
112 id: Scalars['ID']['input'];
113};
114
115export type QueryPokemonsArgs = {
116 limit?: InputMaybe<Scalars['Int']['input']>;
117 skip?: InputMaybe<Scalars['Int']['input']>;
118};
119
120export type PokemonFieldsFragment = {
121 __typename?: 'Pokemon';
122 id: string;
123 name: string;
124 attacks?: {
125 __typename?: 'AttacksConnection';
126 fast?: Array<{
127 __typename?: 'Attack';
128 damage?: number | null;
129 name?: string | null;
130 } | null> | null;
131 } | null;
132} & { ' $fragmentName'?: 'PokemonFieldsFragment' };
133
134export type WeaknessFieldsFragment = {
135 __typename?: 'Pokemon';
136 weaknesses?: Array<PokemonType | null> | null;
137} & { ' $fragmentName'?: 'WeaknessFieldsFragment' };
138
139export type PokQueryVariables = Exact<{
140 limit: Scalars['Int']['input'];
141}>;
142
143export type PokQuery = {
144 __typename?: 'Query';
145 pokemons?: Array<
146 | ({
147 __typename: 'Pokemon';
148 id: string;
149 name: string;
150 fleeRate?: number | null;
151 classification?: string | null;
152 } & {
153 ' $fragmentRefs'?: {
154 PokemonFieldsFragment: PokemonFieldsFragment;
155 WeaknessFieldsFragment: WeaknessFieldsFragment;
156 };
157 })
158 | null
159 > | null;
160};
161
162export type PoQueryVariables = Exact<{
163 id: Scalars['ID']['input'];
164}>;
165
166export type PoQuery = {
167 __typename?: 'Query';
168 pokemon?: {
169 __typename: 'Pokemon';
170 id: string;
171 fleeRate?: number | null;
172 } | null;
173};
174
175export type PokemonsAreAwesomeQueryVariables = Exact<{ [key: string]: never }>;
176
177export type PokemonsAreAwesomeQuery = {
178 __typename?: 'Query';
179 pokemons?: Array<{ __typename?: 'Pokemon'; id: string } | null> | null;
180};
181
182export const PokemonFieldsFragmentDoc = {
183 kind: 'Document',
184 definitions: [
185 {
186 kind: 'FragmentDefinition',
187 name: { kind: 'Name', value: 'pokemonFields' },
188 typeCondition: {
189 kind: 'NamedType',
190 name: { kind: 'Name', value: 'Pokemon' },
191 },
192 selectionSet: {
193 kind: 'SelectionSet',
194 selections: [
195 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
196 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
197 {
198 kind: 'Field',
199 name: { kind: 'Name', value: 'attacks' },
200 selectionSet: {
201 kind: 'SelectionSet',
202 selections: [
203 {
204 kind: 'Field',
205 name: { kind: 'Name', value: 'fast' },
206 selectionSet: {
207 kind: 'SelectionSet',
208 selections: [
209 {
210 kind: 'Field',
211 name: { kind: 'Name', value: 'damage' },
212 },
213 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
214 ],
215 },
216 },
217 ],
218 },
219 },
220 ],
221 },
222 },
223 ],
224} as unknown as DocumentNode<PokemonFieldsFragment, unknown>;
225export const WeaknessFieldsFragmentDoc = {
226 kind: 'Document',
227 definitions: [
228 {
229 kind: 'FragmentDefinition',
230 name: { kind: 'Name', value: 'weaknessFields' },
231 typeCondition: {
232 kind: 'NamedType',
233 name: { kind: 'Name', value: 'Pokemon' },
234 },
235 selectionSet: {
236 kind: 'SelectionSet',
237 selections: [
238 { kind: 'Field', name: { kind: 'Name', value: 'weaknesses' } },
239 ],
240 },
241 },
242 ],
243} as unknown as DocumentNode<WeaknessFieldsFragment, unknown>;
244export const PokDocument = {
245 kind: 'Document',
246 definitions: [
247 {
248 kind: 'OperationDefinition',
249 operation: 'query',
250 name: { kind: 'Name', value: 'Pok' },
251 variableDefinitions: [
252 {
253 kind: 'VariableDefinition',
254 variable: {
255 kind: 'Variable',
256 name: { kind: 'Name', value: 'limit' },
257 },
258 type: {
259 kind: 'NonNullType',
260 type: { kind: 'NamedType', name: { kind: 'Name', value: 'Int' } },
261 },
262 },
263 ],
264 selectionSet: {
265 kind: 'SelectionSet',
266 selections: [
267 {
268 kind: 'Field',
269 name: { kind: 'Name', value: 'pokemons' },
270 arguments: [
271 {
272 kind: 'Argument',
273 name: { kind: 'Name', value: 'limit' },
274 value: {
275 kind: 'Variable',
276 name: { kind: 'Name', value: 'limit' },
277 },
278 },
279 ],
280 selectionSet: {
281 kind: 'SelectionSet',
282 selections: [
283 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
284 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
285 { kind: 'Field', name: { kind: 'Name', value: 'fleeRate' } },
286 {
287 kind: 'Field',
288 name: { kind: 'Name', value: 'classification' },
289 },
290 {
291 kind: 'FragmentSpread',
292 name: { kind: 'Name', value: 'pokemonFields' },
293 },
294 {
295 kind: 'FragmentSpread',
296 name: { kind: 'Name', value: 'weaknessFields' },
297 },
298 { kind: 'Field', name: { kind: 'Name', value: '__typename' } },
299 ],
300 },
301 },
302 ],
303 },
304 },
305 {
306 kind: 'FragmentDefinition',
307 name: { kind: 'Name', value: 'pokemonFields' },
308 typeCondition: {
309 kind: 'NamedType',
310 name: { kind: 'Name', value: 'Pokemon' },
311 },
312 selectionSet: {
313 kind: 'SelectionSet',
314 selections: [
315 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
316 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
317 {
318 kind: 'Field',
319 name: { kind: 'Name', value: 'attacks' },
320 selectionSet: {
321 kind: 'SelectionSet',
322 selections: [
323 {
324 kind: 'Field',
325 name: { kind: 'Name', value: 'fast' },
326 selectionSet: {
327 kind: 'SelectionSet',
328 selections: [
329 {
330 kind: 'Field',
331 name: { kind: 'Name', value: 'damage' },
332 },
333 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
334 ],
335 },
336 },
337 ],
338 },
339 },
340 ],
341 },
342 },
343 {
344 kind: 'FragmentDefinition',
345 name: { kind: 'Name', value: 'weaknessFields' },
346 typeCondition: {
347 kind: 'NamedType',
348 name: { kind: 'Name', value: 'Pokemon' },
349 },
350 selectionSet: {
351 kind: 'SelectionSet',
352 selections: [
353 { kind: 'Field', name: { kind: 'Name', value: 'weaknesses' } },
354 ],
355 },
356 },
357 ],
358} as unknown as DocumentNode<PokQuery, PokQueryVariables>;
359export const PoDocument = {
360 kind: 'Document',
361 definitions: [
362 {
363 kind: 'OperationDefinition',
364 operation: 'query',
365 name: { kind: 'Name', value: 'Po' },
366 variableDefinitions: [
367 {
368 kind: 'VariableDefinition',
369 variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } },
370 type: {
371 kind: 'NonNullType',
372 type: { kind: 'NamedType', name: { kind: 'Name', value: 'ID' } },
373 },
374 },
375 ],
376 selectionSet: {
377 kind: 'SelectionSet',
378 selections: [
379 {
380 kind: 'Field',
381 name: { kind: 'Name', value: 'pokemon' },
382 arguments: [
383 {
384 kind: 'Argument',
385 name: { kind: 'Name', value: 'id' },
386 value: {
387 kind: 'Variable',
388 name: { kind: 'Name', value: 'id' },
389 },
390 },
391 ],
392 selectionSet: {
393 kind: 'SelectionSet',
394 selections: [
395 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
396 { kind: 'Field', name: { kind: 'Name', value: 'fleeRate' } },
397 { kind: 'Field', name: { kind: 'Name', value: '__typename' } },
398 ],
399 },
400 },
401 ],
402 },
403 },
404 ],
405} as unknown as DocumentNode<PoQuery, PoQueryVariables>;
406export const PokemonsAreAwesomeDocument = {
407 kind: 'Document',
408 definitions: [
409 {
410 kind: 'OperationDefinition',
411 operation: 'query',
412 name: { kind: 'Name', value: 'PokemonsAreAwesome' },
413 selectionSet: {
414 kind: 'SelectionSet',
415 selections: [
416 {
417 kind: 'Field',
418 name: { kind: 'Name', value: 'pokemons' },
419 selectionSet: {
420 kind: 'SelectionSet',
421 selections: [
422 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
423 ],
424 },
425 },
426 ],
427 },
428 },
429 ],
430} as unknown as DocumentNode<
431 PokemonsAreAwesomeQuery,
432 PokemonsAreAwesomeQueryVariables
433>;