Skip to content

Commit aa2ee95

Browse files
committed
feat(core): add falsy values handling
ensure isValueProvider returns true for falsy values
1 parent 75b4577 commit aa2ee95

2 files changed

Lines changed: 30 additions & 1 deletion

File tree

packages/core/injector/helpers/provider-classifier.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ import {
44
Provider,
55
ValueProvider,
66
} from '@nestjs/common';
7+
import { isUndefined } from '@nestjs/common/utils/shared.utils';
78

89
export function isClassProvider(provider: Provider): boolean {
910
return Boolean((provider as ClassProvider)?.useClass);
1011
}
1112

1213
export function isValueProvider(provider: Provider): boolean {
13-
return Boolean((provider as ValueProvider)?.useValue);
14+
const providerValue = (provider as ValueProvider)?.useValue;
15+
return !isUndefined(providerValue);
1416
}
1517

1618
export function isFactoryProvider(provider: Provider): boolean {

packages/core/test/injector/helpers/provider-classifier.spec.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,33 @@ describe('provider classifier', () => {
5151
expect(isValueProvider(valueProvider)).to.be.true;
5252
});
5353

54+
it('should return true if useValue is "false"', () => {
55+
const valueProvider: ValueProvider = {
56+
useValue: false,
57+
provide: 'token',
58+
};
59+
60+
expect(isValueProvider(valueProvider)).to.be.true;
61+
});
62+
63+
it('should return true if useValue is "null"', () => {
64+
const valueProvider: ValueProvider = {
65+
useValue: null,
66+
provide: 'token',
67+
};
68+
69+
expect(isValueProvider(valueProvider)).to.be.true;
70+
});
71+
72+
it('should return true if useValue is an empty string', () => {
73+
const valueProvider: ValueProvider = {
74+
useValue: null,
75+
provide: '',
76+
};
77+
78+
expect(isValueProvider(valueProvider)).to.be.true;
79+
});
80+
5481
it('should return false if useValue is undefined', () => {
5582
const valueProvider: ValueProvider = {
5683
useValue: undefined,

0 commit comments

Comments
 (0)