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:
parent
9143c1d408
commit
590331518c
@ -29,6 +29,7 @@ const parseGitHubWebhook = (
|
|||||||
req.body = discordPayload;
|
req.body = discordPayload;
|
||||||
// Set default wait=true for GitHub webhooks so they get a response
|
// Set default wait=true for GitHub webhooks so they get a response
|
||||||
req.query.wait = req.query.wait || "true";
|
req.query.wait = req.query.wait || "true";
|
||||||
|
|
||||||
next();
|
next();
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -51,6 +52,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -67,6 +69,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -83,6 +86,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -99,6 +103,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -115,6 +120,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -131,6 +137,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -150,6 +157,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -166,6 +174,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -182,6 +191,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -201,6 +211,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -222,6 +233,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -238,6 +250,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -258,7 +271,8 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
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(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -276,6 +290,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -292,6 +307,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -314,6 +330,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -336,6 +353,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -352,6 +370,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
@ -368,6 +387,7 @@ function transformGitHubToDiscord(
|
|||||||
thumbnail: {
|
thumbnail: {
|
||||||
url: payload.sender?.avatar_url,
|
url: payload.sender?.avatar_url,
|
||||||
},
|
},
|
||||||
|
// @ts-expect-error Validate using string in schema
|
||||||
timestamp: new Date().toISOString(),
|
timestamp: new Date().toISOString(),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@ -74,7 +74,7 @@ const messageUpload = multer({
|
|||||||
router.post(
|
router.post(
|
||||||
"/",
|
"/",
|
||||||
messageUpload.any(),
|
messageUpload.any(),
|
||||||
(req, res, next) => {
|
(req, _res, next) => {
|
||||||
if (req.body.payload_json) {
|
if (req.body.payload_json) {
|
||||||
req.body = JSON.parse(req.body.payload_json);
|
req.body = JSON.parse(req.body.payload_json);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user