diff options
Diffstat (limited to 'deno/base/lib.ts')
-rw-r--r-- | deno/base/lib.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/deno/base/lib.ts b/deno/base/lib.ts new file mode 100644 index 0000000..3c69e0a --- /dev/null +++ b/deno/base/lib.ts @@ -0,0 +1,30 @@ +function camelCaseToKebabCase(str: string): string { + return str.replace(/[A-Z]/g, (m) => "-" + m.toLowerCase()); +} + +function prependNonEmpty<T>( + object: T, + prefix: string = " ", +): string { + if (object == null) return ""; + const string = typeof object === "string" ? object : String(object); + return string.length === 0 ? "" : prefix + string; +} + +export const StringUtils = Object.freeze({ + camelCaseToKebabCase, + prependNonEmpty, +}); + +function toFileNameString(date: Date, dateOnly?: boolean): string { + const str = date.toISOString(); + return dateOnly === true + ? str.slice(0, str.indexOf("T")) + : str.replaceAll(/:|\./g, "-"); +} + +export const DateUtils = Object.freeze( + { + toFileNameString, + } as const, +); |