All files ImportHelper.ts

100% Statements 8/8
100% Branches 14/14
100% Functions 3/3
100% Lines 7/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30          2x 2x       3x 3x 3x 1x       4x                        
import {AgentExportData, AgentInventory, Team} from '../../types/Types'
 
export class ImportHelper {
 
    public async readFile(file: File): Promise<AgentExportData> {
        const text = await file.text()
        return JSON.parse(text) as AgentExportData
    }
 
    public async readTeamsFile(file: File): Promise<Team[]> {
        const text = await file.text()
        const data: unknown = JSON.parse(text)
        if (!Array.isArray(data)) throw new Error('Expected an array of teams')
        return data as Team[]
    }
 
    public createAgent(data: AgentExportData, agentName: string): AgentInventory {
        return {
            name: agentName,
            importedAt: new Date().toISOString(),
            keys: data.keys ?? [],
            resonators: data.resonators ?? {},
            weapons: data.weapons ?? {},
            mods: data.mods ?? {},
            cubes: data.cubes ?? {},
            boosts: data.boosts ?? {},
        }
    }
}