From 527b9a83949bdeca7c3ee3c31061767ae848ce4d Mon Sep 17 00:00:00 2001 From: Avior Date: Wed, 2 Apr 2025 14:01:02 +0200 Subject: [PATCH] fix: nullable not correctly parsing value --- src/items/nullable.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/items/nullable.ts b/src/items/nullable.ts index 2cb6cd8..9afbe46 100644 --- a/src/items/nullable.ts +++ b/src/items/nullable.ts @@ -17,7 +17,12 @@ export default class SchemaNullable extends SchemaItem< } public override parse(input: unknown, options?: { fast?: boolean }): ValidationResult | undefined> { - if (this.isNull(input)) { + const res = super.parse(input, options) + if (!res.valid) { + return res + } + + if (this.isNull(res.object)) { return { valid: true, object: undefined @@ -28,7 +33,7 @@ export default class SchemaNullable extends SchemaItem< } public override isOfType(input: unknown): input is SchemaInfer | undefined { - return Array.isArray(input) + return this.isNull(input) || this.child.isOfType(input) } private isNull(value: unknown): value is undefined | null {