fix(compiler): improve error message for undefined providers (#13546)

Closes #10835
This commit is contained in:
Dzmitry Shylovich
2016-12-28 04:05:14 +03:00
committed by Hans
parent 2c0c86e3ce
commit 6b02b80a03
2 changed files with 14 additions and 1 deletions

View File

@ -862,11 +862,14 @@ export class CompileMetadataResolver {
} else {
provider = resolveForwardRef(provider);
let providerMeta: cpl.ProviderMeta;
if (provider && typeof provider == 'object' && provider.hasOwnProperty('provide')) {
if (provider && typeof provider === 'object' && provider.hasOwnProperty('provide')) {
this._validateProvider(provider);
providerMeta = new cpl.ProviderMeta(provider.provide, provider);
} else if (isValidType(provider)) {
providerMeta = new cpl.ProviderMeta(provider, {useClass: provider});
} else if (provider === void 0) {
this._reportError(new SyntaxError(
`Encountered undefined provider! Usually this means you have a circular dependencies (might be caused by using 'barrel' index.ts files.`));
} else {
const providersInfo =
(<string[]>providers.reduce(