From eee98516dd09516f1c1cf891526339420807d50c Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Tue, 21 Feb 2023 11:56:56 +1100 Subject: Fix gateway encoding Date objects as {} when using erlpack. Fixes NaN/NaN/NaN timestamps in desktop client --- src/util/util/JSON.ts | 15 +++++++++++++++ src/util/util/index.ts | 1 + 2 files changed, 16 insertions(+) create mode 100644 src/util/util/JSON.ts (limited to 'src/util') diff --git a/src/util/util/JSON.ts b/src/util/util/JSON.ts new file mode 100644 index 00000000..b092eb88 --- /dev/null +++ b/src/util/util/JSON.ts @@ -0,0 +1,15 @@ +// Discord.com sends ISO strings with +00:00 extension, not Z +// This causes issues with Python bot libs +const JSONReplacer = function ( + this: { [key: string]: unknown }, + key: string, + value: unknown, +) { + if (this[key] instanceof Date) { + return (this[key] as Date).toISOString().replace("Z", "+00:00"); + } + + return value; +}; + +export { JSONReplacer }; diff --git a/src/util/util/index.ts b/src/util/util/index.ts index 543a49a9..6eb686d0 100644 --- a/src/util/util/index.ts +++ b/src/util/util/index.ts @@ -40,3 +40,4 @@ export * from "./TraverseDirectory"; export * from "./InvisibleCharacters"; export * from "./Sentry"; export * from "./WebAuthn"; +export * from "./JSON"; -- cgit 1.5.1