Skip to content

Commit 3c71fcf

Browse files
authored
fix models for js export (#142)
1 parent 2def7e8 commit 3c71fcf

File tree

1 file changed

+162
-4
lines changed
  • src/commonMain/kotlin/co/pokeapi/pokekotlin/model

1 file changed

+162
-4
lines changed

src/commonMain/kotlin/co/pokeapi/pokekotlin/model/pokemon.kt

Lines changed: 162 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package co.pokeapi.pokekotlin.model
22

33
import co.pokeapi.pokekotlin.internal.JsOnlyExport
4+
import kotlinx.serialization.SerialName
45
import kotlinx.serialization.Serializable
56

67
@Serializable
@@ -167,11 +168,101 @@ public data class PokemonSprites(
167168
val backShinyFemale: String?,
168169
val frontFemale: String?,
169170
val frontShinyFemale: String?,
170-
val other: Map<String, GameSprites>,
171-
val versions: Map<String, Map<String, GameSprites>>,
171+
val other: OtherGameSprites,
172+
val versions: VersionGameSprites,
172173
)
173174

174175
@Serializable
176+
@JsOnlyExport
177+
public data class OtherGameSprites(
178+
val dreamWorld: GameSprites,
179+
val home: GameSprites,
180+
@SerialName("official-artwork") val officialArtwork: GameSprites,
181+
val showdown: GameSprites,
182+
)
183+
184+
@Serializable
185+
@JsOnlyExport
186+
public data class VersionGameSprites(
187+
@SerialName("generation-i") val generationI: GenerationIGameSprites,
188+
@SerialName("generation-ii") val generationIi: GenerationIiGameSprites,
189+
@SerialName("generation-iii") val generationIii: GenerationIiiGameSprites,
190+
@SerialName("generation-iv") val generationIv: GenerationIvGameSprites,
191+
@SerialName("generation-v") val generationV: GenerationVGameSprites,
192+
@SerialName("generation-vi") val generationVi: GenerationViGameSprites,
193+
@SerialName("generation-vii") val generationVii: GenerationViiGameSprites,
194+
@SerialName("generation-viii") val generationViii: GenerationViiiGameSprites,
195+
)
196+
197+
@Serializable
198+
@JsOnlyExport
199+
public data class GenerationIGameSprites(
200+
@SerialName("red-blue") val redBlue: GameSprites,
201+
val yellow: GameSprites,
202+
)
203+
204+
@Serializable
205+
@JsOnlyExport
206+
public data class GenerationIiGameSprites(
207+
val crystal: GameSprites,
208+
val gold: GameSprites,
209+
val silver: GameSprites,
210+
)
211+
212+
@Serializable
213+
@JsOnlyExport
214+
public data class GenerationIiiGameSprites(
215+
val emerald: GameSprites,
216+
@SerialName("firered-leafgreen") val fireredLeafgreen: GameSprites,
217+
@SerialName("ruby-sapphire") val rubySapphire: GameSprites,
218+
)
219+
220+
@Serializable
221+
@JsOnlyExport
222+
public data class GenerationIvGameSprites(
223+
@SerialName("diamond-pearl") val diamondPearl: GameSprites,
224+
@SerialName("heartgold-soulsilver") val heartgoldSoulsilver: GameSprites,
225+
val platinum: GameSprites,
226+
)
227+
228+
@Serializable
229+
@JsOnlyExport
230+
public data class GenerationVGameSprites(
231+
@SerialName("black-white") val blackWhite: BlackWhiteSprites
232+
)
233+
234+
@Serializable
235+
@JsOnlyExport
236+
public data class BlackWhiteSprites(
237+
val animated: GameSprites,
238+
val backDefault: String? = null,
239+
val backFemale: String? = null,
240+
val backShiny: String? = null,
241+
val backShinyFemale: String? = null,
242+
val frontDefault: String? = null,
243+
val frontFemale: String? = null,
244+
val frontShiny: String? = null,
245+
val frontShinyFemale: String? = null,
246+
)
247+
248+
@Serializable
249+
@JsOnlyExport
250+
public data class GenerationViGameSprites(
251+
@SerialName("omegaruby-alphasapphire") val omegaRubyAlphaSapphire: GameSprites,
252+
@SerialName("x-y") val xY: GameSprites,
253+
)
254+
255+
@Serializable
256+
@JsOnlyExport
257+
public data class GenerationViiGameSprites(
258+
val icons: GameSprites,
259+
@SerialName("ultra-sun-ultra-moon") val ultraSunUltraMoon: GameSprites,
260+
)
261+
262+
@Serializable @JsOnlyExport public data class GenerationViiiGameSprites(val icons: GameSprites)
263+
264+
@Serializable
265+
@JsOnlyExport
175266
public data class GameSprites(
176267
val animated: GameSprites? = null,
177268
val backDefault: String? = null,
@@ -421,10 +512,77 @@ public data class Type(
421512
val names: List<Name>,
422513
val pokemon: List<TypePokemon>,
423514
val moves: List<NamedApiResource>,
424-
val sprites: Map<String, Map<String, TypeSprites>>,
515+
val sprites: VersionTypeSprites,
516+
)
517+
518+
@Serializable
519+
@JsOnlyExport
520+
public data class VersionTypeSprites(
521+
@SerialName("generation-iii") val generationIii: GenerationIiiTypeSprites,
522+
@SerialName("generation-iv") val generationIv: GenerationIvTypeSprites,
523+
@SerialName("generation-v") val generationV: GenerationVTypeSprites,
524+
@SerialName("generation-vi") val generationVi: GenerationViTypeSprites,
525+
@SerialName("generation-vii") val generationVii: GenerationViiTypeSprites,
526+
@SerialName("generation-viii") val generationViii: GenerationViiiTypeSprites,
527+
@SerialName("generation-ix") val generationIx: GenerationIxTypeSprites,
528+
)
529+
530+
@Serializable
531+
@JsOnlyExport
532+
public data class GenerationIiiTypeSprites(
533+
val colosseum: TypeSprites,
534+
val emerald: TypeSprites,
535+
@SerialName("firered-leafgreen") val fireredLeafgreen: TypeSprites,
536+
@SerialName("ruby-saphire") val rubySaphire: TypeSprites,
537+
val xd: TypeSprites,
538+
)
539+
540+
@Serializable
541+
@JsOnlyExport
542+
public data class GenerationIvTypeSprites(
543+
@SerialName("diamond-pearl") val diamondPearl: TypeSprites,
544+
@SerialName("heartgold-soulsilver") val heartgoldSoulsilver: TypeSprites,
545+
val platinum: TypeSprites,
546+
)
547+
548+
@Serializable
549+
@JsOnlyExport
550+
public data class GenerationVTypeSprites(
551+
@SerialName("black-2-white-2") val black2White2: TypeSprites,
552+
@SerialName("black-white") val blackWhite: TypeSprites,
553+
)
554+
555+
@Serializable
556+
@JsOnlyExport
557+
public data class GenerationViTypeSprites(
558+
@SerialName("omega-ruby-alpha-sapphire") val omegaRubyAlphaSapphire: TypeSprites,
559+
@SerialName("x-y") val xY: TypeSprites,
560+
)
561+
562+
@Serializable
563+
@JsOnlyExport
564+
public data class GenerationViiTypeSprites(
565+
@SerialName("lets-go-pikachu-lets-go-eevee") val letsGoPikachuLetsGoEevee: TypeSprites,
566+
@SerialName("sun-moon") val sunMoon: TypeSprites,
567+
@SerialName("ultra-sun-ultra-moon") val ultraSunUltraMoon: TypeSprites,
568+
)
569+
570+
@Serializable
571+
@JsOnlyExport
572+
public data class GenerationViiiTypeSprites(
573+
@SerialName("brilliant-diamond-and-shining-pearl")
574+
val brilliantDiamondAndShiningPearl: TypeSprites,
575+
@SerialName("legends-arceus") val legendsArceus: TypeSprites,
576+
@SerialName("sword-shield") val swordShield: TypeSprites,
577+
)
578+
579+
@Serializable
580+
@JsOnlyExport
581+
public data class GenerationIxTypeSprites(
582+
@SerialName("scarlet-violet") val scarletViolet: TypeSprites
425583
)
426584

427-
@Serializable public data class TypeSprites(val nameIcon: String?)
585+
@Serializable @JsOnlyExport public data class TypeSprites(val nameIcon: String?)
428586

429587
@Serializable
430588
@JsOnlyExport

0 commit comments

Comments
 (0)