Make tsc happy when using strings as Date in embed

Validation on embeds has interesting behavior. Embeds have a `timestamp`
property that is of type `Date`. However when providing a Date,
`WebhookExecuteSchema` silently ends the operation.

The resolution was to use strings and to annotate them with `//
@ts-expect-error`. This was not my first choice, but it was the best
option I saw.

The other option is to allow `Embeds` to pass strings as a timestamp but
I'd want a second opinion before making that change.
This commit is contained in:
Zane Helton 2025-06-29 11:34:57 -04:00
parent 9143c1d408
commit 590331518c
2 changed files with 22 additions and 2 deletions

View File

@ -29,6 +29,7 @@ const parseGitHubWebhook = (
req.body = discordPayload;
// Set default wait=true for GitHub webhooks so they get a response
req.query.wait = req.query.wait || "true";
next();
};
@ -51,6 +52,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -67,6 +69,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -83,6 +86,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -99,6 +103,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -115,6 +120,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -131,6 +137,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -150,6 +157,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -166,6 +174,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -182,6 +191,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -201,6 +211,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -222,6 +233,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -238,6 +250,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -258,7 +271,8 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// TODO: Improve this by adding fields for recent commits
// TODO: Improve this by adding `fields` to show recent commits
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -276,6 +290,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -292,6 +307,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -314,6 +330,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -336,6 +353,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -352,6 +370,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],
@ -368,6 +387,7 @@ function transformGitHubToDiscord(
thumbnail: {
url: payload.sender?.avatar_url,
},
// @ts-expect-error Validate using string in schema
timestamp: new Date().toISOString(),
},
],

View File

@ -74,7 +74,7 @@ const messageUpload = multer({
router.post(
"/",
messageUpload.any(),
(req, res, next) => {
(req, _res, next) => {
if (req.body.payload_json) {
req.body = JSON.parse(req.body.payload_json);
}