diff --git a/cli/src/runtime/typeSelection.ts b/cli/src/runtime/typeSelection.ts index f3c2a84..f4ce4d9 100644 --- a/cli/src/runtime/typeSelection.ts +++ b/cli/src/runtime/typeSelection.ts @@ -24,12 +24,15 @@ export type FieldsSelection | undefined, DST> = { : never __scalar: Handle__scalar never: never + null: null }[DST extends Nil ? 'never' : DST extends false | 0 ? 'never' : SRC extends Scalar ? 'scalar' + : SRC extends null + ? 'null' : SRC extends any[] ? 'array' : SRC extends { __isUnion?: any } @@ -73,9 +76,9 @@ type Handle__scalar, DST> = SRC extends Nil ? never : Key extends FieldsToRemove ? never - : SRC[Key] extends Scalar - ? Key : Key extends keyof DST + ? (DST[Key] extends false ? never : Key) + : SRC[Key] extends Scalar | null ? Key : never }[keyof SRC] @@ -85,7 +88,7 @@ type Handle__isUnion, DST> = SRC extends Nil ? never : Omit // just return the union type -type Scalar = string | number | Date | boolean | null | undefined +type Scalar = string | number | Date | boolean | undefined type Anify = { [P in keyof T]?: any }