Skip to content
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

feat(linter): eslint-plugin-react checked-requires-onchange-or-readonly #2754

Merged

Conversation

@github-actions github-actions bot added the A-linter Area - Linter label Mar 18, 2024
@overlookmotel overlookmotel force-pushed the checked-requires-onchange-or-readonly branch from 7f48938 to 3f1104e Compare March 18, 2024 20:49
@overlookmotel
Copy link
Collaborator

@keita-hino In case you're wondering why I have rebased this on main, I made a mistake when converting the benchmarks to run sharded, which lead to benchmarks results not being submitted correctly on some PRs. Now fixed (#2759) so am re-running benchmarks on affected PRs by rebasing on top of the fix.

Copy link

codspeed-hq bot commented Mar 18, 2024

CodSpeed Performance Report

Merging #2754 will not alter performance

Comparing keita-hino:checked-requires-onchange-or-readonly (5825a98) with main (5080913)

Summary

✅ 34 untouched benchmarks

@keita-hino
Copy link
Contributor Author

keita-hino commented Mar 18, 2024

@overlookmotel Thank you for the fix!

Copy link
Member

@Dunqing Dunqing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your work! Let's improve the error message to make it clearer.

@keita-hino
Copy link
Contributor Author

I'm reconsidering whether performance can be improved.

@Dunqing
Copy link
Member

Dunqing commented Mar 20, 2024

I'm reconsidering whether performance can be improved.

We should try to avoid making memory allocations such as calling to_string

@Dunqing
Copy link
Member

Dunqing commented Mar 20, 2024

I suddenly realized that you don't need to collect prop_names, you just need to iterate through the properties and if you find readOnly or onChange that's the end of it, if not, emit a diagnostic message

@keita-hino keita-hino marked this pull request as draft March 20, 2024 05:54
@keita-hino
Copy link
Contributor Author

I have marked the PR as draft to address the performance degradation.

@Dunqing
Copy link
Member

Dunqing commented Mar 20, 2024

The current implementation works well, but it seems we could still improve it by traversing once to find checked, readOnly, onChange and defaultChecked.

@keita-hino keita-hino marked this pull request as ready for review March 20, 2024 07:05
Copy link
Member

@Dunqing Dunqing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Thanks for the effort you put into improving it!

@Dunqing Dunqing merged commit 53ffbc6 into oxc-project:main Mar 20, 2024
32 checks passed
@keita-hino keita-hino deleted the checked-requires-onchange-or-readonly branch March 20, 2024 07:54
@keita-hino
Copy link
Contributor Author

@Dunqing Thank you for your thoughtful review and suggestions for improvement🙏 I've learned a lot!

Brooooooklyn pushed a commit to toeverything/AFFiNE that referenced this pull request Apr 11, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc-project.github.io) ([source](https://togithub.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.2.14` -> `0.2.17`](https://renovatebot.com/diffs/npm/oxlint/0.2.14/0.2.17) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.2.14/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.2.14/0.2.17?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.2.17`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.2.17): oxlint v0.2.17

[Compare Source](https://togithub.com/oxc-project/oxc/compare/7066d55153ad70f95ae975adc3958c1010f9c5ff...df11d10a2220e9aa7a33d9ab39ed662c2ba6fdb5)

##### What's Changed

-   feat(linter): eslint-plugin-jest/prefer-lowercase-title by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2911
-   feat(linter): typescript-eslint/consistent-type-definitions by [@&#8203;todor-a](https://togithub.com/todor-a) in [oxc-project/oxc#2885
-   fix(cli): fix `oxlint --format json` yields 0 files to lint by [@&#8203;Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#2940
-   fix(cli): if format is json do not print summary information ([#&#8203;2899](https://togithub.com/oxc-project/oxc/issues/2899)) by [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) in [oxc-project/oxc#2925
-   fix(linter): import/no-cycle ignore type-only imports by [@&#8203;JohnDaly](https://togithub.com/JohnDaly) in [oxc-project/oxc#2924
-   refactor(semantic/jsdoc): Rework JSDoc struct for better Span handling by [@&#8203;leaysgur](https://togithub.com/leaysgur) in [oxc-project/oxc#2917

##### New Contributors

-   [@&#8203;bradzacher](https://togithub.com/bradzacher) made their first contribution in [oxc-project/oxc#2938

**Full Changelog**: oxc-project/oxc@oxlint_v0.2.16...oxlint_v0.2.17

### [`v0.2.16`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.2.16): oxlint v0.2.16

[Compare Source](https://togithub.com/oxc-project/oxc/compare/e7307ed23ca9b0707586b6bf4220cafb221ae86e...7066d55153ad70f95ae975adc3958c1010f9c5ff)

#### What's Changed

-   feat(linter): [@&#8203;typescript-eslint/prefer-for-of](https://togithub.com/typescript-eslint/prefer-for-of) by [@&#8203;charnog](https://togithub.com/charnog) in [oxc-project/oxc#2789
-   feat(linter): Implement jsdoc/check-access by [@&#8203;leaysgur](https://togithub.com/leaysgur) in [oxc-project/oxc#2642
-   feat(linter): Implement jsdoc/empty-tags by [@&#8203;leaysgur](https://togithub.com/leaysgur) in [oxc-project/oxc#2893
-   feat(linter): eslint-plugin-jest/prefer-mock-promise-sorthand by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2864
-   feat(linter/import): Add `ignoreTypes` option for the `import/no-cycle` rule by [@&#8203;JohnDaly](https://togithub.com/JohnDaly) in [oxc-project/oxc#2905
-   fix(ast): `FinallyClause` won't get visited as `BlockStatement` anymore. by [@&#8203;rzvxa](https://togithub.com/rzvxa) in [oxc-project/oxc#2881
-   fix(linter): handle self closing script tags in astro partial loader ([#&#8203;2017](https://togithub.com/oxc-project/oxc/issues/2017)) by [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) in [oxc-project/oxc#2907
-   fix(linter): svelte partial loader handle generics ([#&#8203;2875](https://togithub.com/oxc-project/oxc/issues/2875)) by [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) in [oxc-project/oxc#2906

#### New Contributors

-   [@&#8203;charnog](https://togithub.com/charnog) made their first contribution in [oxc-project/oxc#2789
-   [@&#8203;kalvenschraut](https://togithub.com/kalvenschraut) made their first contribution in [oxc-project/oxc#2906
-   [@&#8203;JohnDaly](https://togithub.com/JohnDaly) made their first contribution in [oxc-project/oxc#2905

**Full Changelog**: oxc-project/oxc@oxlint_v0.2.15...oxlint_v0.2.16

### [`v0.2.15`](https://togithub.com/oxc-project/oxc/releases/tag/oxlint_v0.2.15): oxlint v0.2.15

[Compare Source](https://togithub.com/oxc-project/oxc/compare/b1343d7bcbd490105583b561946f057ac91e40cf...e7307ed23ca9b0707586b6bf4220cafb221ae86e)

#### What's Changed

-   feat(linter): default_param_last by [@&#8203;JoSeBu1](https://togithub.com/JoSeBu1) in [oxc-project/oxc#2756
-   feat(linter): eslint-plugin-jest/no-untyped-mock-factory by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2807
-   feat(linter): eslint-plugin-jest/prefer-comparison-matcher by [@&#8203;eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2806
-   feat(linter): eslint-plugin-react checked-requires-onchange-or-readonly by [@&#8203;keita-hino](https://togithub.com/keita-hino) in [oxc-project/oxc#2754
-   feat(linter): eslint/no-iterator by [@&#8203;JoSeBu1](https://togithub.com/JoSeBu1) in [oxc-project/oxc#2758
-   feat(linter): fallback to the default tsconfig path by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2842
-   feat(linter): no_script_url by [@&#8203;JoSeBu1](https://togithub.com/JoSeBu1) in [oxc-project/oxc#2761
-   feat(linter/import) check deep namespace in namespace rule by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2805
-   feat(linter/import) check module import in no_duplicates by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2771
-   feat(linter/import) check type import in no_duplicates by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2777
-   feat(linter/import) support allow_computed option in namespace by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2840
-   feat(linter/import) support check re-export in named by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2769
-   feat(linter/import): ignore type-only imports and exports in no_unresolved by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2849
-   fix(linter/import): false positive for indirect export in namespace by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2862
-   fix(linter/import): ignore export declaration in no-duplicates by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2863
-   fix(linter/max-lines): only report codes that exceed the line limit by [@&#8203;mysteryven](https://togithub.com/mysteryven) in [oxc-project/oxc#2778
-   fix(parser): add support for empty module declaration by [@&#8203;rzvxa](https://togithub.com/rzvxa) in [oxc-project/oxc#2834

#### New Contributors

-   [@&#8203;rzvxa](https://togithub.com/rzvxa) made their first contribution in [oxc-project/oxc#2764

**Full Changelog**: oxc-project/oxc@oxlint_v0.2.14...oxlint_v0.2.15

</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 [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjI2OS4yIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linter Area - Linter
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants