From 017f9b1ed4014dc1db0b78c1a77e463b4403de5d Mon Sep 17 00:00:00 2001 From: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> Date: Sat, 19 Nov 2022 15:01:41 -0600 Subject: [PATCH] fix(Transfomers): call `.toJSON` in `toSnakeCase` (#8790) * fix(Transfomers): call `.toJSON` in `toSnakeCase` Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> * fix: move it under the Date check Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> * fix(toSnakeCase): stop assuming `toJSON` returns snake_case values Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> Signed-off-by: RedGuy12 <61329810+RedGuy12@users.noreply.github.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@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..6b096dfc9f9e 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'); /** @@ -10,6 +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 toSnakeCase(obj.toJSON()); if (Array.isArray(obj)) return obj.map(toSnakeCase); return Object.fromEntries(Object.entries(obj).map(([key, value]) => [snakeCase(key), toSnakeCase(value)])); }