chore: remove dead ngc/Ivy AOT test fixture from store - #5204
Conversation
Removes modules/store/spec/ngc/ (main.ts and tsconfig.ngc.json), which was flagged during the TypeScript 6/7 deprecation cleanup in ngrx#5163 as using target: "ES5" — a deprecated value not otherwise present anywhere else in the workspace. This fixture appears to be dead code: it isn't referenced by any Nx target (build/test/lint) in modules/store/project.json, and its tsconfig sets angularCompilerOptions.genDir: "ngfactory", a View Engine-specific option for the pre-Ivy AOT compiler (ngc), which Angular removed entirely starting with Ivy (Angular 9+). The workspace is currently on Angular 22, where View Engine/ngc no longer exists, so this config cannot meaningfully be "fixed" to a modern target — the compilation mode it exercises doesn't apply anymore. Last substantive change to the file was in 2021 (ngrx#3000, Angular 12 RC.0 update); since then it's only been touched by an automated prettier pass. Verified with: - pnpm nx run store:build — clean build - pnpm nx run store:test — 80 test files, 794 tests, 0 type errors This closes the last remaining category from ngrx#5163 (target: "ES5"). downlevelIteration, moduleResolution, and baseUrl/rootDir were addressed in separate PRs.
Verification Guide for ReviewersWhy delete instead of migrate I first checked whether the file was reachable from any build/test/lint pipeline: No references anywhere outside the file itself and Nx's own generated I then looked at what the config was actually testing, via
Verification performed after removal:
Given this was flagged as an open question in my scoping comment on #5163, and the fix here isn't a simple config change like the other three PRs, I'm glad to adjust if there's context I'm missing about why this fixture exists or should be kept. |
|
Note for reviewers: |
|
Thanks @robert-md-or! |
|
Thanks for merging! 🙌 |
TITLE:
chore: remove dead ngc/Ivy AOT test fixture from store
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
modules/store/spec/ngc/tsconfig.ngc.jsonsetstarget: "ES5", whichTypeScript has deprecated as part of the cleanup tracked in
#5163 — the only file
in the workspace still using this value. Unlike the other files
addressed in that issue, this one couldn't simply be updated to a
modern target.
What is the new behavior?
Removed
modules/store/spec/ngc/(main.tsandtsconfig.ngc.json)entirely, rather than migrating it, for the following reasons:
modules/store/project.json— confirmed viagrepacrossproject.json,angular.json, andnx.json.tsconfig.ngc.jsonsetsangularCompilerOptions.genDir: "ngfactory", a View Engine-specific option for Angular's pre-Ivy AOTcompiler (
ngc). Angular removed View Engine entirely starting withIvy (Angular 9+). This workspace is currently on Angular 22, where
this compilation mode no longer exists — there's no modern
equivalent to migrate
target: "ES5"to, since the thing it wasconfigured to test doesn't exist anymore.
2021 (build: update to Angular libraries to version 12 RC.0 #3000, an Angular 12 RC.0 dependency bump); since then it's
only been touched by an automated
prettierformatting pass, withno further review or use.
Verified with:
pnpm nx run store:build— clean buildpnpm nx run store:test— 80 test files, 794 tests, 0 type errorsThis closes the last remaining category from
#5163
(
downlevelIteration,moduleResolution, andbaseUrl/rootDirwereaddressed in separate PRs: #5201, #5203, and one more).
Note for reviewers: if removal isn't the preferred resolution here
(e.g. if there's a reason to keep and repair this fixture instead),
happy to revisit — in that case #5163 would need to stay open rather
than close with this merge.
Does this PR introduce a breaking change?