fix: throw error for first unmatched pattern#16533
Merged
Conversation
✅ Deploy Preview for docs-eslint canceled.
|
snitin315
approved these changes
Nov 11, 2022
Contributor
snitin315
left a comment
There was a problem hiding this comment.
LGTM. I'll leave it open in case someone else wants to review it.
nzakas
requested changes
Nov 11, 2022
Member
nzakas
left a comment
There was a problem hiding this comment.
Code and result looks okay, but I think may need a bit of refactoring for clarity.
| * any files and `errorOnUnmatchedPattern` is true. | ||
| * @throws {AllFilesIgnoredError} If there is a pattern that matches files | ||
| * when there are no ignores. | ||
| * @param {Array<string>} options.unmatchedPatterns A non-empty array of glob patterns |
Member
There was a problem hiding this comment.
If we only need the first item, why pass the whole array?
Member
Author
There was a problem hiding this comment.
I thought about passing in just the first item, but in the end I decided that it might make more sense to just pass all the data from the search and let throwErrorForUnmatchedPatterns construct the error from that, so that all the logic about what needs to be checked further and what information will the error contain is in throwErrorForUnmatchedPatterns.
Co-authored-by: Nicholas C. Zakas <nicholas@humanwhocodes.com>
crapStone
pushed a commit
to Calciumdibromid/CaBr2
that referenced
this pull request
Nov 28, 2022
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.27.0` -> `8.28.0`](https://renovatebot.com/diffs/npm/eslint/8.27.0/8.28.0) | --- ### Release Notes <details> <summary>eslint/eslint</summary> ### [`v8.28.0`](https://github.com/eslint/eslint/releases/tag/v8.28.0) [Compare Source](eslint/eslint@v8.27.0...v8.28.0) #### Features - [`63bce44`](eslint/eslint@63bce44) feat: add `ignoreClassFieldInitialValues` option to no-magic-numbers ([#​16539](eslint/eslint#16539)) (Milos Djermanovic) - [`8385ecd`](eslint/eslint@8385ecd) feat: multiline properties in rule `key-spacing` with option `align` ([#​16532](eslint/eslint#16532)) (Francesco Trotta) - [`a4e89db`](eslint/eslint@a4e89db) feat: `no-obj-calls` support `Intl` ([#​16543](eslint/eslint#16543)) (Sosuke Suzuki) #### Bug Fixes - [`c50ae4f`](eslint/eslint@c50ae4f) fix: Ensure that dot files are found with globs. ([#​16550](eslint/eslint#16550)) (Nicholas C. Zakas) - [`9432b67`](eslint/eslint@9432b67) fix: throw error for first unmatched pattern ([#​16533](eslint/eslint#16533)) (Milos Djermanovic) - [`e76c382`](eslint/eslint@e76c382) fix: allow `* 1` when followed by `/` in no-implicit-coercion ([#​16522](eslint/eslint#16522)) (Milos Djermanovic) #### Documentation - [`34c05a7`](eslint/eslint@34c05a7) docs: Language Options page intro and tweaks ([#​16511](eslint/eslint#16511)) (Ben Perlmutter) - [`3e66387`](eslint/eslint@3e66387) docs: add intro and edit ignoring files page ([#​16510](eslint/eslint#16510)) (Ben Perlmutter) - [`436f712`](eslint/eslint@436f712) docs: fix Header UI inconsistency ([#​16464](eslint/eslint#16464)) (Tanuj Kanti) - [`f743816`](eslint/eslint@f743816) docs: switch to wrench emoji for auto-fixable rules ([#​16545](eslint/eslint#16545)) (Bryan Mishkin) - [`bc0547e`](eslint/eslint@bc0547e) docs: improve styles for versions and languages page ([#​16553](eslint/eslint#16553)) (Nitin Kumar) - [`6070f58`](eslint/eslint@6070f58) docs: clarify esquery issue workaround ([#​16556](eslint/eslint#16556)) (Milos Djermanovic) - [`b48e4f8`](eslint/eslint@b48e4f8) docs: Command Line Interface intro and tweaks ([#​16535](eslint/eslint#16535)) (Ben Perlmutter) - [`b92b30f`](eslint/eslint@b92b30f) docs: Add Rules page intro and content tweaks ([#​16523](eslint/eslint#16523)) (Ben Perlmutter) - [`1769b42`](eslint/eslint@1769b42) docs: Integrations page introduction ([#​16548](eslint/eslint#16548)) (Ben Perlmutter) - [`a8d0a57`](eslint/eslint@a8d0a57) docs: make table of contents sticky on desktop ([#​16506](eslint/eslint#16506)) (Sam Chen) - [`a01315a`](eslint/eslint@a01315a) docs: fix route of japanese translation site ([#​16542](eslint/eslint#16542)) (Tanuj Kanti) - [`0515628`](eslint/eslint@0515628) docs: use emoji instead of svg for deprecated rule ([#​16536](eslint/eslint#16536)) (Bryan Mishkin) - [`68f1288`](eslint/eslint@68f1288) docs: set default layouts ([#​16484](eslint/eslint#16484)) (Percy Ma) - [`776827a`](eslint/eslint@776827a) docs: init config about specifying shared configs ([#​16483](eslint/eslint#16483)) (Percy Ma) - [`5c39425`](eslint/eslint@5c39425) docs: fix broken link to plugins ([#​16520](eslint/eslint#16520)) (Ádám T. Nagy) - [`c97c789`](eslint/eslint@c97c789) docs: Add missing no-new-native-nonconstructor docs code fence ([#​16503](eslint/eslint#16503)) (Brandon Mills) #### Chores - [`e94a4a9`](eslint/eslint@e94a4a9) chore: Add tests to verify [#​16038](eslint/eslint#16038) is fixed ([#​16538](eslint/eslint#16538)) (Nicholas C. Zakas) - [`e13f194`](eslint/eslint@e13f194) chore: stricter validation of `meta.docs.description` in core rules ([#​16529](eslint/eslint#16529)) (Milos Djermanovic) - [`72dbfbc`](eslint/eslint@72dbfbc) chore: use `pkg` parameter in `getNpmPackageVersion` ([#​16525](eslint/eslint#16525)) (webxmsj) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yOS4xIiwidXBkYXRlZEluVmVyIjoiMzQuNDAuMCJ9--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1652 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Prerequisites checklist
What is the purpose of this pull request? (put an "X" next to an item)
[ ] Documentation update
[x] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[ ] Other, please explain:
Addresses #16462 (review).
When there are multiple unmatched patterns, both ESLint and FlatESLint throw an error containing information about only one pattern. The error can be either that the pattern doesn't match any files or that it matches only ignored files.
The difference is that ESLint always throws an error for the very first unmatched pattern, while FlatESLint first checks if there are patterns that match ignored files.
To reproduce, run
eslint "doesnotexist/*.js" "tests/fixtures/*.js".ESLint:
FlatESLint:
It's an error either way, but I think ESLint behavior is preferable as it would be surprising for users that after fixing or removing the reported pattern, eslint in the next run reports an error for a preceding pattern. Checking only the first pattern also simplifies the code a bit, and is better for performance in this, albeit exceptional, scenario.
What changes did you make? (Give an overview)
I changed the code in
eslint-helpersto always check only the first unmatched pattern.Is there anything you'd like reviewers to focus on?