From 3366610c5d4cf6c5b3a4893828500b6d3dfea4ad Mon Sep 17 00:00:00 2001 From: Starcea Date: Sun, 14 Jul 2024 20:50:06 +0900 Subject: [PATCH] fix: handle edge case when original class is undefined --- src/client.ts | 25 ++++++++++++------------- src/index.ts | 2 +- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/client.ts b/src/client.ts index 4314ec8..8e92a1b 100644 --- a/src/client.ts +++ b/src/client.ts @@ -56,30 +56,29 @@ export default class Comcigan { const teachersLen = Math.floor(Math.log10(teachers.length - 1)) + 1 const subjects = data[`자료${subjectCode}`] as string[] - const original = data[`자료${originalCode}`] as number[][][][] + const original = data[`자료${originalCode}`] as (number | undefined)[][][][] const day = data[`자료${dayCode}`] as number[][][][] + const getSubject = (code: number) => + subjects[Number(code.toString().slice(0, -teachersLen - 1))] + const getTeacher = (code: number) => + teachers[Number(code.toString().slice(-teachersLen))] + return day.slice(1).map((grade, gIdx) => grade.slice(1).map((cls, cIdx) => cls.slice(1).map((day, dIdx) => day.slice(1).map((period, pIdx) => { - const p = period.toString() - const origin = - original[gIdx + 1][cIdx + 1][dIdx + 1][pIdx + 1].toString() - const changed = p !== origin + const origin = original[gIdx + 1][cIdx + 1][dIdx + 1][pIdx + 1] + const changed = period !== origin return { - subject: subjects[Number(p.slice(0, p.length - teachersLen - 1))], - teacher: teachers[Number(p.slice(-teachersLen))], + subject: getSubject(period), + teacher: getTeacher(period), changed, ...(changed ? { - originalSubject: - subjects[ - Number(origin.slice(0, origin.length - teachersLen - 1)) - ], - originalTeacher: - teachers[Number(origin.slice(-teachersLen))], + originalSubject: origin ? getSubject(origin) : '없음', + originalTeacher: origin ? getTeacher(origin) : '없음', } : {}), } as Timetable diff --git a/src/index.ts b/src/index.ts index 306c94e..8b0d573 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,5 +2,5 @@ export { default } from './client' export { default as Region } from './models/Region' export { default as School } from './models/School' -export { default as Timetable } from './models/Timetable' +export { Timetable } from './models/Timetable' export { Weekday } from './constants'