All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- BREAKING: Bump minimum Node.js version from 16 to 18.18 (#371)
- BREAKING: Bump peer dependency on ESLint from
^8.57.0
to^9.11.0
(#370)- ESLint 9 requires flat configs, so this change also rewrites the configs to use flat configs. The legacy config format is no longer supported.
- BREAKING: Bump peer dependency on
@metamask/eslint-config
from^13.0.0
to^14.0.0
(#377) - BREAKING: Bump peer dependency on
eslint-config-prettier
from^8.5.0
to^9.1.0
(#370) - BREAKING: Bump peer dependency on
eslint-plugin-import-x
from^0.5.1
to^4.3.0
(#370) - BREAKING: Bump peer dependency on
eslint-plugin-jsdoc
from>=43.0.7 <48
to^50.2.4
(#370) - BREAKING: Bump peer dependency on
eslint-plugin-prettier
from^4.2.1
to^5.2.1
(#370) - BREAKING: Bump peer dependency on
eslint-plugin-promise
from^6.1.1
to^7.1.0
(#370) - BREAKING: Bump peer dependency on
prettier
from^2.7.1
to^3.3.3
(#370) - BREAKING: Change package to be pure ESM (#370)
- ESLint 9 supports ESM out-of-the-box, so this change updates the package to
be pure ESM. This means that the package can no longer be used with CommonJS
require
syntax.
- ESLint 9 supports ESM out-of-the-box, so this change updates the package to
be pure ESM. This means that the package can no longer be used with CommonJS
- BREAKING: Replace
eslint-plugin-import
witheslint-plugin-import-x
(#366) - BREAKING: Bump all ESLint dependencies (#351)
- Bumps all ESLint dependencies to the latest version compatible with Node.js 16.
- BREAKING: Bump minimum Node.js version from 14 to 16 (#332, #339)
- Remove deprecated rule
jsdoc/newline-after-description
(#290)- This means the plugin can now be used with
eslint-plugin-jsdoc
versions42
and above.
- This means the plugin can now be used with
- Pin
eslint-plugin-import@~2.26.0
to avoid a regression ineslint-plugin-import@2.27.0
(#307) - Change
endOfLine
rules to better support linting on Windows (#311)
- Add support for typescript 5.0.x, 5.1.x (#288)
- BREAKING: Add
eslint-plugin-promise
peer dependency, and enableno-multiple-resolved
(#287)
- Exclude test files from package (#266)
- Stop requiring newlines between multiline blocks/expressions (#263)
- Enable function expressions again (#258)
- We didn't realize this rule would disallow class methods, even class constructors. This was too disruptive.
- BREAKING: Enable id-denylist and id-length in base config (#200)
- BREAKING: Add rules for hybrid Node.js and browser environments (#242)
- The base config now only allows globals and modules that are available in both Node.js and browsers.
- This adds a new
@metamask/eslint-config-browser
package, to be used in browser-only environments. - The
@metamask/eslint-config-nodejs
package has been updated to allow Node.js-only globals and modules.
- BREAKING: Remove no-undef in favour of custom environments configuration (#254)
- BREAKING: Bump all ESLint dependencies to the latest version (#252)
- This includes peer dependencies.
- BREAKING: Automatically sort imports (#248)
- BREAKING: Disable more undesired syntax (#207)
- This disables the
with
statement, function expressions, and thein
operator.
- This disables the
- BREAKING: Update ESLint from v7 to v8 (#233)
- This is breaking because
eslint
is apeerDependency
. - Four new rules have been added:
- This is breaking because
- BREAKING: Update
eslint-plugin-prettier
from v3 to v4 (#231)- This is breaking beacuse
eslint-plugin-prettier
is apeerDependency
.
- This is breaking beacuse
- BREAKING: Update minimum Node.js version to v14 (#225)
- Ignore rest siblings for
no-unused-vars
(#213)- This makes the
no-unused-vars
rule more permissive
- This makes the
- BREAKING: Add JSDoc ESLint rules (#203)
- BREAKING: Require newlines between multiline blocks and expressions (#197)
- Restore default
parserOptions
(#193)- By extending the recommended
eslint-plugin-import
rules, we accidentally changed the defaultparserOptions.sourceType
tomodule
. ThesourceType
is now explicitly set toscript
. - In some cases,
parserOptions.ecmaVersion
could also be set to an incorrect version. TheecmaVersion
is now explicitly set to2017
, matching the corresponding setting inenv
.
- By extending the recommended
- BREAKING: Update Prettier
quoteProps
rule toas-needed
(#181) - BREAKING: Update ESLint
no-shadow
config (#168) - Use recommended
eslint-plugin-import
rule sets (#184)- This only removed or disabled rules, and is not breaking.
- Update install instructions in readme (#185)
- Normalize rule config values (#169)
6.0.0 - 2021-04-08
- BREAKING: Set minimum Node.js version to
^12.0.0
(#144) - BREAKING: Set ECMAScript version to
es2017
/8
(#150) - BREAKING: Add the Prettier ESLint plugin and extend the recommended Prettier ESLint config (#96)
- Update
eslint
and other ESLint peer dependencies (#151)
- BREAKING: All configs except the base config (#141)
- All configs are now published as separate packages, and must be extended by referencing their package names:
5.0.0 - 2021-02-02
- BREAKING: Enable
semi
in base config (#101) - BREAKING: Disallow spaces before parentheses of named functions (#101)
- BREAKING: Upgrade to TypeScript v4 and corresponding
@typescript-eslint
dependencies (#79, #80, #103)
4.1.0 - 2020-10-21
4.0.0 - 2020-10-20
- BREAKING: Update to ESLint v7 (#46, #58, #62, #63)
- Relax
member-delimiter-style
for TypeScript (#68) - Disable
space-before-function-paren
for TypeScript (#65)
3.2.0 - 2020-08-20
- Relax
prefer-destructuring
rules (#57)
3.1.0 - 2020-08-19
- Disable prefer-object-spread (#54)
3.0.0 - 2020-08-11
- Disallow all anonymous default exports (#52)
- Set maximum empty lines to 1 (#51)
2.2.0 - 2020-07-14
- Relax no-plusplus rule (#44)
2.1.1 - 2020-04-17
- Disable
require-await
(#37)
2.1.0 - 2020-02-24
- Disable
@typescript-eslint/no-extra-parens
(#29)
2.0.0 - 2020-02-20
- Add import rules to base config (#24)
- Clarified TypeScript config & publishing docs
- Explicitly specify all core rules (#17)
- Update TypeScript config (#25)
- Remove root flag from TS config (#20)
1.2.0 - 2020-02-18
- Disable Jest lowercase-name for describe blocks (#14)
1.1.0 - 2020-02-11
- Add README file
- Add Mocha config (#13)
1.0.0 - 2020-01-21
- Add base, TypeScript, and Jest configs (#3)