diff --git a/src/utils/types.ts b/src/utils/types.ts index 8ca1c57f42..056fa5c7d2 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -50,18 +50,16 @@ export type JSONValue = JSONObject | JSONArray | JSONPrimitive * which defaults to `bigint | ReadonlyArray`. * You can set it to `never` to disable this check. */ -export type JSONParsed> = T extends { - toJSON(): infer J -} - ? (() => J) extends () => JSONPrimitive - ? J - : (() => J) extends () => { toJSON(): unknown } - ? {} - : JSONParsed - : T extends JSONPrimitive - ? T - : T extends InvalidJSONValue - ? never +export type JSONParsed> = T extends JSONPrimitive + ? T + : T extends InvalidJSONValue + ? never + : T extends { toJSON(): infer J } + ? (() => J) extends () => JSONPrimitive + ? J + : (() => J) extends () => { toJSON(): unknown } + ? {} + : JSONParsed : T extends ReadonlyArray ? { [K in keyof T]: JSONParsed, TError> } : T extends Set | Map | Record