angular/packages
Paul Gschwendtner 62510a7b4d refactor(compiler-cli): update type check generation code to use new import manager (#54983)
Updates the type-check block generation code (also for inline type check
blocks) to use the new import manager.

This is now a requirement because the translator utilities from the
reference emit environment expect an import manager that follows the
new contract established via `ImportGenerator<TFile, TExpression>`.

For type check files, we can simply print new imports as we don't expect
existing imports to be updated. That is because type check files do not
have any _original_ source files (or in practice— those are empty).

For type check blocks inline, or constructors, imports _may_ be re-used.
This is great as it helps fixing some incrementality bugs that we were
seeing in the type check code. That is, sometimes the type check block
code may generate imports conditionally for e.g. `TemplateRef`, or
animations. Those then **prevent** incremental re-use if TCB code
switches between those continously. We tried to account for that with
signal inputs by always pre-generating such imports. This fixed the
issue for type-check files, but for inline type check blocks this is
different as we would introduce new imports in user code that would then
be changed back in subsequential edit iterations. See:
https://github.com/angular/angular/pull/53521#pullrequestreview-1778130879.

In practice, the assumption was that we would be fine since user code is
most likely containing imports to `@angular/core` already. That is a
true assumption, but unfortunately it doesn't help with incremental
re-use because TypeScript's structural change detection does not dedupe
and expects 1:1 exact imports from their old source files.

https://github.com/microsoft/TypeScript/pull/56845

To improve incremental re-use for the type check integration, we should
re-use original source file imports when possible. This commit enables
this.

To update imports and execute inline operations, we are now uisng
`magic-string` (which is then bundled) as it simplifies the string
manipulatuons.

PR Close #54983
2024-03-27 10:18:29 -07:00
..
animations refactor: migrate animations to prettier formatting (#53977) 2024-01-19 20:08:57 +01:00
bazel feat(core): support TypeScript 5.4 (#54414) 2024-02-26 18:29:09 -08:00
benchpress refactor: migrate bazel, benchpress, elements and misc to prettier formatting (#53995) 2024-01-22 09:07:15 +01:00
common Revert "fix(http): exclude caching for authenticated HTTP requests (#54746)" (#55033) 2024-03-26 09:16:34 -07:00
compiler fix(compiler): invoke method-based tracking function with context (#54960) 2024-03-21 22:08:41 -07:00
compiler-cli refactor(compiler-cli): update type check generation code to use new import manager (#54983) 2024-03-27 10:18:29 -07:00
core fix(http): manage different body types for caching POST requests (#54980) 2024-03-25 11:17:03 -07:00
docs/di docs: remove outdated/unsupported webworker doc (#49856) 2023-04-17 14:01:41 +00:00
elements refactor: migrate bazel, benchpress, elements and misc to prettier formatting (#53995) 2024-01-22 09:07:15 +01:00
examples refactor: migrate docs, examples, private, service worker and upgrade to prettier formatting (#54163) 2024-01-30 20:08:40 +00:00
forms docs: fix typo (#54427) 2024-02-14 15:29:21 -08:00
language-service refactor(compiler-cli): speed up compiler tests by caching Angular (#54650) 2024-03-06 12:34:39 +01:00
localize docs(docs-infra): Add missing API entries to ADEV (#54530) 2024-02-21 16:41:33 +00:00
misc/angular-in-memory-web-api refactor: address prototype polution concern with better typing (#54286) 2024-02-06 18:38:47 +00:00
platform-browser refactor(platform-browser): use performance API for async animations (#53963) 2024-02-21 15:12:04 -08:00
platform-browser-dynamic build: set up adev testing (#53854) 2024-01-10 15:22:36 -08:00
platform-server refactor(core): Add hydration missmatch on the component rather than the node. (#54671) 2024-03-18 16:52:19 -07:00
private/testing refactor(core): properly type withBody and withHead testing helpers (#54801) 2024-03-11 08:59:55 -07:00
router fix(router): RouterLinkActive will always remove active classes when links are not active (#54982) 2024-03-27 10:16:23 -07:00
service-worker refactor: migrate docs, examples, private, service worker and upgrade to prettier formatting (#54163) 2024-01-30 20:08:40 +00:00
upgrade test: fix global augmentation leaking into all source files (#54650) 2024-03-06 12:34:39 +01:00
zone.js test(zone.js): fix zone.js test listener removal (#55017) 2024-03-25 11:16:06 -07:00
BUILD.bazel docs(docs-infra): Add missing API entries to ADEV (#54530) 2024-02-21 16:41:33 +00:00
circular-deps-test.conf.js build: ignore type only imports/exports for circular dependency checks (#47017) 2022-08-18 12:06:09 -07:00
empty.ts
goog.d.ts
license-banner.txt build: bump license year (#44590) 2022-01-04 12:05:25 -08:00
README.md
system.d.ts
tsconfig-build.json build: align with internal tsconfig options (#51728) 2023-09-12 11:39:42 -07:00
tsconfig-legacy-saucelabs.json refactor(compiler): drop obsolete NgFactory and NgSummary config options (#48268) 2023-02-21 13:03:59 -08:00
tsconfig-test.json build: switch devmode output to es2015 (#44505) 2022-01-05 23:20:20 +00:00
tsconfig-tsec-base.json refactor(core): throw an error when hydration marker is missing from DOM (#51170) 2023-08-04 11:31:49 -04:00
tsconfig.json refactor(router): Update integration tests to cover navigation and history API (#53799) 2024-01-30 15:04:02 +00:00
tsec-exemption.json fix(core): hardening attribute and property binding rules for <iframe> elements (#47964) 2022-11-09 00:47:56 -08:00
types.d.ts build: update to jasmine 4.0 (#45558) 2022-04-11 16:25:28 +00:00

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT