angular/packages
AleksanderBodurri ff4d1b4a0e feat(devtools): create profiler for DI and injector events (#48639)
Currently, understanding dependency injection in Angular requires a lot of context and has been sited in our surveys as one of the largest points of confusion that our users have with the framework. This commit is the beginning of our approach to make debugging dependency injection in Angular easier.

This commit introduces injector profiler callbacks in parts of the framework to emit injector events. It also introduces a default handler for these events. This default handler parses the stream of events to construct some data structures that will support new injector debug APIs.

We have implemented a similar pattern in the past to minimize overhead. There is also the possiblity of making the internal `setInjectorProfiler` function a public debug API in the future, so that users can implement their own handlers to debug DI events. Lastly DI in Angular maps nicely to a stream of events.

For production applications there is no runtime overhead. For applications in dev mode there is some additional overhead from the default profiler handling injector events and holding debug data in memory.

For production applications, dead code elimination should strip all of the code used by this PR.

PR Close #48639
2023-08-01 11:44:40 -07:00
..
animations fix(animations): Ensure elements are removed from the cache after leave animation. (#50929) 2023-07-11 08:28:10 -07:00
bazel refactor(bazel): Circuit out ts semantic check in local mode compilation (#50486) 2023-06-07 12:50:54 -07:00
benchpress docs: updated the benchpress readme doc (#51110) 2023-07-21 16:43:30 +00:00
common feat(common): add component input binding support for NgComponentOutlet (#51148) 2023-07-25 09:16:19 -07:00
compiler refactor(compiler): add support for sanitizing properties and attributes (#51156) 2023-07-28 15:11:51 -07:00
compiler-cli refactor(compiler): add support for sanitizing properties and attributes (#51156) 2023-07-28 15:11:51 -07:00
core feat(devtools): create profiler for DI and injector events (#48639) 2023-08-01 11:44:40 -07:00
docs/di docs: remove outdated/unsupported webworker doc (#49856) 2023-04-17 14:01:41 +00:00
elements fix(elements): support input transform functions (#50713) 2023-06-22 09:47:16 -07:00
examples feat(common): add component input binding support for NgComponentOutlet (#51148) 2023-07-25 09:16:19 -07:00
forms docs(forms): FormBuilder is not associated with ReactiveFormsModule (#50941) 2023-07-05 13:53:10 +02:00
language-service refactor(compiler): introduce deferred block AST (#51050) 2023-07-17 21:05:47 +00:00
localize build: update all non-major dependencies (#50994) 2023-07-18 21:01:44 +00:00
misc/angular-in-memory-web-api docs: update invalid links to the new http guides (#49456) 2023-06-22 17:06:59 -07:00
platform-browser refactor(platform-browser): use globalThis for global (#50063) 2023-07-14 18:32:01 +00:00
platform-browser-dynamic refactor(platform-browser-dynamic): Fix JSDoc comment (#50893) 2023-06-30 11:49:29 -07:00
platform-server refactor: use queueMicrotask to schedule micro tasks instead of various helpers (#50485) 2023-06-15 16:38:21 +02:00
private/testing fix(platform-server): bundle @angular/domino in via esbuild (#49229) 2023-02-28 13:34:50 -08:00
router docs: remove trailing periods after @see (#51144) 2023-07-24 08:14:51 -07:00
service-worker build: update minimum supported Node version from 16.13.0 -> 16.14.0 (#49771) 2023-04-11 07:56:31 -07:00
upgrade fix(upgrade): Use takeUntil on leaky subscription. (#50901) 2023-07-11 08:24:30 -07:00
zone.js build: lock file maintenance (#51134) 2023-07-24 08:12:51 -07:00
BUILD.bazel build(bazel): list docs entrypoints under packages to simplify docgen 2022-11-22 13:51:16 -07: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 refactor(core): replace references to goog.LOCALE with goog.getLocale() (#43089) 2021-08-10 10:35:26 -07:00
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: update ts_library to produce ES2022 (#49559) 2023-03-23 08:18:45 -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 build: update tsconfigs to use ES2020 as target and module (#43431) 2021-10-01 18:28:42 +00:00
tsconfig.json refactor(compiler): drop obsolete NgFactory and NgSummary config options (#48268) 2023-02-21 13:03:59 -08: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