All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
13.5.0 (2022-06-12)
13.4.0 (2022-06-11)
13.3.0 (2022-06-10)
- eslint-plugin-template: [eqeqeq] update suggest message (#1000) (821cb8e)
- eslint-plugin: [sort-ngmodule-metadata-arrays] do not sort deps property (#1001) (e6d12f2)
- eslint-plugin-template: [i18n] add requireDescription option (#988) (8f55ba8)
- update dependency eslint to v8.17.0 (#979) (7cabac0)
13.2.1 (2022-04-14)
- eslint-plugin-template: false positive conditional complexity in BoundAttribute > Interpolation (#986) (c3f3120)
- template-parser: suppress parse errors by default, add suppressParseErrors parserOption (#987) (417bee6)
13.2.0 (2022-04-03)
- eslint-plugin-template: add require-localize-metadata rule (#844) (ca1edf0)
- parser: propagate parse errors from angular compiler (#969) (ab9b496)
13.1.0 (2022-02-13)
- eslint-plugin-template: [i18n] do not throw when compiler returns null i18n description (#892) (d349149)
- rule docs links in create-eslint-rule utils (#907) (94f6e21)
- update dependency ignore to v5.2.0 (#913) (5480102)
- eslint-plugin-template: [i18n] add checkDuplicateId option (#868) (edaf46f)
- update angular/compiler to v13.2.2 (#834) (9847978)
13.0.1 (2021-11-19)
13.0.0 (2021-11-18)
Whilst this is a major release of the packages, in this case the major version change is primarily there to signify alignment with v13 of Angular.
You should look to migrate to v13 of all Angular packages, as well as v8 of eslint
and v5 of typescript-eslint
.
All of this will be handled for you automatically if you leverage the ng update
schematics provided by @angular-eslint
. You can simply include @angular-eslint/schematics
in your ng update
command alongside @angular/cli
and @angular/core
, for example:
npx ng update @angular/cli @angular/core @angular-eslint/schematics
12.7.0 (2021-11-18)
- builder: expose nx executor without ng-compat layer (#808) (b2cd5d1)
- i18n: option to require description for i18n metadata (#804) (7d072e2)
- schematics: add package group for ng update (#807) (ce2e47d)
12.6.1 (2021-10-26)
12.6.0 (2021-10-25)
- eslint-plugin: [sort-ngmodule-metadata-arrays] remove the property restriction (#694) (440f6dc)
- eslint-plugin: [sort-ngmodule-metadata-arrays] report the correct node (#693) (886db08)
- eslint-plugin: more appropriate language for no-attribute-decorator (#696) (4dde82c)
- eslint-plugin-template: [i18n] ignore empty strings and non-texts within
BoundText
by default (#683) (4075643)
12.5.0 (2021-09-20)
- eslint-plugin-template: [mouse-events-have-key-events] ignore custom components (#680) (f65874b)
- eslint-plugin-template: support escape chars in inline templates (#691) (8b89ec7)
12.4.1 (2021-09-09)
12.4.0 (2021-09-09)
- eslint-plugin: [no-empty-lifecycle-method] incorrect suggestions and correct reports (#606) (a446e8f)
- eslint-plugin: [sort-ngmodule-metadata-arrays] handle literal metadata and computed properties (#667) (f993069)
- eslint-plugin: properly handle computed literals for some rules (#600) (fbd6ff7)
- eslint-plugin-template: [i18n] fixes some incorrect reports (#665) (a011b9d)
- eslint-plugin-template: [no-call-expression]:
FunctionCall
s not being reported (#601) (5552b13) - eslint-plugin-template: include more checks for
isHiddenFromScreenReader
(#545) (db2bc05)
- eslint-plugin: [prefer-on-push-component-change-detection] add suggestion (#666) (3723c4c)
- eslint-plugin: [use-injectable-provided-in] add suggestion (#594) (bdef8c7)
- utils: make package public (#673) (0386082)
12.3.1 (2021-07-15)
- eslint-plugin: handle literal
outputs
properly for [-output-] rules (#595) (8621a62) - template-parser: correct typings for cjs (#597) (bb60224)
12.3.0 (2021-07-13)
- eslint-plugin: [no-input-prefix] handle alias and
inputs
metadata property (#582) (675ee11) - eslint-plugin: [no-input-rename] handle alias and
inputs
metadata property (#583) (2883e18) - eslint-plugin: [use-component-view-encapsulation] handle literal
encapsulation
properly (#586) (3a9b7f4) - eslint-plugin: [use-pipe-transform-interface] handle type imports properly in fix (#592) (ac3fb12)
- builder: add noEslintrc option (#588) (4b150bf)
- builder: add resolvePluginsRelativeTo option (#590) (3bea308)
- builder: add rulesdir option (#589) (ff9557d)
- builder: added outputFile option (#587) (420734b)
- eslint-plugin: [component-selector] handle shadow dom components properly (#559) (ecbe684)
- eslint-plugin: [no-pipe-impure] add suggestion (#585) (149bf2f)
- schematics: better support @angular/cli 12.1 (#591) (c5da07b)
12.2.2 (2021-07-10)
- eslint-plugin: [no-output-on-prefix] handle
getters
andoutputs
metadata property (#566) (5884482) - eslint-plugin: [no-output-rename] handle
getters
andoutputs
metadata property (#568) (c803ffd)
12.2.1 (2021-07-10)
- eslint-plugin: [no-output-native] handle
getters
andoutputs
metadata property (#567) (22b378d) - eslint-plugin: [no-output-on-prefix] correct false positives (#525) (3a66274)
12.2.0 (2021-06-20)
- eslint-plugin: [no-output-native] correct false positives (#524) (215abec)
- eslint-plugin-template: [accessibility-table-scope] ignore custom elements (#550) (53eb56d)
- eslint-plugin-template: [accessibility-valid-aria] ignore custom elements (#552) (f6466ec)
- eslint-plugin-template: [no-autofocus] ignore custom elements (#540) (366d9df)
- eslint-plugin-template: [no-positive-tabindex] ignore custom elements (#551) (5e33995)
- builder: add
cacheStrategy
option (#520) (427a9f5) - eslint-plugin: [use-component-view-encapsulation] add suggestion (#501) (ea9e98d)
- eslint-plugin-template: [no-positive-tabindex] add suggestion (#541) (0582c2a)
12.1.0 (2021-05-30)
- eslint-plugin: [no-host-metadata-property] correct false positive with
allowStatic
option (#482) (89926d8) - eslint-plugin: [no-output-on-prefix] not reporting failures on alias (#471) (f9ba372)
- eslint-plugin: [relative-url-prefix] valid relative urls being reported (#456) (2247394)
- eslint-plugin-template: [18n] ignore
checkAttributes
properly (#467) (20e54d7) - eslint-plugin-template: [eqeqeq] change fix to suggest (#465) (a497fde)
- eslint-plugin-template: [no-negated-async] ignore double-bang (#450) (9d06488)
- schematics: skip config for tsconfig.e2e.json when no e2e project is present (#484) (2673e59)
- template-parser: generate correct index.d.ts when building (#480) (e150044)
- utils: support passing
data
andsuggestions
individually for each error (#491) (70b01bd)
- eslint-plugin: [no-empty-lifecycle-method] add suggestion (#463) (1d1a329)
- eslint-plugin: [no-host-metadata-property] add option to allow static values (#478) (d64c832)
- eslint-plugin: [no-input-rename] add option to allow some inputs (#475) (9c861dc)
- eslint-plugin: [prefer-output-readonly] add suggestion (#459) (f3ff789)
- eslint-plugin: [sort-ngmodule-metadata-arrays] add fixer (#493) (32fae47)
- eslint-plugin-template: [accessibility-table-scope] add fixer (#490) (f0c4cea)
- eslint-plugin-template: [accessibility-valid-aria] add suggestion (#489) (678e1b5)
- eslint-plugin-template: [no-any] add suggestion (#486) (720e869)
- eslint-plugin-template: [no-autofocus] add fixer (#485) (9450b7d)
- eslint-plugin-template: [no-distracting-elements] add fixer (#488) (9cefe67)
- eslint-plugin-template: [no-duplicate-attributes] add suggestion (#495) (62cadcd)
- eslint-plugin-template: [no-negated-async] add suggestion (#487) (0b3f9eb)
- schematics: on
ng add
include a lint command if none exists (#481) (ae49af4) - utils: add support for suggestions (#458) (0ea02ae)
12.0.0 (2021-05-13)
- template-parser: add missing
Conditional
and its keys toVisitorKeys
(#445) (5ad0f1a) - eslint-plugin-template: no-negated-async no longer performs equality checks (#399)
- update tslint-to-eslint-config to 2.4.0 (7352ad2)
- eslint-plugin-template: add rule eqeqeq (#444) (e15148c)
- update eslint to ^7.26.0, @typescript-eslint to 4.23.0 (9e31c38)
-
update to angular v12 (c80008d)
- All packages now require the use of Angular CLI >= 12.0.0 < 13
-
eslint-plugin-template: no-negated-async no longer performs equality checks (#399)
- You should add the new
@angular-eslint/template/eqeqeq
rule to your config if you want to continue with the same functionality around equality checks. This will be applied for you byng update
automatically.
- You should add the new
4.3.0 (2021-05-12)
4.2.1 (2021-05-12)
4.2.0 (2021-04-28)
4.1.0 (2021-04-28)
4.0.0 (2021-04-18)
We have provided automated migrations for you to move to v4.
All you need to do is run the update schematics for @angular-eslint
:
npx ng update @angular-eslint/schematics
NOTE: For this release, there are no automated migrations to be run, other than automatically updating the version number of your other @angular-eslint
packages.
-
Passing
--collection=@angular-eslint/schematics
tong new
is no longer supported:- If you attempt to do it you will get a clear error with instructions on what to do instead.
- This means we have one consistent way to add
@angular-eslint
to a workspace - runng add @angular-eslint/schematics
- regardless of whether that workspace is brand new or has existed for a while.
-
We have introduced two new options to the
convert-tslint-to-eslint
schematic:--remove-tslint-if-no-more-tslint-targets
so that we remove TSLint and Codelyzer from the workspace automatically if we detect you have no TSLint usage remaining (true
by default).--ignore-existing-tslint-config
so that we can jump straight to the up to date recommended ESLint setup, without converting the previous Angular CLI TSLint setup, which is unnecessary for brand new projects (false
by default).
3.0.1 (2021-04-18)
3.0.0 (2021-04-17)
PR #388 (f92b184)
We have provided automated migrations for you to move to v3.
All you need to do is run the update schematics for @angular-eslint
:
npx ng update @angular-eslint/schematics
- The
recommended
configs from@angular-eslint/eslin-plugin
now only configures rules directly from that plugin. This provides an overall more intuitive experience when stacking the recommended config with other plugins from the ecosystem. If you wish to continue having the same experience (with mixed@angular-eslint
and@typescript-eslint
rules in the configs you inherit from you can add the newrecommended--extra
config to your ESLint extends in the relevant config.
E.g. extract from .eslintrc.json
"extends": [
"plugin:@angular-eslint/recommended",
+ "plugin:@angular-eslint/recommended--extra",
],
-
Within the
builder
, linting now always runs relative to your workspace root. This should not have any impact on my workflows but is important if you runng lint
from within subdirectories of your workspace. -
Within the
builder
, we always make a call to format, even if the lint results are empty. This is important for non-default formatters. -
We have removed the hard peerDependency on the 3rd party eslint plugins
import
jsdoc
andprefer-arrow
. These plugins are only required if you are converted an existing workspace to TSLint and they will still be installed on demand in that scenario. -
Within the
eslint-plugin
, thecomponent-max-inline-declarations
rule will no longer accept negative values as input. Previously it would silently use the default values in this case. An automated migration is provided for this change as part of theng update
schematics.
2.1.1 (2021-04-17)
- eslint-plugin:
sort-ngmodule-metadata-arrays
reporting false positives (#408) (149152a) - eslint-plugin: directive-class-suffix reporting selectorless directives (#394) (42d4e5d)
- eslint-plugin-template: [i18n] remove unsafe fix (#411) (3246b8a)
2.1.0 (2021-04-11)
- builder: expose maxWarnings option (#402) (76f5ba4)
- eslint-plugin: no-call-expression incorrect reports for conditionals (#390) (fa9cc73)
- eslint-plugin-template: accessibility-elements-content not allowing some attributes/inputs (#397) (ffedaa2)
- eslint-plugin-template: i18n ignoreTags not being ignored properly (#387) (985f6c2)
- eslint-plugin-template: i18n reporting when a parent element already contains i18n id (#398) (c937a3f)
- eslint-plugin: add rule sort-ngmodule-metadata-arrays (#386) (935afdd)
- template-parser: support eslint-disable comments in HTML templates (#405) (5dd9578)
2.0.2 (2021-03-16)
2.0.1 (2021-03-14)
2.0.0 (2021-03-13)
We have provided automated migrations for you to move to v2.
All you need to do is first update to Angular and Angular CLI v11.2.0 or above (see https://update.angular.io for full instructions relating to Angular updates):
npx ng update @angular/cli @angular/core
And then run the update schematics for @angular-eslint
:
npx ng update @angular-eslint/schematics
- template-parser: add BindingPipe exp to VisitorKeys (#337) (#338) (75c406f)
- add docs url for both plugins (#360) (4c9b068)
-
The format of results output has changed
-
The
use-pipe-decorator
rule no longer exists for use -
feat(template-parser): updated use of parseTemplate to improve loc data
- Requires @angular/compiler 11.2.0 and above
-
feat(schematics): change way indent and quotes are handled by conversion schematics
- The conversion schematic handle these rules differently
1.2.0 (2021-02-06)
- eslint-plugin: component-max-inline-declarations animations not being checked properly (#313) (61a2a0f)
- eslint-plugin: no-lifecycle-call invalid super calls not being reported (#314) (c44cd5d)
- eslint-plugin-template: accessibility-valid-aria not reporting i… (#278) (391980f)
- eslint-plugin: add fixer for use-pipe-transform-interface (#260) (e3f4db6)
- eslint-plugin-template: add no duplicate attributes rule (#302) (c387de5), closes #293