Skip to content

Commit 37abecf

Browse files
committed
feat(angular): support angular-eslint v22 (#35911)
Bumps angular-eslint to v22 (and its now-required @typescript-eslint v8) for Angular 22 workspaces, and aligns the repo eslint catalog to ^22.0.0. <!-- polygraph-session-start --> --- [View session information ↗](https://snapshot.app.trypolygraph.com/orgs/69cdc268b6aa527e4129c2b4/sessions/angular-v22-76d725d8) <!-- polygraph-session-end -->
1 parent 8c1db34 commit 37abecf

5 files changed

Lines changed: 172 additions & 141 deletions

File tree

e2e/eslint/src/linter.test.ts

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -745,41 +745,6 @@ describe('Linter', () => {
745745
expect(e2eOverrides).not.toContain('plugin:@nx/typescript');
746746
});
747747

748-
it('(Angular standalone) should set root project config to app and e2e app and migrate when another lib is added', () => {
749-
const myapp = uniq('myapp');
750-
const mylib = uniq('mylib');
751-
752-
runCLI(
753-
`generate @nx/angular:app --name=${myapp} --directory="." --linter eslint --no-interactive`
754-
);
755-
runCLI('reset', { env: { CI: 'false' } });
756-
verifySuccessfulStandaloneSetup(myapp);
757-
758-
let appEslint = readJson('.eslintrc.json');
759-
let e2eEslint = readJson('e2e/.eslintrc.json');
760-
761-
// should have plugin extends
762-
let appOverrides = JSON.stringify(appEslint.overrides);
763-
expect(appOverrides).toContain('plugin:@nx/typescript');
764-
let e2eOverrides = JSON.stringify(e2eEslint.overrides);
765-
expect(e2eOverrides).toContain('plugin:@nx/javascript');
766-
767-
runCLI(
768-
`generate @nx/js:lib libs/${mylib} --linter eslint --no-interactive`
769-
);
770-
runCLI('reset', { env: { CI: 'false' } });
771-
verifySuccessfulMigratedSetup(myapp, mylib);
772-
773-
appEslint = readJson(`.eslintrc.json`);
774-
e2eEslint = readJson('e2e/.eslintrc.json');
775-
776-
// should have no plugin extends
777-
appOverrides = JSON.stringify(appEslint.overrides);
778-
expect(appOverrides).not.toContain('plugin:@nx/typescript');
779-
e2eOverrides = JSON.stringify(e2eEslint.overrides);
780-
expect(e2eOverrides).not.toContain('plugin:@nx/typescript');
781-
});
782-
783748
it('(Node standalone) should set root project config to app and e2e app and migrate when another lib is added', async () => {
784749
const myapp = uniq('myapp');
785750
const mylib = uniq('mylib');

packages/angular/migrations.json

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2012,6 +2012,93 @@
20122012
"alwaysAddToPackageJson": false
20132013
}
20142014
}
2015+
},
2016+
"23.1.0-angular-eslint": {
2017+
"version": "23.1.0-beta.0",
2018+
"requires": {
2019+
"@angular/core": ">= 22.0.0 < 23.0.0",
2020+
"typescript-eslint": "^8.0.0",
2021+
"eslint": "^9.0.0 || ^10.0.0"
2022+
},
2023+
"packages": {
2024+
"angular-eslint": {
2025+
"version": "^22.0.0",
2026+
"alwaysAddToPackageJson": false
2027+
},
2028+
"@angular-eslint/eslint-plugin": {
2029+
"version": "^22.0.0",
2030+
"alwaysAddToPackageJson": false
2031+
},
2032+
"@angular-eslint/eslint-plugin-template": {
2033+
"version": "^22.0.0",
2034+
"alwaysAddToPackageJson": false
2035+
},
2036+
"@angular-eslint/template-parser": {
2037+
"version": "^22.0.0",
2038+
"alwaysAddToPackageJson": false
2039+
},
2040+
"@angular-eslint/utils": {
2041+
"version": "^22.0.0",
2042+
"alwaysAddToPackageJson": false
2043+
},
2044+
"@angular-eslint/schematics": {
2045+
"version": "^22.0.0",
2046+
"alwaysAddToPackageJson": false
2047+
},
2048+
"@angular-eslint/test-utils": {
2049+
"version": "^22.0.0",
2050+
"alwaysAddToPackageJson": false
2051+
},
2052+
"@angular-eslint/builder": {
2053+
"version": "^22.0.0",
2054+
"alwaysAddToPackageJson": false
2055+
},
2056+
"@angular-eslint/bundled-angular-compiler": {
2057+
"version": "^22.0.0",
2058+
"alwaysAddToPackageJson": false
2059+
}
2060+
}
2061+
},
2062+
"23.1.0-@angular-eslint": {
2063+
"version": "23.1.0-beta.0",
2064+
"requires": {
2065+
"@angular/core": ">= 22.0.0 < 23.0.0",
2066+
"eslint": "^9.0.0 || ^10.0.0"
2067+
},
2068+
"packages": {
2069+
"@angular-eslint/eslint-plugin": {
2070+
"version": "^22.0.0",
2071+
"alwaysAddToPackageJson": false
2072+
},
2073+
"@angular-eslint/eslint-plugin-template": {
2074+
"version": "^22.0.0",
2075+
"alwaysAddToPackageJson": false
2076+
},
2077+
"@angular-eslint/template-parser": {
2078+
"version": "^22.0.0",
2079+
"alwaysAddToPackageJson": false
2080+
},
2081+
"@angular-eslint/utils": {
2082+
"version": "^22.0.0",
2083+
"alwaysAddToPackageJson": false
2084+
},
2085+
"@angular-eslint/schematics": {
2086+
"version": "^22.0.0",
2087+
"alwaysAddToPackageJson": false
2088+
},
2089+
"@angular-eslint/test-utils": {
2090+
"version": "^22.0.0",
2091+
"alwaysAddToPackageJson": false
2092+
},
2093+
"@angular-eslint/builder": {
2094+
"version": "^22.0.0",
2095+
"alwaysAddToPackageJson": false
2096+
},
2097+
"@angular-eslint/bundled-angular-compiler": {
2098+
"version": "^22.0.0",
2099+
"alwaysAddToPackageJson": false
2100+
}
2101+
}
20152102
}
20162103
}
20172104
}

packages/angular/src/utils/versions.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ export const moduleFederationNodeVersion = '^2.7.21';
1919
export const moduleFederationEnhancedVersion = '^2.1.0';
2020
export const webpackMergeVersion = '^5.8.0';
2121

22-
export const angularEslintVersion = '^21.2.0';
23-
export const typescriptEslintVersion = '^7.16.0';
22+
export const angularEslintVersion = '^22.0.0';
23+
export const typescriptEslintVersion = '^8.0.0';
2424
export const postcssVersion = '^8.4.5';
2525
export const postcssUrlVersion = '~10.1.3';
2626
export const autoprefixerVersion = '^10.4.0';

0 commit comments

Comments
 (0)