-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
fix(eslint-plugin): correct rule schemas to pass ajv validation #5531
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(eslint-plugin): correct rule schemas to pass ajv validation #5531
Conversation
Thanks for the PR, @JoshuaKGoldberg! typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community. The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately. Thanks again! 🙏 Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently on https://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitors per day. |
✅ Deploy Preview for typescript-eslint ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
description: | ||
'The array type expected for readonly cases. If omitted, the value for `default` will be used.', | ||
}, | ||
prefixItems: [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This syntax is a little more heavyweight than schema: [ ... ]
arrays. It would be nice if someone could figure out a way to use $ref
s within arrays. I couldn't.
cc @bchery 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Codecov Report
@@ Coverage Diff @@
## main #5531 +/- ##
==========================================
+ Coverage 91.75% 93.92% +2.17%
==========================================
Files 366 290 -76
Lines 12380 10024 -2356
Branches 3611 3016 -595
==========================================
- Hits 11359 9415 -1944
+ Misses 669 330 -339
+ Partials 352 279 -73
Flags with carried forward coverage won't be shown. Click here to find out more. |
This is released in If this exact issue is still happening for you, please go through https://github.com/typescript-eslint/typescript-eslint/issues/new/choose to file a new issue. Be sure to check all versions of your installed packages. Thanks for your patience all - and apologies again for the disruption! ❤️ |
@typescript-eslint/eslint-plugin 5.34.0 → 5.35.1 No longer see the issue. :) |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.33.1` -> `5.35.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.33.1/5.35.1) | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.33.1` -> `5.35.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.33.1/5.35.1) | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v5.35.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5351-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5350v5351-2022-08-24) [Compare Source](typescript-eslint/typescript-eslint@v5.35.0...v5.35.1) ##### Bug Fixes - **eslint-plugin:** correct rule schemas to pass ajv validation ([#​5531](typescript-eslint/typescript-eslint#5531)) ([dbf8b56](typescript-eslint/typescript-eslint@dbf8b56)) ### [`v5.35.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5350-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5340v5350-2022-08-24) [Compare Source](typescript-eslint/typescript-eslint@v5.34.0...v5.35.0) ##### Features - **eslint-plugin:** \[explicit-member-accessibility] suggest adding explicit accessibility specifiers ([#​5492](typescript-eslint/typescript-eslint#5492)) ([0edb94a](typescript-eslint/typescript-eslint@0edb94a)) ### [`v5.34.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5340-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5331v5340-2022-08-22) [Compare Source](typescript-eslint/typescript-eslint@v5.33.1...v5.34.0) ##### Bug Fixes - **eslint-plugin:** \[no-useless-constructor] handle parameter decorator ([#​5450](typescript-eslint/typescript-eslint#5450)) ([864dbcf](typescript-eslint/typescript-eslint@864dbcf)) ##### Features - **eslint-plugin:** \[prefer-optional-chain] support suggesting `!foo || !foo.bar` as a valid match for the rule ([#​5266](typescript-eslint/typescript-eslint#5266)) ([aca935c](typescript-eslint/typescript-eslint@aca935c)) #### [5.33.1](typescript-eslint/typescript-eslint@v5.33.0...v5.33.1) (2022-08-15) ##### Bug Fixes - missing placeholders in violation messages for `no-unnecessary-type-constraint` and `no-unsafe-argument` (and enable `eslint-plugin/recommended` rules internally) ([#​5453](typescript-eslint/typescript-eslint#5453)) ([d023910](typescript-eslint/typescript-eslint@d023910)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v5.35.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5351-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5350v5351-2022-08-24) [Compare Source](typescript-eslint/typescript-eslint@v5.35.0...v5.35.1) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) ### [`v5.35.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5350-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5340v5350-2022-08-24) [Compare Source](typescript-eslint/typescript-eslint@v5.34.0...v5.35.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) ### [`v5.34.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5340-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5331v5340-2022-08-22) [Compare Source](typescript-eslint/typescript-eslint@v5.33.1...v5.34.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) #### [5.33.1](typescript-eslint/typescript-eslint@v5.33.0...v5.33.1) (2022-08-15) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) </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 these updates again. --- - [x] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xNjkuMSIsInVwZGF0ZWRJblZlciI6IjMyLjE3My4wIn0=--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Co-authored-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1519 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 PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.35.1` -> `5.36.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.35.1/5.36.1) | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.35.1` -> `5.36.1`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.35.1/5.36.1) | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v5.36.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5361-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5360v5361-2022-08-30) [Compare Source](typescript-eslint/typescript-eslint@v5.36.0...v5.36.1) **Note:** Version bump only for package [@​typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/eslint-plugin) ### [`v5.36.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5360-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5351v5360-2022-08-30) [Compare Source](typescript-eslint/typescript-eslint@v5.35.1...v5.36.0) ##### Bug Fixes - **eslint-plugin:** revert [#​5266](typescript-eslint/typescript-eslint#5266) ([#​5564](typescript-eslint/typescript-eslint#5564)) ([7a8afe2](typescript-eslint/typescript-eslint@7a8afe2)) ##### Features - support TypeScript 4.8 ([#​5551](typescript-eslint/typescript-eslint#5551)) ([81450ed](typescript-eslint/typescript-eslint@81450ed)) #### [5.35.1](typescript-eslint/typescript-eslint@v5.35.0...v5.35.1) (2022-08-24) ##### Bug Fixes - **eslint-plugin:** correct rule schemas to pass ajv validation ([#​5531](typescript-eslint/typescript-eslint#5531)) ([dbf8b56](typescript-eslint/typescript-eslint@dbf8b56)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v5.36.1`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5361-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5360v5361-2022-08-30) [Compare Source](typescript-eslint/typescript-eslint@v5.36.0...v5.36.1) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) ### [`v5.36.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5360-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5351v5360-2022-08-30) [Compare Source](typescript-eslint/typescript-eslint@v5.35.1...v5.36.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) #### [5.35.1](typescript-eslint/typescript-eslint@v5.35.0...v5.35.1) (2022-08-24) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) </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 these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzMi4xODIuNCIsInVwZGF0ZWRJblZlciI6IjMyLjE4Mi40In0=--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1530 Reviewed-by: crapStone <crapstone@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
PR Checklist
Overview
Many rules use one or both of the following JSON schema features:
For example,
ban-ts-comment
options separate out adirectiveConfigSchema
ref representing a union offalse
,"allow-with-description"
, or an object withdescriptionFormat?: string
. See https://typescript-eslint.io/rules/ban-ts-comment/#options.Although what we use to auto-generate much of the rule docs on typescript-eslint.io works for rules that both use the array format and schema refs (#5386), the settings used by ESLint during runtime validation are apparently much more strict.
This PR switches from
schema: [ ... ]
toschema: { ... }
using JSON schema's native tuple validation on just the rules causing complaints. It's a little bit uglier code but fixes the errors.