Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
35 lines
1019 B
Plaintext
35 lines
1019 B
Plaintext
import type {
|
|
ZodArray,
|
|
ZodNullable,
|
|
ZodObject,
|
|
ZodOptional,
|
|
ZodRawShape,
|
|
ZodTuple,
|
|
ZodTupleItems,
|
|
ZodTypeAny,
|
|
} from "../types.js";
|
|
|
|
export namespace partialUtil {
|
|
export type DeepPartial<T extends ZodTypeAny> = T extends ZodObject<ZodRawShape>
|
|
? ZodObject<
|
|
{ [k in keyof T["shape"]]: ZodOptional<DeepPartial<T["shape"][k]>> },
|
|
T["_def"]["unknownKeys"],
|
|
T["_def"]["catchall"]
|
|
>
|
|
: T extends ZodArray<infer Type, infer Card>
|
|
? ZodArray<DeepPartial<Type>, Card>
|
|
: T extends ZodOptional<infer Type>
|
|
? ZodOptional<DeepPartial<Type>>
|
|
: T extends ZodNullable<infer Type>
|
|
? ZodNullable<DeepPartial<Type>>
|
|
: T extends ZodTuple<infer Items>
|
|
? {
|
|
[k in keyof Items]: Items[k] extends ZodTypeAny ? DeepPartial<Items[k]> : never;
|
|
} extends infer PI
|
|
? PI extends ZodTupleItems
|
|
? ZodTuple<PI>
|
|
: never
|
|
: never
|
|
: T;
|
|
}
|