From cb8882f24639e2ea30ce67bf0ff5ba672b780b3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roberto=20Pintos=20L=C3=B3pez?= Date: Fri, 1 Nov 2024 23:59:34 +0100 Subject: [PATCH] fix(common): update LazyServiceIdentifier.is to support nullish values --- .changeset/eight-waves-roll.md | 5 +++ .../models/LazyServiceIdentifier.spec.ts | 40 +++++++++++++++++++ .../services/models/LazyServiceIdentifier.ts | 2 + 3 files changed, 47 insertions(+) create mode 100644 .changeset/eight-waves-roll.md diff --git a/.changeset/eight-waves-roll.md b/.changeset/eight-waves-roll.md new file mode 100644 index 00000000..8fca8e24 --- /dev/null +++ b/.changeset/eight-waves-roll.md @@ -0,0 +1,5 @@ +--- +"@inversifyjs/common": patch +--- + +Updated LazyServiceIdentifier.is to support nullish values diff --git a/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.spec.ts b/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.spec.ts index 5a37dd66..9177289f 100644 --- a/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.spec.ts +++ b/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.spec.ts @@ -15,6 +15,46 @@ describe(LazyServiceIdentifier.name, () => { }); describe('.is', () => { + describe('having a non object', () => { + let valueFixture: unknown; + + beforeAll(() => { + valueFixture = Symbol(); + }); + + describe('when called', () => { + let result: unknown; + + beforeAll(() => { + result = LazyServiceIdentifier.is(valueFixture); + }); + + it('should return false', () => { + expect(result).toBe(false); + }); + }); + }); + + describe('having a null object', () => { + let valueFixture: null; + + beforeAll(() => { + valueFixture = null; + }); + + describe('when called', () => { + let result: unknown; + + beforeAll(() => { + result = LazyServiceIdentifier.is(valueFixture); + }); + + it('should return false', () => { + expect(result).toBe(false); + }); + }); + }); + describe('having an object with islazyServiceIdentifierSymbol property', () => { let valueFixture: LazyServiceIdentifier; diff --git a/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.ts b/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.ts index 49a3e867..fb97a547 100644 --- a/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.ts +++ b/packages/container/libraries/common/src/services/models/LazyServiceIdentifier.ts @@ -18,6 +18,8 @@ export class LazyServiceIdentifier { value: unknown, ): value is LazyServiceIdentifier { return ( + typeof value === 'object' && + value !== null && (value as Partial)[ islazyServiceIdentifierSymbol ] === true