From 81cc1057b4be7f33d709e996133a371836ff0290 Mon Sep 17 00:00:00 2001 From: Vivy Bot Date: Thu, 5 Feb 2026 22:20:25 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20handle=20bigint=20with=20?= =?UTF-8?q?json=20serialize=20helper?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/helpers/characters/serializeBigInt.ts | 5 +++++ .../episode/repositories/GET/getEpisodeDetails.repository.ts | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 src/helpers/characters/serializeBigInt.ts diff --git a/src/helpers/characters/serializeBigInt.ts b/src/helpers/characters/serializeBigInt.ts new file mode 100644 index 0000000..5a24683 --- /dev/null +++ b/src/helpers/characters/serializeBigInt.ts @@ -0,0 +1,5 @@ +export const serializeBigInt = (data: T): T => { + return JSON.parse( + JSON.stringify(data, (_, v) => (typeof v === "bigint" ? Number(v) : v)), + ); +}; diff --git a/src/modules/episode/repositories/GET/getEpisodeDetails.repository.ts b/src/modules/episode/repositories/GET/getEpisodeDetails.repository.ts index 216f35d..7a582bf 100644 --- a/src/modules/episode/repositories/GET/getEpisodeDetails.repository.ts +++ b/src/modules/episode/repositories/GET/getEpisodeDetails.repository.ts @@ -1,3 +1,4 @@ +import { serializeBigInt } from "../../../../helpers/characters/serializeBigInt"; import { AppError } from "../../../../helpers/error/instances/app"; import { episodeModel } from "../../episode.model"; @@ -6,7 +7,7 @@ export const getEpisodeDetailsRepository = async (payload: { episode: number; }) => { try { - return await episodeModel.findUnique({ + const result = await episodeModel.findUnique({ where: { mediaId_episode: { mediaId: payload.mediaId, @@ -57,6 +58,8 @@ export const getEpisodeDetailsRepository = async (payload: { }, }, }); + + return serializeBigInt(result); } catch (error) { throw new AppError(500, "Failed to fetch episode details.", error); }