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

29
types/Summon.d.ts vendored
View file

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

31
types/Weapon.d.ts vendored
View file

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