From d2fd744189b1958b0dbc91a3c984a8408af07c3d Mon Sep 17 00:00:00 2001 From: Arnaud Date: Mon, 23 Sep 2024 22:48:02 +0200 Subject: [PATCH] Use strings utility --- src/sdk/codex.ts | 4 +-- src/utils/strings.ts | 3 +++ src/utils/times.ts | 59 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 src/utils/strings.ts create mode 100644 src/utils/times.ts diff --git a/src/sdk/codex.ts b/src/sdk/codex.ts index a15e726..489ece3 100644 --- a/src/sdk/codex.ts +++ b/src/sdk/codex.ts @@ -1,8 +1,8 @@ import { Codex } from "@codex-storage/sdk-js"; import { WebStorage } from "../utils/web-storage"; -let client: Codex; -let url: string; +let client: Codex = new Codex(import.meta.env.VITE_CODEX_API_URL); +let url: string = import.meta.env.VITE_CODEX_API_URL; export const CodexSdk = { url() { diff --git a/src/utils/strings.ts b/src/utils/strings.ts new file mode 100644 index 0000000..82030f9 --- /dev/null +++ b/src/utils/strings.ts @@ -0,0 +1,3 @@ +export const Strings = { + shortId: (id: string) => id.slice(0, 5) + "..." + id.slice(-5), +}; diff --git a/src/utils/times.ts b/src/utils/times.ts new file mode 100644 index 0000000..4d50b3c --- /dev/null +++ b/src/utils/times.ts @@ -0,0 +1,59 @@ +export type TimesUnit = + | "days" + | "months" + | "years" + | "minutes" + | "hours" + | "seconds"; + +const plural = (value: number, unit: TimesUnit) => + value > 1 ? value + ` ${unit}` : value + ` ${unit.slice(0, -1)}`; + +export const Times = { + toSeconds(value: number, unit: TimesUnit) { + let seconds = value; + switch (unit) { + case "years": + seconds *= 365; + case "months": + seconds *= 30; + case "days": + seconds *= 24; + case "hours": + seconds *= 60; + case "minutes": + seconds *= 60; + } + + return seconds; + }, + + pretty(value: number) { + let seconds = 365 * 30 * 24 * 60 * 60; + if (value >= seconds) { + return plural(value / seconds, "years"); + } + + seconds /= 365; + if (value >= seconds) { + return plural(value / seconds, "months"); + } + + seconds /= 30; + if (value >= seconds) { + return plural(value / seconds, "days"); + } + + seconds /= 24; + if (value >= seconds) { + return plural(value / seconds, "hours"); + } + + seconds /= 60; + if (value >= seconds) { + return plural(value / seconds, "minutes"); + } + + return plural(value, "seconds"); + }, +};