From ad2a653f8dd4a0d65ab6286a8087657dc7651056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Zeutzheim?= Date: Fri, 8 Mar 2024 02:48:43 +0100 Subject: [PATCH] Fix issue in typeSelection.ts when handling nullable non-scalars --- cli/src/runtime/typeSelection.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 }