Skip to content

Commit 8e47ec0

Browse files
committed
refactor: [#297] refactored error control
1 parent f6ff259 commit 8e47ec0

File tree

1 file changed

+11
-23
lines changed

1 file changed

+11
-23
lines changed

src/helpers/DateConverter.ts

+11-23
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,22 @@
11
type UnixTime = number;
22

33
class InvalidDateError extends Error {}
4+
class WrongTimestamp extends Error {}
45

56
// Takes the date in seconds from Epoch time and converts it to human readable format.
67

78
export function unixTimeToHumanReadableUTC (creationDate: UnixTime) {
9+
let milliseconds;
10+
let convertedDate;
811
try {
9-
return dateFromSeconds(creationDate);
12+
milliseconds = creationDate * 1000;
1013
} catch (error) {
11-
return ("Invalid date");
14+
return new WrongTimestamp(`Could not convert ${creationDate} to milliseconds`);
1215
}
13-
}
14-
15-
function dateFromSeconds (seconds: number) {
16-
if (!validateTimestamp(seconds))
17-
{ throw new TypeError("Torrent creation date is not an integer"); }
18-
19-
const milliseconds = seconds * 1000;
20-
const convertedDate = new Date(milliseconds);
21-
22-
if (!validateDate(convertedDate))
23-
{ throw new InvalidDateError("Date is not valid"); }
24-
25-
return convertedDate.toDateString();
26-
}
27-
28-
function validateDate (date: Date) {
29-
return date instanceof Date && !isNaN(date.valueOf());
30-
}
31-
32-
function validateTimestamp (timestamp: UnixTime) {
33-
return Number.isInteger(timestamp);
16+
try {
17+
convertedDate = new Date(milliseconds);
18+
} catch (error) {
19+
return new InvalidDateError(`Could not create a new date from ${milliseconds}`);
20+
}
21+
return !isNaN(convertedDate.valueOf()) ? convertedDate.toDateString() : new InvalidDateError(`Could not create a valid date from ${milliseconds}`);
3422
}

0 commit comments

Comments
 (0)