Separate serve lib
This commit is contained in:
@@ -1,24 +0,0 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
|
||||
const basePathname = path.join(process.cwd(), 'public/data')
|
||||
|
||||
export function resolvePathname(pathname: string) {
|
||||
return path.join(basePathname, pathname)
|
||||
}
|
||||
|
||||
export function readdirSync(pathname: string) {
|
||||
const fileList = fs.readdirSync(resolvePathname(pathname))
|
||||
|
||||
return fileList
|
||||
}
|
||||
|
||||
export function readFileSync(pathname: string) {
|
||||
return fs.readFileSync(resolvePathname(pathname))
|
||||
}
|
||||
|
||||
export function readJsonFileSync(pathname: string) {
|
||||
const rawData = readFileSync(pathname).toString()
|
||||
|
||||
return JSON.parse(rawData)
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
export interface BattlesuitSkill {
|
||||
name: string
|
||||
description: string
|
||||
requiredRank: string
|
||||
}
|
||||
export interface BattlesuitSkillGroup {
|
||||
core: BattlesuitSkill
|
||||
subskills: BattlesuitSkill[]
|
||||
}
|
||||
|
||||
export interface BattlesuitData {
|
||||
id: string
|
||||
version?: string
|
||||
name: string
|
||||
type: string
|
||||
valkyrie: string
|
||||
strengths: string[]
|
||||
leader: BattlesuitSkillGroup
|
||||
special: BattlesuitSkillGroup
|
||||
evasion: BattlesuitSkillGroup
|
||||
passive: BattlesuitSkillGroup
|
||||
ultimate: BattlesuitSkillGroup
|
||||
basic: BattlesuitSkillGroup
|
||||
sp?: BattlesuitSkillGroup
|
||||
}
|
||||
|
||||
export const battlesuitStrengths = [
|
||||
{ icon: 'feature-icons/physical', value: 'physical', label: 'Physical' },
|
||||
{ icon: 'feature-icons/fire-dmg', value: 'fire-dmg', label: 'Fire DMG' },
|
||||
{ icon: 'feature-icons/ice-dmg', value: 'ice-dmg', label: 'Ice DMG' },
|
||||
{
|
||||
icon: 'feature-icons/lightning-dmg',
|
||||
value: 'lightning-dmg',
|
||||
label: 'Lightning DMG',
|
||||
},
|
||||
{ icon: 'feature-icons/freeze', value: 'freeze', label: 'Freeze' },
|
||||
{ icon: 'feature-icons/paralyze', value: 'paralyze', label: 'Paralyze' },
|
||||
{ icon: 'feature-icons/stun', value: 'stun', label: 'Stun' },
|
||||
{ icon: 'feature-icons/ignite', value: 'ignite', label: 'Ignite' },
|
||||
{ icon: 'feature-icons/bleed', value: 'bleed', label: 'Bleed' },
|
||||
{ icon: 'feature-icons/heavy-atk', value: 'heavy-atk', label: 'heavy-atk' },
|
||||
{ icon: 'feature-icons/weaken', value: 'weaken', label: 'Weaken' },
|
||||
{ icon: 'feature-icons/impair', value: 'impair', label: 'Impair' },
|
||||
{
|
||||
icon: 'feature-icons/time-mastery',
|
||||
value: 'time mastery',
|
||||
label: 'Time Mastery',
|
||||
},
|
||||
{ icon: 'feature-icons/gather', value: 'gather', label: 'Gather' },
|
||||
{ icon: 'feature-icons/heal', value: 'heal', label: 'Heal' },
|
||||
{ icon: 'feature-icons/fast-atk', value: 'fast atk', label: 'Fast ATK' },
|
||||
{ icon: 'feature-icons/burst', value: 'burst', label: 'Burst' },
|
||||
{ icon: 'feature-icons/aerial', value: 'aerial', label: 'Aerial' },
|
||||
]
|
||||
|
||||
export const battlesuitTypes = [
|
||||
{ value: 'mecha', icon: 'type-icons/mecha', label: 'Mecha' },
|
||||
{ value: 'biologic', icon: 'type-icons/biologic', label: 'Biologic' },
|
||||
{ value: 'psychic', icon: 'type-icons/psychic', label: 'Psychic' },
|
||||
{ value: 'quantum', icon: 'type-icons/quantum', label: 'Quantum' },
|
||||
{ value: 'imaginary', icon: 'type-icons/imaginary', label: 'Imaginary' },
|
||||
]
|
||||
|
||||
export const valkyries = [
|
||||
{ value: 'kiana', icon: 'valkyrie-icons/kiana', label: 'Kiana' },
|
||||
{ value: 'mei', icon: 'valkyrie-icons/mei', label: 'Mei' },
|
||||
{ value: 'bronya', icon: 'valkyrie-icons/bronya', label: 'Bronya' },
|
||||
{ value: 'himeko', icon: 'valkyrie-icons/himeko', label: 'Himeko' },
|
||||
{ value: 'theresa', icon: 'valkyrie-icons/theresa', label: 'Theresa' },
|
||||
{ value: 'fuhua', icon: 'valkyrie-icons/fuhua', label: 'Fu Hua' },
|
||||
{ value: 'rita', icon: 'valkyrie-icons/rita', label: 'Rita' },
|
||||
{ value: 'sakura', icon: 'valkyrie-icons/sakura', label: 'Sakura' },
|
||||
{ value: 'kallen', icon: 'valkyrie-icons/kallen', label: 'Kallen' },
|
||||
{ value: 'olenyevas', icon: 'valkyrie-icons/olenyevas', label: 'Olenyevas' },
|
||||
{ value: 'seele', icon: 'valkyrie-icons/seele', label: 'Seele' },
|
||||
{ value: 'durandal', icon: 'valkyrie-icons/durandal', label: 'Durandal' },
|
||||
{ value: 'fischl', icon: 'valkyrie-icons/fischl', label: 'Fischl' },
|
||||
{ value: 'elysia', icon: 'valkyrie-icons/elysia', label: 'Elysia' },
|
||||
{ value: 'mobius', icon: 'valkyrie-icons/mobius', label: 'Mobius' },
|
||||
{ value: 'raven', icon: 'valkyrie-icons/raven', label: 'Raven' },
|
||||
{ value: 'carole', icon: 'valkyrie-icons/carole', label: 'Carole' },
|
||||
]
|
||||
@@ -0,0 +1,15 @@
|
||||
export interface ElfSkill {
|
||||
type: 'passive' | 'basic' | 'ultimate' | 'team'
|
||||
name: string
|
||||
requiredRank: number
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface ElfData {
|
||||
id: string
|
||||
name: string
|
||||
baseRank: number
|
||||
strengths: string[]
|
||||
skillRows: [ElfSkill[], ElfSkill[], ElfSkill[], ElfSkill[]]
|
||||
version: string
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
export interface StigmataSkill {
|
||||
name: string
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface StigmataData {
|
||||
id: string
|
||||
name: string
|
||||
skill: StigmataSkill
|
||||
ttk: number
|
||||
def: number
|
||||
crt: number
|
||||
set?: string
|
||||
type: 'top' | 'mid' | 'bot'
|
||||
hp: number
|
||||
rarity: 3 | 4 | 5
|
||||
version?: string
|
||||
hidden?: boolean
|
||||
}
|
||||
|
||||
export interface StigmataSet {
|
||||
id: string
|
||||
name: string
|
||||
altName: string
|
||||
twoSetSkill: StigmataSkill
|
||||
threeSetSkill: StigmataSkill
|
||||
version?: string
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
export interface SupplyEventData {
|
||||
id: string
|
||||
verified: boolean
|
||||
track: number
|
||||
name: string
|
||||
type: string
|
||||
token: string
|
||||
featured: {
|
||||
type: string
|
||||
id: string
|
||||
}[]
|
||||
extra: string[]
|
||||
version: number
|
||||
duration: [string, string]
|
||||
guarantees: {
|
||||
count: number
|
||||
recurring: boolean
|
||||
rewards: { type: string; id: string; amount: number | [number, number] }[]
|
||||
}[]
|
||||
mileages: {
|
||||
count: number
|
||||
rewardOptions: {
|
||||
type: string
|
||||
id: string
|
||||
amount: number
|
||||
}[]
|
||||
}[]
|
||||
drops: {
|
||||
type: string
|
||||
id: string
|
||||
rate: number
|
||||
amount: number | [number, number]
|
||||
}[]
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
export interface VersionData {
|
||||
version: string
|
||||
previousVersion?: string
|
||||
nextVersion?: string
|
||||
name: string
|
||||
duration: [string, string]
|
||||
verified: boolean
|
||||
newBattlesuits: string[]
|
||||
newWeapons: string[]
|
||||
description: string
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
export interface WeaponSkill {
|
||||
name: string
|
||||
description: string
|
||||
}
|
||||
|
||||
export interface WeaponData {
|
||||
id: string
|
||||
name: string
|
||||
atk: number
|
||||
crt: number
|
||||
category:
|
||||
| 'pistol'
|
||||
| 'cannon'
|
||||
| 'katana'
|
||||
| 'cross'
|
||||
| 'greatsword'
|
||||
| 'scythe'
|
||||
| 'lance'
|
||||
| 'gauntlet'
|
||||
| 'bow'
|
||||
rarity: number
|
||||
skills: WeaponSkill[]
|
||||
version?: string
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
export const battlesuitStrengths = [
|
||||
{ icon: 'feature-icons/physical', value: 'physical', label: 'Physical' },
|
||||
{ icon: 'feature-icons/fire-dmg', value: 'fire-dmg', label: 'Fire DMG' },
|
||||
{ icon: 'feature-icons/ice-dmg', value: 'ice-dmg', label: 'Ice DMG' },
|
||||
{
|
||||
icon: 'feature-icons/lightning-dmg',
|
||||
value: 'lightning-dmg',
|
||||
label: 'Lightning DMG',
|
||||
},
|
||||
{ icon: 'feature-icons/freeze', value: 'freeze', label: 'Freeze' },
|
||||
{ icon: 'feature-icons/paralyze', value: 'paralyze', label: 'Paralyze' },
|
||||
{ icon: 'feature-icons/stun', value: 'stun', label: 'Stun' },
|
||||
{ icon: 'feature-icons/ignite', value: 'ignite', label: 'Ignite' },
|
||||
{ icon: 'feature-icons/bleed', value: 'bleed', label: 'Bleed' },
|
||||
{ icon: 'feature-icons/heavy-atk', value: 'heavy-atk', label: 'heavy-atk' },
|
||||
{ icon: 'feature-icons/weaken', value: 'weaken', label: 'Weaken' },
|
||||
{ icon: 'feature-icons/impair', value: 'impair', label: 'Impair' },
|
||||
{
|
||||
icon: 'feature-icons/time-mastery',
|
||||
value: 'time mastery',
|
||||
label: 'Time Mastery',
|
||||
},
|
||||
{ icon: 'feature-icons/gather', value: 'gather', label: 'Gather' },
|
||||
{ icon: 'feature-icons/heal', value: 'heal', label: 'Heal' },
|
||||
{ icon: 'feature-icons/fast-atk', value: 'fast atk', label: 'Fast ATK' },
|
||||
{ icon: 'feature-icons/burst', value: 'burst', label: 'Burst' },
|
||||
{ icon: 'feature-icons/aerial', value: 'aerial', label: 'Aerial' },
|
||||
]
|
||||
Reference in New Issue
Block a user