Add transformers for core entities

canonical Characters, Weapons and Summons
This commit is contained in:
Justin Edmund 2023-07-06 22:59:45 -07:00
parent 587153a9e2
commit 2838622335
6 changed files with 158 additions and 43 deletions

View file

@ -0,0 +1,40 @@
import * as Element from './ElementTransformer'
// Transforms API response to Party object
export function toObject(data: any): Character {
return {
type: 'character',
id: data.id,
granblueId: data.granblue_id,
characterId: data.character_id,
name: {
en: data.name.en,
ja: data.name.jp,
},
element: Element.toObject(data.element),
rarity: data.rarity,
proficiency: data.proficiency,
gender: data.gender,
race: data.race,
hp: {
min: data.hp.min,
max: data.hp.max,
flb: data.hp.max_hp_flb,
ulb: data.hp.max_hp_ulb,
},
atk: {
min: data.atk.min,
max: data.atk.max,
flb: data.atk.max_atk_flb,
ulb: data.atk.max_atk_ulb,
},
uncap: {
flb: data.uncap.flb,
ulb: data.uncap.ulb,
},
awakenings: data.awakenings.map((awakening: any) =>
Awakening.toObject(awakening)
),
special: data.special,
}
}

View file

@ -0,0 +1,36 @@
import * as Element from './ElementTransformer'
// Transforms API response to Party object
export function toObject(data: any): Summon {
return {
type: 'summon',
id: data.id,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
},
element: Element.toObject(data.element),
rarity: data.rarity,
maxLevel: data.max_level,
hp: {
min: data.hp.min,
max: data.hp.max,
flb: data.hp.max_hp_flb,
ulb: data.hp.max_hp_ulb,
xlb: data.hp.max_hp_xlb,
},
atk: {
min: data.atk.min,
max: data.atk.max,
flb: data.atk.max_atk_flb,
ulb: data.atk.max_atk_ulb,
xlb: data.atk.max_atk_xlb,
},
uncap: {
flb: data.uncap.flb,
ulb: data.uncap.ulb,
xlb: data.uncap.xlb,
},
}
}

View file

@ -0,0 +1,42 @@
import * as Element from './ElementTransformer'
// Transforms API response to Party object
export function toObject(data: any): Weapon {
return {
type: 'weapon',
id: data.id,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
},
element: Element.toObject(data.element),
rarity: data.rarity,
proficiency: data.proficiency,
series: data.series,
maxLevel: data.max_level,
maxSkillLevel: data.max_skill_level,
hp: {
min: data.hp.min,
max: data.hp.max,
flb: data.hp.max_hp_flb,
ulb: data.hp.max_hp_ulb,
},
atk: {
min: data.atk.min,
max: data.atk.max,
flb: data.atk.max_atk_flb,
ulb: data.atk.max_atk_ulb,
},
uncap: {
flb: data.uncap.flb,
ulb: data.uncap.ulb,
},
ax: data.ax,
axType: data.ax_type,
awakenings: data.awakenings.map((awakening: any) =>
Awakening.toObject(awakening)
),
maxAwakeningLevel: data.max_awakening_level,
}
}

23
types/Character.d.ts vendored
View file

@ -1,27 +1,27 @@
interface Character { interface Character {
type: 'character' type: 'character'
id: string id: string
granblue_id: string granblueId: string
character_id: readonly number[] characterId: number[]
element: number element: GranblueElement
rarity: number rarity: number
gender: number gender: number
max_level: number
name: { name: {
[key: string]: string [key: string]: string
en: string en: string
ja: string ja: string
} }
hp: { hp: {
min_hp: number min: number
max_hp: number max: number
max_hp_flb: number flb: number
ulb: number
} }
atk: { atk: {
min_atk: number min: number
max_atk: number max: number
max_atk_flb: number flb: number
ulb: number
} }
uncap: { uncap: {
flb: boolean flb: boolean
@ -33,6 +33,5 @@ interface Character {
} }
proficiency: number[] proficiency: number[]
awakenings: Awakening[] awakenings: Awakening[]
position?: number
special: boolean special: boolean
} }

29
types/Summon.d.ts vendored
View file

@ -1,33 +1,32 @@
interface Summon { interface Summon {
type: 'summon' type: 'summon'
id: string id: string
granblue_id: number granblueId: string
element: number element: GranblueElement
max_level: number maxLevel: number
rarity: number
name: { name: {
[key: string]: string [key: string]: string
en: string en: string
ja: string ja: string
} }
hp: { hp: {
min_hp: number min: number
max_hp: number max: number
max_hp_flb: number flb: number
max_hp_ulb: number ulb: number
max_hp_xlb: number xlb: number
} }
atk: { atk: {
min_atk: number min: number
max_atk: number max: number
max_atk_flb: number flb: number
max_atk_ulb: number ulb: number
max_atk_xlb: number xlb: number
} }
uncap: { uncap: {
flb: boolean flb: boolean
ulb: boolean ulb: boolean
xlb: boolean xlb: boolean
} }
position?: number
} }

31
types/Weapon.d.ts vendored
View file

@ -1,16 +1,16 @@
interface Weapon { interface Weapon {
type: 'weapon' type: 'weapon'
id: string id: string
granblue_id: number granblueId: number
element: number element: GranblueElement
proficiency: number proficiency: number
max_level: number rarity: number
max_skill_level: number maxLevel: number
max_awakening_level: number maxSkillLevel: number
maxAwakeningLevel: number
series: number series: number
ax: boolean ax: boolean
ax_type: number axType: number
awakenings: Awakening[] awakenings: Awakening[]
name: { name: {
[key: string]: string [key: string]: string
@ -18,20 +18,19 @@ interface Weapon {
ja: string ja: string
} }
hp: { hp: {
min_hp: number min: number
max_hp: number max: number
max_hp_flb: number flb: number
max_hp_ulb: number ulb: number
} }
atk: { atk: {
min_atk: number min: number
max_atk: number max: number
max_atk_flb: number flb: number
max_atk_ulb: number ulb: number
} }
uncap: { uncap: {
flb: boolean flb: boolean
ulb: boolean ulb: boolean
} }
position?: number
} }