If you're applying a replacer, then you'd supply a reviver when parsing:
const json = '{ "a": 9007199254740993 }' JSON.parse(json, (_key, value, context) => /^\d+$/.test(context.source) ? BigInt(context.source) : value)
Yeah but now you have the world's biggest foot gun in your API.
Yeah but now you have the world's biggest foot gun in your API.