From 94c4fedc06e20051e4123508e3134b97eb84782a Mon Sep 17 00:00:00 2001 From: PalmDevs Date: Fri, 23 Aug 2024 17:36:32 +0700 Subject: [PATCH] fix(bots/discord): replace duration parser with a library --- bots/discord/package.json | 3 ++- bots/discord/src/utils/duration.ts | 16 ++-------------- bun.lockb | Bin 285592 -> 285960 bytes 3 files changed, 4 insertions(+), 15 deletions(-) diff --git a/bots/discord/package.json b/bots/discord/package.json index e3e75dd..a6ccb27 100644 --- a/bots/discord/package.json +++ b/bots/discord/package.json @@ -35,7 +35,8 @@ "chalk": "^5.3.0", "decancer": "^3.2.3", "discord.js": "^14.15.3", - "drizzle-orm": "^0.31.4" + "drizzle-orm": "^0.31.4", + "parse-duration": "^1.1.0" }, "devDependencies": { "@libsql/client": "^0.7.0", diff --git a/bots/discord/src/utils/duration.ts b/bots/discord/src/utils/duration.ts index 64e672c..4f4e129 100644 --- a/bots/discord/src/utils/duration.ts +++ b/bots/discord/src/utils/duration.ts @@ -1,18 +1,6 @@ -export const parseDuration = (duration: string) => { - if (!duration.length) return Number.NaN - const matches = duration.match(/(?:(\d+y)?(\d+M)?(\d+w)?(\d+)d)?(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s?)/)! +import parse from 'parse-duration' - const [, years, months, weeks, days, hours, minutes, seconds] = matches.map(Number) - return ( - (years || 0) * 290304e5 + - (months || 0) * 24192e5 + - (weeks || 0) * 6048e5 + - (days || 0) * 864e5 + - (hours || 0) * 36e5 + - (minutes || 0) * 6e4 + - (seconds || 0) * 1e3 - ) -} +export const parseDuration = (duration: string) => parse(duration, 'ms') ?? Number.NaN export const durationToString = (duration: number) => { if (duration === 0) return '0s' diff --git a/bun.lockb b/bun.lockb index 991adf7bad9ad683c08087bed31fbe94183c3ebd..c8ffb651f93a0c3471f63571186eb5f34aa6c0db 100755 GIT binary patch delta 11591 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 N6djpA{bLl%asah`^HKl+ delta 11387 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