Skip to content

Conversation

@GulajavaMinistudio
Copy link

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • angular.dev application / infrastructure changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

pkozlowski-opensource and others added 30 commits October 21, 2024 09:06
This build change makes it possible to share code between
existing input / query migrations and output migrations.

PR Close #58282
This commits makes sure that .next usages of outputs are
migrated in templates and host bindings.

PR Close #58282
…Tree-shaking (#58283)

Currently, `AFTER_RENDER_PHASE_EFFECT_NODE` is not tree-shakable. By wrapping it in an IIFE, it will be annotated as pure, allowing unused code to be removed during the tree-shaking process.

This issue was discovered while investigating: https://github.com/angular/angular-cli/issues/28676.

PR Close #58283
The CLI introduced a new option `experimentalPlatform` to disable loading a polyfill from node. We don't need to patch it anymore.

PR Close #58256
This adds the bulk of the infrastructure to support
incremental hydration.

PR Close #58193
Optimizes `PendingTasks` slightly to avoid notifying the scheduler if the
disposal function of a pending task is called twice.

PR Close #58255
)

Implement a new experimental API, called `resource()`. Resources are
asynchronous dependencies that are managed and delivered through the signal
graph. Resources are defined by their reactive request function and their
asynchronous loader, which retrieves the value of the resource for a given
request value. For example, a "current user" resource may retrieve data for
the current user, where the request function derives the API call to make
from a signal of the current user id.

Resources are represented by the `Resource<T>` type, which includes signals
for the resource's current value as well as its state. `WritableResource<T>`
extends that type to allow for local mutations of the resource through its
`value` signal (which is therefore two-way bindable).

PR Close #58255
Implementations of two rxjs-interop APIs which produce `Resource`s from
RxJS Observables. `rxResource()` is a flavor of `resource()` which uses a
projection to an `Observable` as its loader (like `switchMap`).

PR Close #58255
Updates type inference in `ɵElement` to make `FormRecord` take precedence over `FormGroup`

PR Close #50750
Add new `clear()` method to `FormRecord`

PR Close #50750
Add unit test for statusChange events

PR Close #50750
This includes the Protractor builder rename.

PR Close #58254
This fixes any existing usage of `@angular-devkit/build-angular:protractor` which would be broken by the CLI `-next.12` upgrade.

PR Close #58254
This change introduces a new configuration parameter to the
output as function migration - it is now possible to restrict
a set of migrated paths.

PR Close #58299
This commit exposes a new ng generate schematic that migrates
outputs from the decorator version to the output function.

PR Close #58299
Remove the usage of MagicString and the generation of intermediate sourcemaps,
as sourcemaps are never included in the schematic bundles. Peparing source maps
is a CPU / memory intensive and was causing OoO errors in rollup.

PR Close #58299
With this commit the CLI doc will display the correct arguments for the subcommands

fixes #58279

PR Close #58294
…58274)

`getComponent` wasn't used anymore, we can remove `ERROR_COMPONENT`.

PR Close #58274
…49601)

This commit adds an `applicationMaxAge` to the service worker configuration. When set, it will only assign a cached version to clients within the `maxAge`. Afterwards, it will ignored any expired application versions and fetch exclusively from the network. The default is `undefined`, for which the behaviour is the same as it currently is.

PR Close #49601
This exposes the public api to utilize incremental hydration.

PR Close #58249
add helper functions provideAppInitializer, provideEnvironmentInitializer & providePlatformInitializer
to respectively simplify and replace the use of APP_INITIALIZER, ENVIRONMENT_INITIALIZER, PLATFORM_INITIALIZER

add a migration for the three initialiers

PR Close #53152
…unction (#58199)

Angular DevTools uses globally available functions to provide debugging information to the framework. This commit exports `getLoadedRoutes` function using the `ɵpublishExternalGlobalUtil` function added in PR: f5cd8f7.

Follow-up PRs that will:
- Add a new router example in the Angulat DevTools demo application.
- Implement the router graph in the Angular DevTools to view the routes that are loaded in the application

PR Close #58199
- change relies on the @angular/core version 19.0.0-next.9

PR Close #58199
Added test for getLoadedRoutes with and without loadChildren

PR Close #58199
we're not invoking `wrappedError` any more, removing all the related code.

PR Close #58272
This cleans up a few bits of implementation in the incremental hydration code.

PR Close #58290
See associated pull request for more information.

PR Close #58305
…tions (#57073)

Angular DevTools is working on developing signal debugging support. This commit is a step in the direction of making available debug information to the framework that will allow Angular DevTools to provide users with more accurate information regarding the usage of signals in their applications.

Follow up PRs that will use this arg will:
- Develop a typescript transform that will detect usages of signal functions and attempt to add a debugName without the user needing to specify one directly
- Develop debug APIs for discovering signal graphs within Angular applications (using debugName as a way to label nodes on the graph)

PR Close #57073
This adds the proper developer preview annotation for the withIncrementalHydration api.

PR Close #58308
This is helpful and important for large scale migrations where a single
call for merging _all_ unit data's can be subject to memory / disk
resource constraints. Consider a compilation unit data for every target
in Google3, and those being merged in a single program.

PR Close #58280
JeanMeche and others added 29 commits October 25, 2024 18:45
The changes in #58288 are responsible for breaking the tests (see #54858). We'll re-enable them on the next release.

PR Close #58367
This is helpful and important for large scale migrations where a single
call for merging _all_ unit data's can be subject to memory / disk
resource constraints. Consider a compilation unit data for every target
in Google3, and those being merged in a single program.

PR Close #58280
…arallel (#58280)

This is necessary given the previous Tsurge refactorings. It should
speed up migrations in the merge phase signficiantly and reduce memory
pressure. In 1P, we already have workers from analyze phase anyway— so
those can be re-used for parallel metadata merging.

PR Close #58280
)

This allows the batch test for the signal input migration to pass.

PR Close #58280
This cleans up some minor issues with the incremental hydration implementation and should make maintaining it a little easier.

PR Close #58363
When setting `"useDefineForClassFields": false`, static fields are compiled within a block that relies on the `this` context. This output makes it more difficult for bundlers to treeshake and eliminate unused code.

PR Close #58297
…undler compatibility (#58297)

Added the `@__PURE__` annotation alongside `@pureOrBreakMyCode` to improve compatibility with third-party bundlers. This refactor follows optimization best practices, ensuring broader support across different tools, as `@pureOrBreakMyCode` was only supported by Closure Compiler.

PR Close #58297
…58297)

Marked the PHASES constant within AfterRenderImpl as @__PURE__ to enable better tree-shaking during bundling. This optimization ensures that unused code is more effectively eliminated, improving overall bundle size and performance.

Closes #58296

PR Close #58297
…Feature` (#58297)

Top-level property access was causing dead code elimination (DCE) and tree-shaking issues. This commit modifies `ɵɵNgOnChangesFeature` to prevent these bailouts.

PR Close #58297
Update the golden file of the defer symbol test

PR Close #58297
…57558)

Refactor the profiler and frame-selector components to use signal apis, in future we can make the components onPush and zoneless

PR Close #57558
See associated pull request for more information.

PR Close #58329
`@globalApi` was an AIO implementation detail that isn't relevant anymore.

PR Close #58375
)

Fixes an issue where additional characters were allowed afte the "hydrate never" block.

Closes #58358

PR Close #58360
…8392)

Fixes that the `getClosestComponentName` utility was reporting an empty string if it encounters an anonymous class.

PR Close #58392
…they are not combined in the internal migration (#58393)

When the internal mode for the `inject` migration is enabled, we find properties without initializers, we add their initializers and we prepend the `inject` calls before them. The remaining properties that couldn't be combined are left in place. This appears to break some internal cases.

These changes work around the issue by hoisting all the non-combined members above the `inject()` calls. This should be safe, because they don't have initializers and as such can't have dependencies.

PR Close #58393
…super call in some cases (#58393)

Fixes an issue where the `inject` migration was generating and attempting to insert code after a `super` call, but the string buffering implementation was dropping it if the statement right after the `super` call was deleted as a result of the migration.

PR Close #58393
…ation properties initialized to identifiers (#58393)

Fixes that when the `inject` migration in internal mode was starting to visit the nodes one level down from the root when considering whether an expression contains local references. This lead it to skip over top-level identifiers and migrate some code incorrectly.

PR Close #58393
…s before super call (#58393)

Fixes that if a class has a `super` call, the `inject` migration would always insert the generated variable before it, even if there's other code before the `super` call.

PR Close #58393
This adds comments, removes some duplicate logic, and eliminates some unnecessary complexity of the incremental hydration core logic.

PR Close #58394
Fix backtick escaping for the template string example in the
documentation on expression syntax.

Closes #58382

PR Close #58387

PR Close #58387
Remove an unnecessary whitespace between an opening parenthesis and a
word in the documentation on lifecycle.

Closes #58380

PR Close #58388

PR Close #58388
Updated Angular CLI help contents.

PR Close #58396
…58366)

hydrate triggers were firing in CSR cases and attempting to find parent defer blocks. This prevents that from happening. In these cases, the defer block id will be empty.

fixes: #58359

PR Close #58366
This adds a shouldHydrate check that prevents any additional work in cases when hydration is not necessary.

PR Close #58366
See associated pull request for more information.

PR Close #58400
@GulajavaMinistudio GulajavaMinistudio merged commit ae7967e into angular-indonesia:main Oct 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.