Replace thirdparty parse-ms with my own, and add tests
All checks were successful
CI / CI (push) Successful in 16s

This commit is contained in:
SileNce5k 2024-10-28 01:43:27 +01:00
parent 5081b9fec9
commit 906c0d86c0
Signed by: SileNce
GPG key ID: B0A142BB4291B204
5 changed files with 900071 additions and 11 deletions

10
package-lock.json generated
View file

@ -13,7 +13,6 @@
"discord.js": "^14.16.3",
"dotenv": "^16.4.5",
"mysql": "^2.18.1",
"parse-ms": "^2.1.0",
"prompt-sync": "^4.2.0",
"seedrandom": "^3.0.5",
"sqlite3": "^5.1.6",
@ -4394,15 +4393,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/parse-ms": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz",
"integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",

View file

@ -8,7 +8,6 @@
"discord.js": "^14.16.3",
"dotenv": "^16.4.5",
"mysql": "^2.18.1",
"parse-ms": "^2.1.0",
"prompt-sync": "^4.2.0",
"seedrandom": "^3.0.5",
"sqlite3": "^5.1.6",

File diff suppressed because it is too large Load diff

12
tests/parse-ms.test.js Normal file
View file

@ -0,0 +1,12 @@
const parseMS = require('../util/parseMS')
const fs = require('fs')
const file = 'tests/expected/parse-ms-expected.json';
const expectedOutput = JSON.parse(fs.readFileSync(file, {encoding: "utf-8"}));
test("Testing my parseMS", () => {
for(let i = 0; i < expectedOutput.length; i++){
const ms = i * i * 2;
expect(parseMS(ms)).toStrictEqual(expectedOutput[i])
}
})

57
util/parseMS.js Normal file
View file

@ -0,0 +1,57 @@
module.exports = function(milliseconds){
let timeObject = {
"days": 0,
"hours": 0,
"minutes": 0,
"seconds": 0,
"milliseconds": 0,
"microseconds": 0,
"nanoseconds": 0
};
const timeInMS = {
"seconds" : 1000,
"minutes" : 60000,
"hours" : 3600000,
"days" : 86400000,
}
if(milliseconds >= timeInMS.days){
timeObject.days = Math.floor(milliseconds / timeInMS.days);
milliseconds -= Math.floor(timeInMS.days * timeObject.days);
}
if(milliseconds >= timeInMS.hours){
timeObject.hours = Math.floor(milliseconds / timeInMS.hours);
milliseconds -= Math.floor(timeInMS.hours * timeObject.hours);
}
if(milliseconds >= timeInMS.minutes){
timeObject.minutes = Math.floor(milliseconds / timeInMS.minutes);
milliseconds -= Math.floor(timeInMS.minutes * timeObject.minutes);
}
if(milliseconds >= timeInMS.seconds){
timeObject.seconds = Math.floor(milliseconds / timeInMS.seconds);
milliseconds -= Math.floor(timeInMS.seconds * timeObject.seconds);
}
timeObject.milliseconds = milliseconds;
return timeObject;
}
/*
{
"days": 0,
"hours": 0,
"minutes": 0,
"seconds": 0,
"milliseconds": 0,
"microseconds": 0,
"nanoseconds": 0
},
*/