This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Dec 29, 2022. It is now read-only.

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€ - #60

Open
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0
Open

Update @typescript-eslint/eslint-plugin to the latest version ๐Ÿš€#60
greenkeeper[bot] wants to merge 2 commits into
masterfrom
greenkeeper/@typescript-eslint/eslint-plugin-3.0.0

Conversation

@greenkeeper

Copy link
Copy Markdown
Contributor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


The devDependency @typescript-eslint/eslint-plugin was updated from 2.34.0 to 3.0.0.

This version is not covered by your current version range.

If you donโ€™t accept this pull request, your project will work just like it did before. However, you might be missing out on a bunch of new features, fixes and/or performance improvements from the dependency update.


Publisher:jameshenry
License: MIT

Release Notes for v3.0.0

This major release has been a long time coming! We've been saving up breaking changes for a while now, waiting for the ESLint v7 release which we knew would deprecate support for node version 8.

Due to our weekly release cadence, this major release mostly contains breaking changes!

Breaking Changes

Dropped support for Node version 8 (#1420)

In line with ESLint v7 - we've also dropped explicit support for node version 8.
This version of node has been end of life since 2019-12-31.
We no longer test against the version, so we provide no guarantees about whether or not future versions of our tooling will work on it.

Dropped support for TypeScript 3.2 (#2004)

Old TS versions cause us maintenance pain as we work on integrating tightly with the TypeScript APIs for performance and stability reasons.

As such we've updated our required TS version range to require a minimum of >=3.3.1.

Each version of TS brings bugfixes and features, but most importantly they bring performance improvements. TS 3.9 is releasing with a host of performance improvements that will improve both your build times, and your lint times - so you should endeavour to upgrade if you can. We cannot provide any guarantees around the performance of old TS versions.

Configs

We've updated all of our configs! We've added new rules, old rules, and removed some stylistic rules.

Both of the recommended and recommended-requiring-typechecking sets now inherit from the eslint-recommended set. We noticed that the majority of the time, users were using the sets in tandem, so this just removes one line of config for everyone.

Check out the linked issues for more information about added/removed rules:

  • eslint-recommended config (#1273)
  • recommended config (#1423)
  • recommended-requiring-typechecking (#1423)

Rules Changes

  • ban-types got a rework of its default ban list to provide some more sensible defaults and remove fixers that caused users issues. (#848)
  • no-floating-promises now has the ignoreVoid option set to true by default. (#2003)
  • no-unnecessary-condition
    • the ignoreRHS option has been removed. The rule will now only check the RHS when it matters (i.e. in boolean contexts). (#1163)
    • the checkArrayPredicates option has been removed. The rule will now always check array predicate functions. (#1579)
    • the rule now will report if you do an equality check against null/undefined when the value is not nullable. (#1659)
  • prefer-nullish-coalescing
    • the fixer has been converted to a suggestion fixer always - it was unsafe in most cases.
    • removed option forceSuggestionFixer.
  • prefer-optional-chain
    • the fixer has been converted to a suggestion fixer always - it was unsafe in a number of cases.
    • removed option suggestInsteadOfAutofix.
  • restrict-template-expressions
    • now has the allowNumber option set to true by default. (#2005)
    • allowNullable has been renamed to allowNullish. (#2006)
  • strict-boolean-expression received a complete rework. The rule is now more configurable, with smarter defaults and more intuitive logic. (#1515)

Rule Removals

The following deprecated rules have been deleted. Please switch to the listed alternative:

AST Changes

  • typescript-estree now emits a TSEmptyBodyFunctionExpression when it encounters a function expression without a body. Previously this was done in parser (for legacy reasons). This change should only affect users directly consuming typescript-estree. (#1289)
  • When a method is marked as optional (class Foo { name?() {} }) we now mark the MethodDefinition/TSAbstractMethodDefinition as optional. Previously we marked the key of the node as optional, but this only works if the key is an Identifier, and didn't work in the case of a computed key (class Foo { ['name']?() {} }). (#1429)
  • Import expressions (import('foo')) now conform to the newly released ESTree spec, outputting as an ImportExpression. (#1950)
  • BigInt literals now conform to the newly released ESTree spec, outputting as a Literal with a value of type bigint. (#1999)

Parser Services

parserServices are now always emitted from both typescript-estree and parser, regardless of the parserOptions.project configuration. (#716)

This will allow you to consume parts of the TypeScript API that are generated at the file level, like variable usage diagnostics, without requiring full type information is generated for the project.

Part of this change includes a new boolean flag on the output: parserServices.hasFullTypeInformation which is true when parserOptions.project was configured, and false otherwise.

If you were using our getParserServices function from experimental-utils, then this will be handled automatically, and you will not notice any changes. If you built your own function for resolving the parserServices, then you'll have to update accordingly.

ESLint Types (experimental-utils)

The old version of our ESLint types were based on those found in the DefinitelyTyped repo. There was a lot of missing documentation, missing properties, misnamed types.

As part of this release, we've reworked some of the internals to be much closer to the ESLint library itself. (#2023)

As part of this change, we have also added the types for the new ESLint class.
SourceCode.isSpaceBetween has also been marked as optional, because it is only available in ESLint v6+

Non-breaking changes

ESLint v7

We now have full support for ESLint v7 (#1550).

Better handling for TS 3.9's non-null assertion changes (#2036)

TS 3.9 introduced a breaking change for how non-null assertions are handled in optional chains.

Pre-3.9, x?.y!.z means (x?.y).z - i.e. it essentially scrubbed the optionality from the chain
Post-3.9, x?.y!.z means x?.y!.z - i.e. it just asserts that the property y is non-null, not the result of x?.y

Previously x?.y!.z produced MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
Now it produces OptionalMemberExpression > TSNonNullAssertion > OptionalMemberExpression.

Note that both (x?.y)!.z and (x?.y!).z still produce MemberExpression > TSNonNullAssertion > OptionalMemberExpression.
The same applies for call expressions.

The rule no-non-null-asserted-optional-chain was also updated to handle this appropriately. It will no longer error on x?.y!.z, but it will still error on (x?.y)!.z.

Bug Fixes

  • eslint-plugin: [dot-notation] fix typo in schema (#2040) (242328f)
Commits

The new version differs by 34 commits.

  • 1765a17chore: remove v3 canary Ci step
  • 7e39f5bv3.0.0
  • 3dfc46dfeat: add index files to parser and typescript-estree
  • 52b6085feat(eslint-plugin): [prefer-nullish-coalescing][prefer-optional-chain] remove unsafe fixers
  • ae82ea4fix(experimental-utils): add back SourceCode.isSpaceBetweenTokens
  • fe59f69fix(eslint-plugin): correct parser peerDep version
  • f199cbdfix(typescript-estree): remove now defunct Import node type
  • a35026dchore: provide more granularity in the CI logs (#2024)
  • 06869c9feat(experimental-utils): upgrade eslint types for v7 (#2023)
  • 208de71feat: upgrade to ESLint v7 (#2022)
  • 7ad4d7cfeat: bump minimum required TS version (#2004)
  • 264b017feat(eslint-plugin): [restrict-template-expressions] rename allowNullable to allowNullish (#2006)
  • bfd9b60feat(eslint-plugin): [no-unnecessary-condition] remove checkArrayPredicates and always check it (#1579)
  • 7fa9060feat(eslint-plugin): [no-unnecessary-condition] report when non-nullish is compared to null/undefined (#1659)
  • 643ec24feat(eslint-plugin): [restrict-template-expressions] allowNumber: true by default (#2005)

There are 34 commits in total.

See the full diff


FAQ and help

There is a collection of frequently asked questions. If those donโ€™t help, you can always ask the humans behind Greenkeeper.


Your Greenkeeper bot ๐ŸŒด

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Release Notes for v3.0.1

3.0.1 (2020-05-25)

Bug Fixes

  • eslint-plugin: [naming-convention] handle no options correctly (#2095) (fd7d02b)
  • eslint-plugin: [no-throw-literal] handle intersection and union types (#2085) (cae037f)
  • eslint-plugin: [unbound-method] fix crash due to missing Intl (#2090) (f2fa82c)
  • experimental-utils: export CLIEngine & ESLint (#2083) (014341b)
  • typescript-estree: handle BigInt with _ numeric separator (#2067) (66f1627)
  • typescript-estree: mark TS 3.8 and 3.9 as "supported" (#2057) (5eedbff), closes #1436#1436
Commits

The new version differs by 17 commits.

  • a71b9c9chore: publish v3.0.1
  • fd7d02bfix(eslint-plugin): [naming-convention] handle no options correctly (#2095)
  • cae037ffix(eslint-plugin): [no-throw-literal] handle intersection and union types (#2085)
  • f2fa82cfix(eslint-plugin): [unbound-method] fix crash due to missing Intl (#2090)
  • 014341bfix(experimental-utils): export CLIEngine & ESLint (#2083)
  • 893b8dddocs(eslint-plugin): [naming-convention] improve comment text regarding ESLint's camelCase (#2080)
  • 1cb1cb5docs(eslint-plugin): [naming-convention] document ignoring quoted properties (#2071)
  • 071e5a0docs: various updates based on v3 feedback (#2070)
  • 66f1278docs(eslint-plugin): [explicit-module-boundary-types] fix allowedNames config example (#2061)
  • 66f1627fix(typescript-estree): handle BigInt with _ numeric separator (#2067)
  • 765ec4bdocs: update supported TS version in readme (#2059)
  • 5eedbfffix(typescript-estree): mark TS 3.8 and 3.9 as "supported" (#2057)
  • 159c225chore: link GH release in changelogs (#2055)
  • 729f2a2docs(eslint-plugin): remove mention of eslint-recommended (#2053)
  • 23b4b66docs(eslint-plugin): remove ignoreRHS from no-unnecessary-condition (#2052)

There are 17 commits in total.

See the full diff

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

@greenkeeper

Copy link
Copy Markdown
ContributorAuthor

๐Ÿšจ Reminder! Less than one month left to migrate your repositories over to Snyk before Greenkeeper says goodbye on June 3rd! ๐Ÿ’œ ๐Ÿšš๐Ÿ’จ ๐Ÿ’š

Find out how to migrate to Snyk at greenkeeper.io


Update to this version instead ๐Ÿš€

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@NewFuture