Fix transformers and types

Dozens of tiny errors from me freehanding it
This commit is contained in:
Justin Edmund 2023-07-07 06:47:41 -07:00
parent d42927623e
commit b2f64f1d78
25 changed files with 118 additions and 90 deletions

View file

@ -14,7 +14,7 @@ import { appState } from '~utils/appState'
import { GroupedWeaponKeys, groupWeaponKeys } from '~utils/groupWeaponKeys'
import * as JobTransformer from '~transformers/JobTransformer'
import * as JobSkillTransformer from '~transformers/JobTransformer'
import * as JobSkillTransformer from '~transformers/JobSkillTransformer'
import * as PartyTransformer from '~transformers/PartyTransformer'
import * as RaidGroupTransformer from '~transformers/RaidGroupTransformer'
import * as WeaponKeyTransformer from '~transformers/WeaponKeyTransformer'
@ -171,7 +171,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex
.getAll()
.then((response) =>
response.data.map((job: any) => JobTransformer.toObject(job))
)
)
const jobSkills: JobSkill[] = await api
.allJobSkills()
@ -190,7 +190,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex
// Fetch the party
if (!query.party) throw new Error('No party code')
const party: Party | undefined = await api.endpoints.parties.getOne({
id: query.party,
}).then((response) => PartyTransformer.toObject(response.data.party))

View file

@ -4,7 +4,7 @@ export function toObject(data: any): Awakening {
id: data.id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
slug: data.slug,
object_type: data.object_type,

View file

@ -6,11 +6,11 @@ export function toObject(data: any): Character {
return {
type: 'character',
id: data.id,
granblueId: data.granblueId,
granblueId: data.granblue_id,
characterId: data.character_id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
element: Element.toObject(data.element),
rarity: data.rarity,
@ -18,16 +18,16 @@ export function toObject(data: any): Character {
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,
min: data.hp.min_hp,
max: data.hp.max_hp,
flb: data.hp.max_hp_flb ? data.hp.max_hp_flb : null,
ulb: data.hp.max_hp_ulb ? data.hp.max_hp_ulb : null,
},
atk: {
min: data.atk.min,
max: data.atk.max,
flb: data.atk.max_atk_flb,
ulb: data.atk.max_atk_ulb,
min: data.atk.min_atk,
max: data.atk.max_atk,
flb: data.atk.max_atk_flb ? data.atk.max_atk_flb : null,
ulb: data.atk.max_atk_ulb ? data.atk.max_atk_ulb : null,
},
uncap: {
flb: data.uncap.flb,

View file

@ -7,14 +7,16 @@ export function toObject(data: any): GridCharacter {
id: data.id,
object: Character.toObject(data.object),
position: data.position,
uncapLevel: data.uncapLevel,
transcendenceStep: data.transcendence_step,
uncapLevel: data.uncap_level,
transcendenceStep: data.transcendence_step ? data.transcendence_step : null,
mastery: {
overMastery: data.over_mastery,
aetherialMastery: data.aetherial_mastery,
overMastery: data.over_mastery
? data.over_mastery
: [null, null, null, null],
aetherialMastery: data.aetherial_mastery ? data.aetherial_mastery : null,
awakening: {
type: Awakening.toObject(data.awakening.type),
level: data.awakening.awakening_level,
level: data.awakening.level,
},
perpetuity: data.perpetuity,
},

View file

@ -8,8 +8,8 @@ export function toObject(data: any): GridSummon {
position: data.position,
main: data.main,
friend: data.friend,
uncapLevel: data.uncapLevel,
transcendenceStep: data.transcendence_step,
uncapLevel: data.uncap_level,
transcendenceStep: data.transcendence_step ? data.transcendence_step : null,
quickSummon: data.quick_summon,
}
}

View file

@ -4,25 +4,26 @@ import * as GridCharacter from '~transformers/GridCharacterTransformer'
// Transforms API response to Party object
export function toObject(data: any): Grid {
const mainSummon = data.summons.find((summon: any) => summon.main === true)
const friendSummon = data.summons.find(
(summon: any) => summon.friend === true
)
const mainWeapon = data.weapons.find(
(weapon: any) => weapon.mainhand === true
)
return {
characters: data.characters.map((character: any) =>
GridCharacter.toObject(character)
),
summons: {
mainSummon: GridSummon.toObject(
data.summons.find((summon: any) => summon.main === true)
),
friendSummon: GridSummon.toObject(
data.summons.find((summon: any) => summon.friend === true)
),
mainSummon: mainSummon ? GridSummon.toObject(mainSummon) : null,
friendSummon: friendSummon ? GridSummon.toObject(friendSummon) : null,
allSummons: data.summons.map((summon: any) => {
if (!summon.main && !summon.friend) return GridSummon.toObject(summon)
}),
},
weapons: {
mainWeapon: GridWeapon.toObject(
data.weapons.find((weapon: any) => weapon.mainhand === true)
),
mainWeapon: mainWeapon ? GridWeapon.toObject(mainWeapon) : null,
allWeapons: data.weapons.map((weapon: any) => {
if (!weapon.mainhand) return GridWeapon.toObject(weapon)
}),

View file

@ -10,7 +10,7 @@ export function toObject(data: any): GridWeapon {
object: Weapon.toObject(data.object),
position: data.position,
mainhand: data.mainhand,
uncapLevel: data.uncapLevel,
uncapLevel: data.uncap_level,
element: Element.toObject(data.element),
weaponKeys: data.weapon_keys.map((key: any) => WeaponKey.toObject(key)),
ax: data.ax,

View file

@ -0,0 +1,15 @@
// Transforms API response to Guidebook object
export function toObject(data: any): Guidebook {
return {
id: data.id,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
},
description: {
en: data.description.en,
ja: data.description.jp,
},
}
}

View file

@ -4,7 +4,7 @@ import * as Job from './JobTransformer'
export function toObject(data: any): JobAccessory {
return {
id: data.id,
granblueId: data.granblueId,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,

View file

@ -6,7 +6,7 @@ export function toObject(data: any): JobSkill {
id: data.id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
job: Job.toObject(data.job),
slug: data.slug,

View file

@ -2,19 +2,18 @@
export function toObject(data: any): Job {
return {
id: data.id,
granblueId: data.granblueId,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
baseJob: toObject(data.base_job),
row: data.row,
order: data.order,
masterLevel: data.master_level,
ultimateMastery: data.ultimate_mastery,
proficiency: {
proficiency1: data.proficiency1,
proficiency2: data.proficiency2,
proficiency1: data.proficiency?.[0] ?? null,
proficiency2: data.proficiency?.[1] ?? null,
},
accessory: data.accessory,
accessory_type: data.accessory_type,

View file

@ -1,4 +1,5 @@
import * as Grid from './GridTransformer'
import * as Guidebook from './GuidebookTransformer'
import * as Job from './JobTransformer'
import * as JobAccessory from './JobAccessoryTransformer'
import * as JobSkill from './JobSkillTransformer'
@ -32,24 +33,33 @@ export function toObject(data: any): Party {
chainCount: data.chain_count,
},
protagonist: {
job: Job.toObject(data.job),
skills: data.job_skills.map((skill: any) => JobSkill.toObject(skill)),
job: data.job && Job.toObject(data.job),
skills: {
0: data.job_skills[0] && JobSkill.toObject(data.job_skills[0]),
1: data.job_skills[1] && JobSkill.toObject(data.job_skills[1]),
2: data.job_skills[2] && JobSkill.toObject(data.job_skills[2]),
3: data.job_skills[3] && JobSkill.toObject(data.job_skills[3]),
},
masterLevel: data.master_level,
ultimateMastery: data.ultimate_mastery,
accessory: JobAccessory.toObject(data.accessory),
accessory: data.accessory && JobAccessory.toObject(data.accessory),
},
social: {
favorited: data.favorited,
remix: data.remix,
remixes: data.remixes.map((remix: any) => toObject(remix)),
sourceParty: toObject(data.source_party),
sourceParty: data.source_party && toObject(data.source_party),
},
timestamps: {
createdAt: data.created_at,
updatedAt: data.updated_at,
},
raid: Raid.toObject(data.raid),
guidebooks: data.guidebooks,
raid: data.raid && Raid.toObject(data.raid),
guidebooks: {
0: data.guidebooks[1] && Guidebook.toObject(data.guidebooks[1]),
1: data.guidebooks[2] && Guidebook.toObject(data.guidebooks[2]),
2: data.guidebooks[3] && Guidebook.toObject(data.guidebooks[3]),
},
}
}
@ -69,7 +79,7 @@ export function toParams(party: Party): PartyParams {
turn_count: party.details.turnCount,
chain_count: party.details.chainCount,
raid_id: party.raid?.id,
job_id: party.protagonist.job.id,
job_id: party.protagonist.job?.id,
master_level: party.protagonist.masterLevel,
ultimate_mastery: party.protagonist.ultimateMastery,
guidebook1_id: party.guidebooks[0]?.id,

View file

@ -5,10 +5,12 @@ export function toObject(data: any): RaidGroup {
return {
id: data.id,
name: {
en: data.name_en,
ja: data.name_jp,
en: data.name.en,
ja: data.name.ja,
},
raids: data.raids.map((raid: any) => Raid.toObject(raid)),
raids: data.raids
? data.raids.map((raid: any) => Raid.toObject(raid))
: null,
difficulty: data.difficulty,
section: data.section,
order: data.order,

View file

@ -5,10 +5,10 @@ import * as RaidGroup from './RaidGroupTransformer'
export function toObject(data: any): Raid {
return {
id: data.id,
group: RaidGroup.toObject(data.group),
group: data.group && RaidGroup.toObject(data.group),
name: {
en: data.name_en,
ja: data.name_jp,
en: data.name.en,
ja: data.name.ja,
},
element: Element.toObject(data.element),
level: data.level,

View file

@ -5,27 +5,27 @@ export function toObject(data: any): Summon {
return {
type: 'summon',
id: data.id,
granblueId: data.granblueId,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
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,
min: data.hp.min_hp,
max: data.hp.max_hp,
flb: data.hp.max_hp_flb ? data.hp.max_hp_flb : null,
ulb: data.hp.max_hp_ulb ? data.hp.max_hp_ulb : null,
xlb: data.hp.max_hp_xlb ? data.hp.max_hp_xlb : null,
},
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,
min: data.atk.min_atk,
max: data.atk.max_atk,
flb: data.atk.max_atk_flb ? data.atk.max_atk_flb : null,
ulb: data.atk.max_atk_ulb ? data.atk.max_atk_ulb : null,
xlb: data.atk.max_atk_xlb ? data.atk.max_atk_xlb : null,
},
uncap: {
flb: data.uncap.flb,

View file

@ -2,10 +2,10 @@
export function toObject(data: any): WeaponKey {
return {
id: data.id,
granblueId: data.granblueId,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
slug: data.slug,
series: data.series,

View file

@ -6,10 +6,10 @@ export function toObject(data: any): Weapon {
return {
type: 'weapon',
id: data.id,
granblueId: data.granblueId,
granblueId: data.granblue_id,
name: {
en: data.name.en,
ja: data.name.jp,
ja: data.name.ja,
},
element: Element.toObject(data.element),
rarity: data.rarity,
@ -18,16 +18,16 @@ export function toObject(data: any): Weapon {
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,
min: data.hp.min_hp,
max: data.hp.max_hp,
flb: data.hp.max_hp_flb ? data.hp.max_hp_flb : null,
ulb: data.hp.max_hp_ulb ? data.hp.max_hp_ulb : null,
},
atk: {
min: data.atk.min,
max: data.atk.max,
flb: data.atk.max_atk_flb,
ulb: data.atk.max_atk_ulb,
min: data.atk.min_atk,
max: data.atk.max_atk,
flb: data.atk.max_atk_flb ? data.atk.max_atk_flb : null,
ulb: data.atk.max_atk_ulb ? data.atk.max_atk_ulb : null,
},
uncap: {
flb: data.uncap.flb,

6
types/Grid.d.ts vendored
View file

@ -1,11 +1,11 @@
interface Grid {
weapons: {
mainWeapon: GridWeapon | undefined
mainWeapon?: GridWeapon | undefined
allWeapons: GridArray<GridWeapon>
}
summons: {
mainSummon: GridSummon | undefined
friendSummon: GridSummon | undefined
mainSummon?: GridSummon | undefined
friendSummon?: GridSummon | undefined
allSummons: GridArray<GridSummon>
}
characters: GridArray<GridCharacter>

View file

@ -3,13 +3,13 @@ interface GridCharacter {
position: number
object: Character
uncapLevel: number
transcendenceStep: number
transcendenceStep?: number
mastery: {
overMastery: CharacterOverMastery
aetherialMastery: ExtendedMastery
overMastery?: CharacterOverMastery
aetherialMastery?: ExtendedMastery
awakening: {
type: Awakening
level: number
level?: number
}
perpetuity: boolean
}

View file

@ -5,6 +5,6 @@ interface GridSummon {
position: number
object: Summon
uncapLevel: number
transcendenceStep: number
transcendenceStep?: number
quickSummon: boolean
}

View file

@ -4,11 +4,11 @@ interface Guidebook {
name: {
[key: string]: string
en: string
jp: string
ja: string
}
description: {
[key: string]: string
en: string
jp: string
ja: string
}
}

1
types/Job.d.ts vendored
View file

@ -1,7 +1,6 @@
interface Job {
id: string
granblueId: string
baseJob?: Job
name: {
[key: string]: string
en: string

4
types/Party.d.ts vendored
View file

@ -35,11 +35,11 @@ interface Party {
chainCount?: number
}
protagonist: {
job: Job
job?: Job
skills: JobSkillList
masterLevel?: number
ultimateMastery?: number
accessory: JobAccessory
accessory?: JobAccessory
}
social: {
favorited: boolean

2
types/Raid.d.ts vendored
View file

@ -1,6 +1,6 @@
interface Raid {
id: string
group: RaidGroup
group?: RaidGroup
name: {
[key: string]: string
en: string

View file

@ -5,7 +5,7 @@ interface RaidGroup {
en: string
ja: string
}
raids: Raid[]
raids?: Raid[]
difficulty: number
section: number
order: number