Releases: angular-eslint/angular-eslint
v19.6.0
19.6.0 (2025-05-27)
🚀 Features
- eslint-plugin: [prefer-inject] add new rule (#2461)
🩹 Fixes
- respect existing eslint.config.ts, eslint.config.cts, eslint.config.mts files (#2458)
- eslint-plugin: [sort-keys-in-type-decorator] preserve unconfigured properties during autofix (#2456)
- eslint-plugin: [use-lifecycle-interface] do not report if the method uses override (#2463)
❤️ Thank You
- James Henry @JamesHenry
v19.5.0
19.5.0 (2025-05-25)
🚀 Features
- builder: add stats option (#2453)
- eslint-plugin: introduce sort keys in type-decorator rule (#2187)
- eslint-plugin-template: [no-nested-tags] add rule (#2398)
- eslint-plugin-template: add rule prefer-at-empty (#2352)
- schematics: support --skip-install for ng-add (#2451)
🩹 Fixes
- update dependency semver to v7.7.2 (#2421)
- update typescript-eslint packages to v8.32.1 (#2422)
- update dependency @angular/compiler to v19.2.13 (#2438)
- update dependency eslint to v9.27.0 (#2431)
- builder: correct option name in flat config error (#2443)
- eslint-plugin-template: [prefer-template-literal] handle parentheses in autofix (#2418)
- eslint-plugin-template: [alt-text] ensure multiple attributes do not cause false negatives (#2441)
- eslint-plugin-template: [cyclomatic-complexity] handle new control flow syntax (#2447)
- eslint-plugin-template: [prefer-at-empty] remove closing brace from @if when no longer needed (#2450)
❤️ Thank You
- Alexander von Weiss @sod
- Benjamin Schäublin
- Dave @reduckted
- Guillaume DROUARD
- James Henry @JamesHenry
v19.4.0
19.4.0 (2025-05-08)
🚀 Features
- eslint-plugin: add rule prefer-output-emitter-ref (#2324)
- eslint-plugin-template: [no-interpolation-in-attributes] add allowSubstringInterpolation option (#2373)
- eslint-plugin-template: Add
prefer-template-literal
rule (#2308)
🩹 Fixes
- update dependency @angular/compiler to v19.2.10 (#2394)
- update dependency ignore to v7.0.4 (#2396)
- update typescript-eslint packages to v8.32.0 (#2399)
- update dependency eslint to v9.26.0 (#2409)
- eslint-plugin-template: [no-any] handle key reads (#1701, #2335)
- eslint-plugin-template: correct column adjustment for inline template message locations (#2358)
- eslint-plugin-template: remove backticks from inline template with interpolation (#2368)
❤️ Thank You
- daiscog @daiscog
- Dave @reduckted
- Evgeny Stepanovych @undsoft
- Guillaume DROUARD
v19.3.0
19.3.0 (2025-03-22)
🚀 Features
- use @angular/compiler 19.2.3 and rename some AST nodes to match (#2320)
- eslint-plugin-template: [button-has-type] add option to ignore missing type (#2326)
- eslint-plugin-template: add rule prefer-contextual-for-variables (#2311)
- template-parser: visit @let child nodes (#2312)
🩹 Fixes
- update typescript-eslint packages to v8.26.1 (#2313)
- update typescript-eslint packages to v8.27.0 (#2328)
- update dependency eslint to v9.23.0 (#2331)
- eslint-plugin-template: [i18n] Avoid exception in i18n rule with allowMarkupInContent=false (#2327)
- eslint-plugin-template: [attributes-order] order i18n attributes (#2307)
- eslint-plugin-template: [attributes-order] treat inputs without square brackets as attributes (#2316)
❤️ Thank You
- Dave @reduckted
- m-akinc @m-akinc
v19.2.1
19.2.1 (2025-03-08)
🩹 Fixes
- update dependency @angular/compiler to v19.2.1 (#2288)
- update dependency eslint-scope to v8.3.0 (#2296)
- update typescript-eslint packages to v8.26.0 (#2282)
- update dependency eslint to v9.22.0 (#2294)
- eslint-plugin-template: [prefer-self-closing-tags] resolve wrong reports when structural directive + no content + no self-closing (#2287)
❤️ Thank You
- Guillaume DROUARD
v19.2.0
19.2.0 (2025-03-02)
🚀 Features
- eslint-plugin: add rule require-lifecycle-on-prototype (#2259)
🩹 Fixes
- update dependency @angular/compiler to v19.2.0 (#2268)
- update dependency eslint to v9.21.0 (#2243)
- update typescript-eslint packages to v8.25.0 (#2263)
- eslint-plugin: [no-output-native] update native event names (#2236)
- eslint-plugin-template: [prefer-self-closing-tags] do not treat comments as whitespace (#2256)
- eslint-plugin-template: [prefer-self-closing-tags] allow nested ng-content (#2257)
- eslint-plugin-template: [prefer-static-string-properties] do not check structural directives (#2253)
- eslint-plugin-template: find inline templates on components in blocks (#2238)
- prefer-static-string-properties: resolve bug with directives (#2271)
- prefer-static-string-properties: exclude special attributes (#2273)
❤️ Thank You
- Dave @reduckted
- Marie Briand @mbriand-lucca
v19.1.0
19.1.0 (2025-02-09)
🚀 Features
- eslint-plugin: prefer-signals read-only suggestion is now a fix (#2175)
- eslint-plugin: prefer-signals now checks .asReadonly() calls (#2218)
- eslint-plugin-template: add rule prefer-static-string-properties (#2228)
🩹 Fixes
- update dependency ignore to v7 (#2200)
- update dependency @angular/compiler to v19.1.5 (#2226)
- update dependency semver to v7.7.1 (#2225)
- update typescript-eslint packages to v8.23.0 (#2212)
- update dependency eslint to v9.20.0 (#2217)
- eslint-plugin: [prefer-signals] support linkedSignal (#2213)
- eslint-plugin: [no-input-prefix] false positive on input initializer value (#2184)
- eslint-plugin-template: [prefer-self-closing-tags] do not remove HTML-encoded whitespace (#2229)
- eslint-plugin-template: [attribute-order] check for ng-template within svg (#2223)
❤️ Thank You
- Cédric Exbrayat @cexbrayat
- Dave @reduckted
- Lucas Neto Moreira
v19.0.2
19.0.2 (2024-12-10)
🩹 Fixes
- update typescript-eslint packages to v8.18.0 (#2171)
- eslint-plugin: [prefer-standalone] error range should only include property and value (#2172)
NOTE: If you had previously suppressed errors for prefer-standalone
using an eslint-disable
comment, you will need to move them to above the property in light of the above bug fix, we are sorry for any inconvenience.
E.g. In 19.0.0
and 19.0.1
// eslint-disable-next-line
@Pipe({
standalone: false,
name: 'pipe-name'
})
class Test {}
In 19.0.2
and onwards:
@Pipe({
// eslint-disable-next-line
standalone: false,
name: 'pipe-name'
})
class Test {}
❤️ Thank You
- James Henry @JamesHenry
v19.0.1
19.0.1 (2024-12-06)
🩹 Fixes
- update dependency @angular/compiler to v19.0.3 (#2159)
- update dependency eslint to v9.16.0 (#2148)
- update typescript-eslint packages to v8.17.0 (#2153)
- eslint-plugin: add prefer-signals rule to exported config (#2150)
- eslint-plugin-template: prevent the slot tag from being self-closing (#2088)
❤️ Thank You
- Joan Llenas @joanllenas
- Quentin Deroubaix @quentinderoubaix
v19.0.0
19.0.0 (2024-11-29)
As always we recommend that you update your existing workspaces by using ng update
as we provide some helpful schematics to help migrate your workspaces to the latest and greatest.
However, please note that the angular-eslint
package itself now supports being referenced as the schematics collection, so...
IF YOU ARE ALREADY USING angular-eslint
and ESLint v9 and flat config you can now do the following:
ng update @angular/core @angular/cli angular-eslint
(Note: If you encounter any issues with this, you may need to update to the latest v18 release of angular-eslint
first)
IF YOU ARE STILL USING @angular-eslint/schematics
and ESLint v8 and .eslintrc.json
configs you can still do the following:
ng update @angular/core @angular/cli @angular-eslint/schematics
NOTE: There will not be any migration of your setup to ESLint v9 or flat configs for existing ESLint v8 workspaces while migrating to angular-eslint v19.
We will explore landing an opt in migration schematic in a minor release after 19.0.0
.
🚀 Features
- update angular packages to the stable v19 (#2120)
- allow referencing angular-eslint as the schematics collection (2be3107b)
⚠️ eslint-plugin: remove deprecated prefer-standalone-component rule (#2112)⚠️ eslint-plugin: prefer-standalone recognizes that standalone is the default (#2096)⚠️ eslint-plugin: remove deprecated sort-ngmodule-metadata-arrays rule (#2114)⚠️ eslint-plugin: remove deprecated no-host-metadata-property rule (#2113)- eslint-plugin: new rule prefer-signals (#1872)
⚠️ eslint-plugin: promote prefer-standalone to recommended (8dfdc4f4)
⚠️ Breaking Changes
⚠️ eslint-plugin: promote prefer-standalone to recommended (8dfdc4f4)⚠️ eslint-plugin: remove deprecated no-host-metadata-property rule (#2113)⚠️ eslint-plugin: remove deprecated sort-ngmodule-metadata-arrays rule (#2114)⚠️ eslint-plugin: prefer-standalone recognizes that standalone is the default (#2096)⚠️ eslint-plugin: remove deprecated prefer-standalone-component rule (#2112)
❤️ Thank You
- Daniel Kimmich @json-derulo
- Dave @reduckted
- James Henry @JamesHenry
- JamesHenry @JamesHenry
- Leosvel Pérez Espinosa @leosvelperez