From d3c248222892c8eaf7570c444ccb13a9905a3af7 Mon Sep 17 00:00:00 2001 From: yijie4188 Date: Wed, 21 Feb 2024 23:18:39 +0800 Subject: [PATCH] fix(validator): reset boolean transform logic --- .../validator/src/types/primitive.boolean.ts | 42 ++++++++++++++----- 1 file changed, 32 insertions(+), 10 deletions(-) diff --git a/packages/validator/src/types/primitive.boolean.ts b/packages/validator/src/types/primitive.boolean.ts index d474210..0ea9bd3 100644 --- a/packages/validator/src/types/primitive.boolean.ts +++ b/packages/validator/src/types/primitive.boolean.ts @@ -1,4 +1,4 @@ -import type { IsEqual, Switch, t as tn } from '@typp/core' +import type { IsEqual, IsIntersect, Switch, t as tn } from '@typp/core' import { FALSY } from '../base' import { preprocess } from '../utils.inner' @@ -16,24 +16,46 @@ declare module '@typp/core' { [T] extends [boolean] ? true : false, Switch<{ any: [IsEqual, unknown] - bigint: [ - [Input] extends [bigint] ? true : false, - boolean + boolean: [ + true extends ( + | IsIntersect + | IsIntersect + | IsIntersect + ) ? true : false, + [InputRest] extends [never] ? ( + Input extends infer UnionInputItem ? ( + IsEqual extends true + ? boolean + : Extract + ) : never + ) : never ] - self: [ - [Input] extends [boolean] ? true : false, + bigint: [ + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, boolean ] number: [ - [Input] extends [number] ? true : false, + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, boolean ] string: [ - [Input] extends [string] ? true : false, - boolean, + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, + boolean ] nullOrUndefined: [ - [Input] extends [null | undefined] ? true : false, + true extends ( + | IsIntersect + | IsIntersect + ) ? true : false, false ] }>