angular-cn/packages/compiler-cli/ngcc/test/host
JoostK 3c7da767d8 fix(ngcc): resolve imports in `.d.ts` files for UMD/CommonJS bundles (#32619)
In ngcc's reflection host for UMD and CommonJS bundles, custom logic is
present to resolve import details of an identifier. However, this custom
logic is unable to resolve an import for an identifier inside of
declaration files, as such files use the regular ESM import syntax.

As a consequence of this limitation, ngtsc is unable to resolve
`ModuleWithProviders` imports that are declared in an external library.
In that situation, ngtsc determines the type of the actual `NgModule`
that is imported, by looking in the library's declaration files for the
generic type argument on `ModuleWithProviders`. In this process, ngtsc
resolves the import for the `ModuleWithProviders` identifier to verify
that it is indeed the `ModuleWithProviders` type from `@angular/core`.
So, when the UMD reflection host was in use this resolution would fail,
therefore no `NgModule` type could be detected.

This commit fixes the bug by using the regular import resolution logic
in addition to the custom resolution logic that is required for UMD
and CommonJS bundles.

Fixes #31791

PR Close #32619
2019-09-12 13:18:20 -07:00
..
commonjs_host_import_helper_spec.ts fix(ivy): ngcc - render decorators in UMD and CommonJS bundles correctly (#31614) 2019-07-29 16:10:58 -07:00
commonjs_host_spec.ts fix(ngcc): resolve imports in `.d.ts` files for UMD/CommonJS bundles (#32619) 2019-09-12 13:18:20 -07:00
esm5_host_import_helper_spec.ts fix(ivy): in ngcc, handle inline exports in commonjs code (#32129) 2019-08-15 14:45:59 -07:00
esm5_host_spec.ts fix(ngcc): consistently use outer declaration for classes (#32539) 2019-09-12 11:12:10 -07:00
esm2015_host_import_helper_spec.ts fix(ivy): ngcc - render decorators in UMD and CommonJS bundles correctly (#31614) 2019-07-29 16:10:58 -07:00
esm2015_host_spec.ts fix(ngcc): correctly read static properties for aliased classes (#32619) 2019-09-12 13:18:20 -07:00
umd_host_import_helper_spec.ts fix(ivy): ngcc - render decorators in UMD and CommonJS bundles correctly (#31614) 2019-07-29 16:10:58 -07:00
umd_host_spec.ts fix(ngcc): resolve imports in `.d.ts` files for UMD/CommonJS bundles (#32619) 2019-09-12 13:18:20 -07:00
util.ts refactor(ivy): implement a virtual file-system layer in ngtsc + ngcc (#30921) 2019-06-25 16:25:24 -07:00