import type { BuiltInObject } from "@effect-ts/core/Utils" import type { Primitive } from "./Widen.type.js" // Get rid of Date | string, and replace with Date | null export type Inputify = Date extends T ? string extends T ? Date | null : Date | null : [T] extends [BuiltInObject] | [Primitive] ? T : [T] extends [Array] ? { [K in keyof T]: Inputify } : [T] extends [ReadonlyArray] ? { [K in keyof T]: Inputify } : // eslint-disable-next-line @typescript-eslint/ban-types [T] extends [object] ? { [K in keyof T]: Inputify } : T