angular/packages/core/src
Pawel Kozlowski 20008a6b56 refactor(core): rework runtime implementation to simplify and fix issues (#54103)
This commit changes the approach to the reactive node representing query
results: instead of creating a custom node type we can use a computed -
the main change to get there is representing dirty change notification as
a signal (a counter updated every time a query changes its dirty status).

This change is dictated by simplification (we can avoid creation of a custom
signal type) as well as fixes to the multiple issues not covered by the
initial implementation:
- assuring referential stability of results (ex.: the same array instance
  returned from child queries until results change);
- per-view results collection to avoid a situation where accessing query
  results during view creation would return partial / inconsistent results;
- proper refresh of query results for both live and non-connected consumers.

All the above cases are covered by the additional tests in this commit.

PR Close #54103
2024-02-06 15:04:36 +00:00
..
application fix(core): afterRender hooks should allow updating state (#54074) 2024-01-31 20:19:06 +00:00
authoring refactor(core): introduce output() signature and runtime code (#54217) 2024-02-05 15:08:34 +00:00
change_detection refactor(core): race rAF and setTimeout in zoneless scheduler (#54023) 2024-01-24 18:39:15 -05:00
compiler refactor(compiler): support JIT for signal-based queries (#54019) 2024-01-24 16:13:31 +01:00
debug refactor(core): cleanup DebugElement (#50896) 2023-10-13 12:24:15 +02:00
defer refactor(core): avoid reusing argument name as a local const (#54239) 2024-02-05 15:15:17 +00:00
di refactor(core): remove InjectionToken descriptions in optimized builds. (#53747) 2024-01-26 19:12:41 +00:00
hydration refactor(devtools): Add hydration informations (#53910) 2024-01-30 20:03:14 +00:00
i18n refactor(core): remove InjectionToken descriptions in optimized builds. (#53747) 2024-01-26 19:12:41 +00:00
interface build: configure cross-pkg resolution for api extraction (#52499) 2024-01-05 11:27:34 -08:00
linker refactor(core): remove InjectionToken descriptions in optimized builds. (#53747) 2024-01-26 19:12:41 +00:00
metadata docs(core): fix example sections (#54121) 2024-01-31 15:22:30 +00:00
platform refactor(core): remove InjectionToken descriptions in optimized builds. (#53747) 2024-01-26 19:12:41 +00:00
reflection build: configure cross-pkg resolution for api extraction (#52499) 2024-01-05 11:27:34 -08:00
render refactor(animations): make AnimationBuilder tree-shakable (#52097) 2023-10-12 18:13:22 +02:00
render3 refactor(core): rework runtime implementation to simplify and fix issues (#54103) 2024-02-06 15:04:36 +00:00
sanitization feat(core): change the URL sanitization to only block javascript: URLs (#49659) 2023-04-04 15:01:13 -07:00
testability refactor(core): Remove internal-only testability features (#53767) 2024-01-09 14:46:46 -08:00
util refactor(docs): fix typo (#54247) 2024-02-05 15:05:36 +00:00
view refactor: remove unnecessary file (#49042) 2023-02-17 11:08:33 -08:00
zone refactor(core): Use single source of truth for ApplicationRef.isStable (#53576) 2023-12-19 12:42:45 -08:00
authoring.ts refactor(core): introduce output() signature and runtime code (#54217) 2024-02-05 15:08:34 +00:00
change_detection.ts perf(core): remove support for the deprecated WrappedValue (#43507) 2021-10-01 12:25:19 -04:00
console.ts refactor(core): make platform core providers tree-shakable (#45506) 2022-04-12 22:28:23 +00:00
core.externs.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
core.ts refactor(core): move input signals into own directory (#54200) 2024-02-01 15:58:50 +00:00
core_private_export.ts refactor(devtools): Add hydration informations (#53910) 2024-01-30 20:03:14 +00:00
core_reactivity_export.ts feat(core): add Angular Signals to the public API (#49150) 2023-02-22 11:27:21 -08:00
core_reactivity_export_internal.ts fix(core): TestBed should still use the microtask queue to schedule effects (#53843) 2024-01-11 12:05:57 -08:00
core_render3_private_export.ts refactor(core): introduce two-way listener instructions (#54154) 2024-02-01 14:39:32 +00:00
di.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
error_details_base_url.ts docs: extract XSS security doc URL into a constant (#48082) 2022-11-17 13:21:16 -08:00
error_handler.ts refactor(core): Move code out of application_ref (#53371) 2023-12-08 14:29:46 -08:00
errors.ts refactor(core): improve error message and add guide for required inputs (#53808) 2024-01-10 12:21:05 +00:00
event_emitter.ts build: update rxjs build version to v7 (#53500) 2023-12-18 16:25:37 +00:00
image_performance_warning.ts refactor(core): Separate application and platform files even more (#53371) 2023-12-08 14:29:46 -08:00
linker.ts feat(core): introduce concept of DestroyRef (#49158) 2023-02-28 11:52:09 -08:00
metadata.ts refactor: fix a number of typos throughout the codebase (#52249) 2023-10-25 16:51:24 -07:00
pending_tasks.ts refactor(core): Use single source of truth for ApplicationRef.isStable (#53576) 2023-12-19 12:42:45 -08:00
r3_symbols.ts refactor(compiler): apply component metadata asynchronously when defer blocks are present (#51182) 2023-08-15 11:32:09 -07:00
render.ts refactor(core): clean up circular dependencies (#39722) 2020-11-18 09:15:29 -08:00
transfer_state.ts refactor(core): Separate application and platform files even more (#53371) 2023-12-08 14:29:46 -08:00
version.ts fix(core): avoid repeated work when parsing version (#53598) 2023-12-18 16:26:36 +00:00
zone.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00