Add transformer for GridWeapon

This commit is contained in:
Justin Edmund 2023-07-06 23:33:51 -07:00
parent 7cd87bd4a7
commit 8ef2bf76e3
3 changed files with 58 additions and 4 deletions

View file

@ -0,0 +1,39 @@
import * as Element from './ElementTransformer'
import * as Weapon from './WeaponTransformer'
// Transforms API response to GridWeapon object
export function toObject(data: any): GridWeapon {
return {
id: data.id,
object: Weapon.toObject(data.object),
position: data.position,
mainhand: data.mainhand,
uncapLevel: data.uncap_level,
element: Element.toObject(data.element),
weaponKeys: data.weapon_keys.map((key: any) => WeaponKey.toObject(key)),
ax: data.ax,
awakening: {
type: Awakening.toObject(data.awakening.type),
level: data.awakening.awakening_level,
},
}
}
// Transforms User object into API parameters
export function toParams(data: GridWeapon): GridWeaponParams {
return {
weapon_id: data.id,
position: data.position,
uncap_level: data.uncapLevel,
element: data.element.id,
weapon_key1_id: data.weaponKeys?.[0].id,
weapon_key2_id: data.weaponKeys?.[1].id,
weapon_key3_id: data.weaponKeys?.[2].id,
ax_modifier1: data.ax?.[0].modifier,
ax_modifier2: data.ax?.[1].modifier,
ax_strength1: data.ax?.[0].strength,
ax_strength2: data.ax?.[1].strength,
awakening_id: data.awakening?.type.id,
awakening_level: data.awakening?.level,
}
}

View file

@ -3,10 +3,10 @@ interface GridWeapon {
mainhand: boolean
position: number
object: Weapon
uncap_level: number
element: number
weapon_keys?: Array<WeaponKey>
ax?: Array<SimpleAxSkill>
uncapLevel: number
element: GranblueElement
weaponKeys?: WeaponKey[]
ax?: SimpleAxSkill[]
awakening?: {
type: Awakening
level: number

15
types/GridWeaponParams.d.ts vendored Normal file
View file

@ -0,0 +1,15 @@
interface GridWeaponParams {
weapon_id: string
position?: number
uncap_level?: number
element?: number
weapon_key1_id?: string
weapon_key2_id?: string
weapon_key3_id?: string
ax_modifier1?: number
ax_modifier2?: number
ax_strength1?: number
ax_strength2?: number
awakening_id?: string
awakening_level?: number
}