Compare commits

..

2 Commits

Author SHA1 Message Date
abfaedda2d
0.4.1 2025-04-02 14:01:08 +02:00
527b9a8394
fix: nullable not correctly parsing value 2025-04-02 14:01:02 +02:00
3 changed files with 10 additions and 5 deletions

4
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "@dzeio/schema", "name": "@dzeio/schema",
"version": "0.4.0", "version": "0.4.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@dzeio/schema", "name": "@dzeio/schema",
"version": "0.4.0", "version": "0.4.1",
"dependencies": { "dependencies": {
"@dzeio/object-util": "^1.8.3", "@dzeio/object-util": "^1.8.3",
"@standard-schema/spec": "^1.0.0", "@standard-schema/spec": "^1.0.0",

View File

@ -1,6 +1,6 @@
{ {
"name": "@dzeio/schema", "name": "@dzeio/schema",
"version": "0.4.0", "version": "0.4.1",
"dependencies": { "dependencies": {
"@dzeio/object-util": "^1.8.3" "@dzeio/object-util": "^1.8.3"
}, },

View File

@ -17,7 +17,12 @@ export default class SchemaNullable<Type extends SchemaItem> extends SchemaItem<
} }
public override parse(input: unknown, options?: { fast?: boolean }): ValidationResult<SchemaInfer<Type> | undefined> { public override parse(input: unknown, options?: { fast?: boolean }): ValidationResult<SchemaInfer<Type> | undefined> {
if (this.isNull(input)) { const res = super.parse(input, options)
if (!res.valid) {
return res
}
if (this.isNull(res.object)) {
return { return {
valid: true, valid: true,
object: undefined object: undefined
@ -28,7 +33,7 @@ export default class SchemaNullable<Type extends SchemaItem> extends SchemaItem<
} }
public override isOfType(input: unknown): input is SchemaInfer<Type> | undefined { public override isOfType(input: unknown): input is SchemaInfer<Type> | undefined {
return Array.isArray(input) return this.isNull(input) || this.child.isOfType(input)
} }
private isNull(value: unknown): value is undefined | null { private isNull(value: unknown): value is undefined | null {