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/unicorn): add prefer-structured-clone #5095

Merged
merged 2 commits into from
Aug 23, 2024

Conversation

jelly
Copy link
Contributor

@jelly jelly commented Aug 22, 2024

Implemented with one variation:

JSON?.parse(JSON.stringify(foo))

I don't understand why this would be valid? Same for _.cloneDeep?.(foo).

@github-actions github-actions bot added the A-linter Area - Linter label Aug 22, 2024
@camc314
Copy link
Contributor

camc314 commented Aug 22, 2024

Implemented with one variation:

JSON?.parse(JSON.stringify(foo))

I don't understand why this would be valid? Same for _.cloneDeep?.(foo).

unicorn seems to permit any optional function calls (or member expressions) i'm in favour of just failing those cases, as it doens't really make sense to me to permit them

Copy link

codspeed-hq bot commented Aug 22, 2024

CodSpeed Performance Report

Merging #5095 will not alter performance

Comparing jelly:prefer-structured-clone (59ec100) with main (c60a50d)

Summary

✅ 29 untouched benchmarks

@jelly jelly force-pushed the prefer-structured-clone branch from f824f57 to 8f82589 Compare August 22, 2024 19:47
@jelly jelly force-pushed the prefer-structured-clone branch from 8f82589 to ef56a65 Compare August 22, 2024 19:56
@jelly jelly force-pushed the prefer-structured-clone branch from ef56a65 to 5bf4773 Compare August 22, 2024 20:07
@DonIsaac DonIsaac changed the title feat(rules/unicorn): implement prefer-structured-clone feat(linter/unicorn): add prefer-structured-clone Aug 22, 2024
@DonIsaac DonIsaac requested a review from camc314 August 22, 2024 22:52
@DonIsaac
Copy link
Contributor

@camc314 feel free to merge when you're ready.

@camc314 camc314 merged commit f7958c4 into oxc-project:main Aug 23, 2024
27 checks passed
@oxc-bot oxc-bot mentioned this pull request Aug 26, 2024
Boshen added a commit that referenced this pull request Aug 26, 2024
## [0.9.0] - 2024-08-26

- 5946748 linter: [**BREAKING**] Parse and display syntax errors for
regular expressions (#5214) (Boshen)

- b894d3b linter: [**BREAKING**] Make `no-unused-vars` correctness
(#5081) (DonIsaac)

### Features

- 1ce9630 linter/config: Implement FromIterator for LintPluginOptions
(#5102) (DonIsaac)
- 34bfaf6 linter/react: Add fixer to `jsx-props-no-spread-multi` (#5145)
(camc314)
- 982bd6e linter/unicorn: Add fixer to `require-array-join-separator`
(#5152) (camc314)
- a6704bd linter/unicorn: Add fixer to `prefer-set-size` (#5149)
(camc314)
- ac7edcc linter/unicorn: Add fixer to `prefer-array-some` (#5153)
(camc314)
- 1d01aa3 linter/unicorn: Add partial fixer for `prefer-array-flat`
(#5143) (camc314)
- 22d57f9 linter/unicorn: Add fixer to `prefer-string-slice` (#5150)
(Cameron)
- 2fe4415 linter/unicorn: Add fixer to `no-redundant-roles` (#5146)
(Cameron)
- d35c6f5 linter/unicorn: Add fixer to `prefer-regexp-test` (#5151)
(Cameron)
- 27db769 linter/unicorn: Add fixer to `text-encoding-identifier-case`
(#5154) (Cameron)
- f7958c4 linter/unicorn: Add prefer-structured-clone (#5095) (Jelle van
der Waa)
- 004ffa0 linter/vitest: Implement `prefer-each` (#5203) (dalaoshu)

### Bug Fixes

- aaaf26c linter: Error in fixer for prefer-to-have-length (#5197)
(dalaoshu)
- 1f5b6b6 linter: Bug in fixer for prefer-to-have-length (#5164)
(dalaoshu)
- 7eb052e linter: `no-hex-escape` fixer removing regex flags (#5137)
(Cameron)
- 76c66b4 linter/max-lines: Point span to end of file for disable
directive to work (#5117) (Boshen)
- 8ff6f2c linter/no-unused-vars: Panic on UsingDeclarations (#5206)
(DonIsaac)
- d29042e linter/no-unused-vars: Function expression in implicit arrow
function return (#5155) (DonIsaac)
- 36e4a28 linter/no-unused-vars: Panic in variable declarator usage
checks (#5160) (DonIsaac)
- ba62a71 linter/react: Fixed false positive with missing key inside
React.Children.toArray() for fragments (#5133) (Earl Chase)
- fd1031a linter/unicorn: Breaking fixer in case statements for
`no-null` (#5176) (DonIsaac)
- 7b86ed6 linter/unicorn: Handle type casts and parens in `no-null`
(#5175) (Don Isaac)
- b629e16 linter/unicorn: Improve diagnostic message for `no-null`
(#5172) (DonIsaac)

### Performance
- ce454cf Use simdutf8 to validate UTF-8 when reading files (#5196)
(dalaoshu)

### Refactor

- 543cad6 codegen: Remove some pub APIs (Boshen)
- 0d3661a linter: Remove meaningless `span0` (#5209) (dalaoshu)
- 2a91ef1 linter: `eslint/no_redeclare` rule use `run_on_symbol` not
`run_once` (#5201) (overlookmotel)
- 33599b0 linter: Split options into multiple files (#5101) (DonIsaac)
- 7ab6152 linter/unicorn: Clean up `no-null` (#5174) (DonIsaac)

### Testing

- a877e5a linter/no-unused-vars: Ensure type annotations on property
accessors are considered used (#5183) (DonIsaac)
- 7886618 linter/unicorn: Add fixer tests for `no-null` (#5173)
(DonIsaac)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
@jelly jelly deleted the prefer-structured-clone branch September 8, 2024 14:41
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.

3 participants