import JSONBig from 'json-bigint'; const jsonParser = JSONBig({ storeAsString: true, useNativeBigInt: false, }); function looksLikeJsonPayload(data: string) { const trimmed = data.trim(); return trimmed.startsWith('{') || trimmed.startsWith('['); } export function parseJsonPreservingLong(data: unknown, contentType?: string): T | unknown { if (typeof data !== 'string' || !looksLikeJsonPayload(data)) { return data; } if (contentType && !contentType.toLowerCase().includes('application/json')) { return data; } return jsonParser.parse(data) as T; }