From 8d4bb2078290c707c1d9da0b53794c2bb66bc96d Mon Sep 17 00:00:00 2001 From: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> Date: Thu, 27 Oct 2022 11:54:27 -0500 Subject: [PATCH 1/3] fix(Transfomers): call `.toJSON` in `toSnakeCase` Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> --- packages/discord.js/src/util/Transformers.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/discord.js/src/util/Transformers.js b/packages/discord.js/src/util/Transformers.js index 63edd0689549..edf9bf1f7c7e 100644 --- a/packages/discord.js/src/util/Transformers.js +++ b/packages/discord.js/src/util/Transformers.js @@ -1,5 +1,6 @@ 'use strict'; +const { isJSONEncodable } = require('@discordjs/util'); const snakeCase = require('lodash.snakecase'); /** @@ -9,6 +10,7 @@ const snakeCase = require('lodash.snakecase'); */ function toSnakeCase(obj) { if (typeof obj !== 'object' || !obj) return obj; + if (isJSONEncodable(obj)) return obj.toJSON(); if (obj instanceof Date) return obj; if (Array.isArray(obj)) return obj.map(toSnakeCase); return Object.fromEntries(Object.entries(obj).map(([key, value]) => [snakeCase(key), toSnakeCase(value)])); From 2e12550f5038be9c9440d568c0f93200b441e156 Mon Sep 17 00:00:00 2001 From: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> Date: Thu, 27 Oct 2022 16:56:25 -0500 Subject: [PATCH 2/3] fix: move it under the Date check Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> --- packages/discord.js/src/util/Transformers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/discord.js/src/util/Transformers.js b/packages/discord.js/src/util/Transformers.js index edf9bf1f7c7e..0e130c83d7c2 100644 --- a/packages/discord.js/src/util/Transformers.js +++ b/packages/discord.js/src/util/Transformers.js @@ -10,8 +10,8 @@ const snakeCase = require('lodash.snakecase'); */ function toSnakeCase(obj) { if (typeof obj !== 'object' || !obj) return obj; - if (isJSONEncodable(obj)) return obj.toJSON(); if (obj instanceof Date) return obj; + if (isJSONEncodable(obj)) return obj.toJSON(); if (Array.isArray(obj)) return obj.map(toSnakeCase); return Object.fromEntries(Object.entries(obj).map(([key, value]) => [snakeCase(key), toSnakeCase(value)])); } From 2b4ccc222d7216a8d88c4f1978b639a09f4b1c2f Mon Sep 17 00:00:00 2001 From: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> Date: Mon, 31 Oct 2022 16:03:32 -0500 Subject: [PATCH 3/3] fix(toSnakeCase): stop assuming `toJSON` returns snake_case values Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> --- packages/discord.js/src/util/Transformers.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/discord.js/src/util/Transformers.js b/packages/discord.js/src/util/Transformers.js index 0e130c83d7c2..6b096dfc9f9e 100644 --- a/packages/discord.js/src/util/Transformers.js +++ b/packages/discord.js/src/util/Transformers.js @@ -11,7 +11,7 @@ const snakeCase = require('lodash.snakecase'); function toSnakeCase(obj) { if (typeof obj !== 'object' || !obj) return obj; if (obj instanceof Date) return obj; - if (isJSONEncodable(obj)) return obj.toJSON(); + if (isJSONEncodable(obj)) return toSnakeCase(obj.toJSON()); if (Array.isArray(obj)) return obj.map(toSnakeCase); return Object.fromEntries(Object.entries(obj).map(([key, value]) => [snakeCase(key), toSnakeCase(value)])); }