aboutsummaryrefslogtreecommitdiff
path: root/services/docker/mail-server/relay/util.ts
diff options
context:
space:
mode:
Diffstat (limited to 'services/docker/mail-server/relay/util.ts')
-rw-r--r--services/docker/mail-server/relay/util.ts46
1 files changed, 11 insertions, 35 deletions
diff --git a/services/docker/mail-server/relay/util.ts b/services/docker/mail-server/relay/util.ts
index 29cda8b..3f7f989 100644
--- a/services/docker/mail-server/relay/util.ts
+++ b/services/docker/mail-server/relay/util.ts
@@ -1,25 +1,17 @@
-function getZonedDateTime(instant?: Temporal.Instant | Date) {
- if (instant == null) {
- instant = Temporal.Now.instant();
- } else if (instant instanceof Date) {
- instant = instant.toTemporalInstant();
+declare global {
+ interface Date {
+ toFileNameString(dateOnly?: boolean): string;
}
-
- return instant.toZonedDateTimeISO("UTC");
}
-export function generateTimeStringForFileName(
- instant?: Temporal.Instant | Date,
- dateOnly: boolean = false,
-): string {
- const time = getZonedDateTime(instant);
-
- if (dateOnly) {
- return time.toPlainDate().toString();
- } else {
- return time.toPlainDateTime().toString().replaceAll(/:|\./g, "-");
- }
-}
+Object.defineProperty(Date.prototype, "toFileNameString", {
+ value: function (dateOnly?: boolean) {
+ const str = (this as Date).toISOString();
+ return dateOnly === true
+ ? str.slice(0, str.indexOf("T"))
+ : str.replaceAll(/:|\./g, "-");
+ },
+});
export function transformProperties<T extends object, N>(
object: T,
@@ -32,22 +24,6 @@ export function transformProperties<T extends object, N>(
) as { [k in keyof T]: N };
}
-export function createSingleton<T>(
- name: string,
-): [() => T, (v: T | null) => void] {
- let singleton: T | null = null;
-
- return [
- () => {
- if (singleton == null) {
- throw new Error(`Singleton ${name} is not set now.`);
- }
- return singleton;
- },
- (newValue: T | null) => singleton = newValue,
- ];
-}
-
export function withDefaults<T extends object>(
partial: Partial<T> | null | undefined,
defaults: T,