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 PoQueryVariables = Exact<{
135 id: Scalars['ID']['input'];
136}>;
137
138export type PoQuery = {
139 __typename?: 'Query';
140 pokemon?:
141 | ({
142 __typename: 'Pokemon';
143 id: string;
144 fleeRate?: number | null;
145 name: string;
146 attacks?: {
147 __typename?: 'AttacksConnection';
148 special?: Array<{
149 __typename?: 'Attack';
150 name?: string | null;
151 damage?: number | null;
152 } | null> | null;
153 } | null;
154 weight?: {
155 __typename?: 'PokemonDimension';
156 minimum?: string | null;
157 maximum?: string | null;
158 } | null;
159 } & {
160 ' $fragmentRefs'?: { PokemonFieldsFragment: PokemonFieldsFragment };
161 })
162 | null;
163};
164
165export const PokemonFieldsFragmentDoc = {
166 kind: 'Document',
167 definitions: [
168 {
169 kind: 'FragmentDefinition',
170 name: { kind: 'Name', value: 'pokemonFields' },
171 typeCondition: {
172 kind: 'NamedType',
173 name: { kind: 'Name', value: 'Pokemon' },
174 },
175 selectionSet: {
176 kind: 'SelectionSet',
177 selections: [
178 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
179 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
180 {
181 kind: 'Field',
182 name: { kind: 'Name', value: 'attacks' },
183 selectionSet: {
184 kind: 'SelectionSet',
185 selections: [
186 {
187 kind: 'Field',
188 name: { kind: 'Name', value: 'fast' },
189 selectionSet: {
190 kind: 'SelectionSet',
191 selections: [
192 {
193 kind: 'Field',
194 name: { kind: 'Name', value: 'damage' },
195 },
196 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
197 ],
198 },
199 },
200 ],
201 },
202 },
203 ],
204 },
205 },
206 ],
207} as unknown as DocumentNode<PokemonFieldsFragment, unknown>;
208export const PoDocument = {
209 kind: 'Document',
210 definitions: [
211 {
212 kind: 'OperationDefinition',
213 operation: 'query',
214 name: { kind: 'Name', value: 'Po' },
215 variableDefinitions: [
216 {
217 kind: 'VariableDefinition',
218 variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } },
219 type: {
220 kind: 'NonNullType',
221 type: { kind: 'NamedType', name: { kind: 'Name', value: 'ID' } },
222 },
223 },
224 ],
225 selectionSet: {
226 kind: 'SelectionSet',
227 selections: [
228 {
229 kind: 'Field',
230 name: { kind: 'Name', value: 'pokemon' },
231 arguments: [
232 {
233 kind: 'Argument',
234 name: { kind: 'Name', value: 'id' },
235 value: {
236 kind: 'Variable',
237 name: { kind: 'Name', value: 'id' },
238 },
239 },
240 ],
241 selectionSet: {
242 kind: 'SelectionSet',
243 selections: [
244 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
245 { kind: 'Field', name: { kind: 'Name', value: 'fleeRate' } },
246 {
247 kind: 'FragmentSpread',
248 name: { kind: 'Name', value: 'pokemonFields' },
249 },
250 {
251 kind: 'Field',
252 name: { kind: 'Name', value: 'attacks' },
253 selectionSet: {
254 kind: 'SelectionSet',
255 selections: [
256 {
257 kind: 'Field',
258 name: { kind: 'Name', value: 'special' },
259 selectionSet: {
260 kind: 'SelectionSet',
261 selections: [
262 {
263 kind: 'Field',
264 name: { kind: 'Name', value: 'name' },
265 },
266 {
267 kind: 'Field',
268 name: { kind: 'Name', value: 'damage' },
269 },
270 ],
271 },
272 },
273 ],
274 },
275 },
276 {
277 kind: 'Field',
278 name: { kind: 'Name', value: 'weight' },
279 selectionSet: {
280 kind: 'SelectionSet',
281 selections: [
282 {
283 kind: 'Field',
284 name: { kind: 'Name', value: 'minimum' },
285 },
286 {
287 kind: 'Field',
288 name: { kind: 'Name', value: 'maximum' },
289 },
290 ],
291 },
292 },
293 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
294 { kind: 'Field', name: { kind: 'Name', value: '__typename' } },
295 ],
296 },
297 },
298 ],
299 },
300 },
301 {
302 kind: 'FragmentDefinition',
303 name: { kind: 'Name', value: 'pokemonFields' },
304 typeCondition: {
305 kind: 'NamedType',
306 name: { kind: 'Name', value: 'Pokemon' },
307 },
308 selectionSet: {
309 kind: 'SelectionSet',
310 selections: [
311 { kind: 'Field', name: { kind: 'Name', value: 'id' } },
312 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
313 {
314 kind: 'Field',
315 name: { kind: 'Name', value: 'attacks' },
316 selectionSet: {
317 kind: 'SelectionSet',
318 selections: [
319 {
320 kind: 'Field',
321 name: { kind: 'Name', value: 'fast' },
322 selectionSet: {
323 kind: 'SelectionSet',
324 selections: [
325 {
326 kind: 'Field',
327 name: { kind: 'Name', value: 'damage' },
328 },
329 { kind: 'Field', name: { kind: 'Name', value: 'name' } },
330 ],
331 },
332 },
333 ],
334 },
335 },
336 ],
337 },
338 },
339 ],
340} as unknown as DocumentNode<PoQuery, PoQueryVariables>;