diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2021-04-13 00:52:32 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2021-04-13 00:52:32 -0500 |
| commit | f3619b20e1c5baa342eb7466c67c44d3192bb3eb (patch) | |
| tree | 64a6981599ddcb9fa8ede5364770e1f145c1086f /src/features | |
| parent | 67b7f56f9aeaf5d32cc07d0d776d2e4e95dea21c (diff) | |
Initial TypeScript refactoring
Diffstat (limited to 'src/features')
| -rw-r--r-- | src/features/parser.ts (renamed from src/features/parser.js) | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/features/parser.js b/src/features/parser.ts index f91d926..6ad1921 100644 --- a/src/features/parser.js +++ b/src/features/parser.ts @@ -2,7 +2,7 @@ import Lab from '@/models/Lab'; import PeerTeacher from '@/models/PeerTeacher'; import EventInfo from '../models/EventInfo'; -export function parseLabFile(file) { +export function parseLabFile(file: File): Promise<Lab[]> { const validCourses = [ '110', '111', @@ -19,23 +19,23 @@ export function parseLabFile(file) { const reader = new FileReader(); return new Promise((resolve, reject) => { - const result = []; + const result: Lab[] = []; reader.onload = (event) => { let jsonData; try { - jsonData = JSON.parse(event.target.result); + jsonData = JSON.parse(event.target!.result as string); } catch (e) { reject(new Error(e)); } const labs = jsonData.data; - labs.forEach((lab) => { + labs.forEach((lab: any) => { if (validCourses.includes(lab.courseNumber)) { const newLab = new Lab(lab.courseNumber, lab.sequenceNumber); if (lab.instructionalMethod !== 'Web Based') { - lab.meetingsFaculty.every((meeting) => { + lab.meetingsFaculty.every((meeting: any) => { const { meetingTime } = meeting; if (meetingTime.meetingType === 'LAB') { @@ -68,7 +68,7 @@ export function parseLabFile(file) { }); } -export function parsePtSchedule(file) { +export function parsePtSchedule(file: File): Promise<PeerTeacher> { const reader = new FileReader(); return new Promise((resolve) => { @@ -76,7 +76,7 @@ export function parsePtSchedule(file) { const peerTeacher = new PeerTeacher(); const namePattern = /^(.*)\s(.*)\s(\d{9})/; const eventPattern = /^(M?T?W?R?F?)\s(\d{1,2}:\d{2})\s?-\s?(\d{1,2}:\d{2})/; - const lines = event.target.result.split('\n').filter((line) => line.trim()); + const lines = (event.target!.result as string).split('\n').filter((line) => line.trim()); lines.forEach((line) => { const ptName = line.match(namePattern); @@ -101,12 +101,15 @@ export function parsePtSchedule(file) { }); } -export function parsePtDatabase(file) { +export function parsePtDatabase(file: File): Promise<{ + labs: Map<string, Lab>, + peerTeachers: Map<number, PeerTeacher> +}> { const reader = new FileReader(); return new Promise((resolve) => { reader.onload = (event) => { - const jsonObj = JSON.parse(event.target.result); + const jsonObj = JSON.parse(event.target!.result as string); const result = { labs: new Map(), peerTeachers: new Map(), @@ -121,10 +124,10 @@ export function parsePtDatabase(file) { Object.keys(jsonObj.peerTeachers).forEach((key) => { const pt = jsonObj.peerTeachers[key]; const ptObj = new PeerTeacher(pt.firstname, pt.lastname, pt.uin); - ptObj.events = pt.events.map((eventObj) => new EventInfo(eventObj.days, + ptObj.events = pt.events.map((eventObj: any) => new EventInfo(eventObj.days, eventObj.start, eventObj.end)); ptObj.assignedLabs = new Set(); - pt.assignedLabs.forEach((labId) => { + pt.assignedLabs.forEach((labId: string) => { ptObj.assignedLabs.add(labId); }); result.peerTeachers.set(key, ptObj); |
