angular/packages/compiler-cli
JoostK f35f4751b5 fix(compiler-cli): use inline type-check blocks for components outside rootDir (#46096)
An inline type-check block is required when a reference to a component class
cannot be emitted from an ngtypecheck shim file, but the logic to detect this
situation did not consider the configured `rootDir`. When a `rootDir` is
configured the reference emitter does not allow generating an import outside
this directory, which meant that a shim file wouldn't be able to reference
the component class. Consequently, type-check block generation would fail
with a fatal error that is unaccounted for, as gathering diagnostics should
be non-fallible.

This commit fixes the problem by leveraging the existing `canReferenceType`
logic of the type-checking `Environment`, instead of the rudimentary check
whether the class is exported as top-level symbol (`checkIfClassIsExported`).
Instead, `canReferenceType` pre-flights the generation of an import using the
`ReferenceEmitter` to tell exactly whether it will succeed or not; thus taking
into account the `rootDirs` constraint as well.

Fixes #44999

PR Close #46096
2022-06-10 20:40:16 +00:00
..
integrationtest fix(router): Remove deprecated initialNavigation option (#45729) 2022-04-28 14:40:03 -07:00
linker refactor(compiler-cli): introduce onlyPublishPublicTypingsForNgModules (#45894) 2022-06-02 13:39:14 -07:00
ngcc refactor(compiler-cli): introduce onlyPublishPublicTypingsForNgModules (#45894) 2022-06-02 13:39:14 -07:00
private refactor(localize): update version of Babel (#44931) 2022-02-24 21:42:54 +00:00
src fix(compiler-cli): use inline type-check blocks for components outside rootDir (#46096) 2022-06-10 20:40:16 +00:00
test fix(compiler-cli): don't emit empty providers array (#46301) 2022-06-10 14:27:22 +00:00
BUILD.bazel build: migrate more usages from @bazel/typescript to @bazel/concatjs (#45431) 2022-03-25 12:18:34 -07:00
esbuild.config.js refactor: setup bundling for @angular/compiler-cli package (#43431) 2021-10-01 18:28:42 +00:00
import_meta_url.d.ts refactor(compiler-cli): do not use __filename or __dirname global for ESM compatibility (#43431) 2021-10-01 18:28:45 +00:00
index.ts build: switch all instances from ng_rollup_bundle to app_bundle (#44490) 2022-01-04 12:14:14 -08:00
package.json build: clean up references to old master branch (#45856) 2022-05-04 16:23:33 -07:00
tsconfig-build.json refactor(compiler-cli): dismantle View Engine implementation of ngc (#44269) 2021-12-01 10:36:30 -08:00
tsconfig.json build: update tsconfigs to use ES2020 as target and module (#43431) 2021-10-01 18:28:42 +00:00