From 5f8968cd8bee08286c603a8fbac8126d5468f2d3 Mon Sep 17 00:00:00 2001 From: Ilio Catallo Date: Thu, 2 May 2024 16:44:13 +0200 Subject: [PATCH] Fix a bug whereby `null` was wrongly recognised as of type `object` --- src/isValid.ts | 2 +- src/object.test.ts | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/isValid.ts b/src/isValid.ts index b0b04fd..003cbd1 100644 --- a/src/isValid.ts +++ b/src/isValid.ts @@ -53,7 +53,7 @@ function isValidLiteral(schema: LiteralSchema, value: any): boolean { } function isValidObject(schema: ObjectSchema, value: any): boolean { - if (typeof value !== 'object') { + if (typeOf(value) !== 'object') { return false } diff --git a/src/object.test.ts b/src/object.test.ts index 3937867..deed039 100644 --- a/src/object.test.ts +++ b/src/object.test.ts @@ -94,4 +94,12 @@ test(`object marks optional fields by ending keys with ?`, function () { assert.is(res3, true) }) +test(`null is not an object`, function () { + const obj = object({}) + + const res = isValid(obj, null) + + assert.is(res, false) +}) + test.run()