From 2f637db5af20edd7ca808c4a26e15d03adf29551 Mon Sep 17 00:00:00 2001 From: intellild Date: Fri, 29 Jul 2022 03:25:33 +0000 Subject: [PATCH] allow 'undefined' value for value provider --- src/__tests__/global-container.test.ts | 7 +++++++ src/providers/value-provider.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/__tests__/global-container.test.ts b/src/__tests__/global-container.test.ts index 5685d03..b6d68f3 100644 --- a/src/__tests__/global-container.test.ts +++ b/src/__tests__/global-container.test.ts @@ -553,6 +553,13 @@ test("registers by value provider", () => { expect(globalContainer.isRegistered(registration.token)).toBeTruthy(); }); +test("value provider with 'undefined' value should work fine", () => { + globalContainer.register("Foo", { + useValue: undefined + }); + expect(globalContainer.resolve("Foo")).toBe(undefined); +}); + test("registers by token provider", () => { const registration = { token: "IBar", diff --git a/src/providers/value-provider.ts b/src/providers/value-provider.ts index 63fef06..c704b40 100644 --- a/src/providers/value-provider.ts +++ b/src/providers/value-provider.ts @@ -7,5 +7,5 @@ export default interface ValueProvider { export function isValueProvider( provider: Provider ): provider is ValueProvider { - return (provider as ValueProvider).useValue != undefined; + return Object.prototype.hasOwnProperty.call(provider, "useValue"); }