Commit graph

4825 commits

Author SHA1 Message Date
Dunqing
3a66e5843d feat(transformer): support exponentiation operator plugin (#4876)
The implementation copy from the original implementation which removed in https://github.com/oxc-project/oxc/pull/2865.
2024-08-15 10:10:32 +00:00
oxc-bot
b3e189764f
Release oxlint v0.7.2 (#4909)
## [0.7.2] - 2024-08-15

### Features

- 97e38cd linter: Add fixer for unicorn/prefer-optional-catch-binding
(#4867) (heygsc)
- 93ae1c7 linter: Eslint-plugin-react jsx-props-no-spread-multi (#4866)
(keita hino)
- 0a23610 linter: Add fixer for unicorn/prefer-array-flat-map (#4844)
(heygsc)
- 13c7b1b linter/jsx-a11y: Add fixer for aria-unsupported-elements
(#4854) (DonIsaac)
- a6195a6 linter/jsx-a11y: Add fixer for anchor-has-content (#4852)
(DonIsaac)
- 4d28d03 task/website: Support render `subschemas.all_of` (#4800)
(mysteryven)

### Bug Fixes

- 21f5762 codegen: Minify large numbers (#4889) (Boshen)
- a08d7a7 linter/jsx-a11y: Reduce false negatives for html-has-lang
(#4855) (DonIsaac)
- a81ce3a linter/no-unused-vars: Do not delete function expressions when
fixing (#4848) (DonIsaac)

### Documentation

- 955a4b4 oxlint: Improve cli doc regarding fix and `-D all` (Boshen)

### Refactor

- 56f033c linter: Improve diagnostics for several jsx-a11y rules (#4853)
(DonIsaac)
- c53c210 linter/no-unused-vars: Split fixer logic into multiple files
(#4847) (DonIsaac)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2024-08-15 14:56:34 +08:00
Boshen
5b14608a95
chore(tasks/website): do not run textlint nor prettier 2024-08-15 14:28:57 +08:00
Boshen
34aa93bda3 feat(coverage): add checker for correctness of semantic data (#4908)
Part of https://github.com/oxc-project/oxc/issues/4790
2024-08-15 04:46:07 +00:00
IWANABETHATGUY
d49fb160e3 feat(oxc_codegen): support generate range leading comments (#4898)
1. Support print range leading comments for specific expr or stmt
2024-08-15 04:20:48 +00:00
overlookmotel
9c700ed509
docs(transformer): add README including style guide (#4899)
Add a README to `oxc_transformer` crate, including a "style guide" for
writing transforms. As discussed in #4881.
2024-08-15 10:52:14 +08:00
overlookmotel
f88cbcd4ab feat(transformer): add BoundIdentifier::new_uid_in_current_scope method (#4903)
Add method `BoundIdentifier::new_uid_in_current_scope` as a shortcut.
2024-08-14 18:55:27 +00:00
overlookmotel
786bf07e45 refactor(index): shorten code and correct comment (#4905)
Style nit + comment correction. Plain `Box` is used everywhere else in this file, no need to fully specify `alloc::boxed::Box`.
2024-08-14 17:55:25 +00:00
overlookmotel
a6967b30f3 refactor(allocator): correct code comment (#4904)
Correct code comment in `Box::unbox`.
2024-08-14 17:44:54 +00:00
overlookmotel
452187a3ca refactor(transformer): rename BoundIdentifier::new_uid_in_root_scope (#4902)
Just renaming the method.
2024-08-14 17:37:25 +00:00
overlookmotel
1e6d0fe7dd
feat(transformer): add methods to BoundIdentifier (#4897)
`BoundIdentifier` helper previously only had methods to create a
read-only `IdentifierReference`. Add methods to also create write-only
or read-write `IdentifierReference`s.
2024-08-15 00:12:20 +08:00
heygsc
97e38cd493
feat(linter): add fixer for unicorn/prefer-optional-catch-binding (#4867) 2024-08-14 08:17:11 -04:00
overlookmotel
707a01f438 refactor(transformer): re-order BoundIdentifier methods (#4896)
Pure refactor, no real changes. Just re-order method definitions.
2024-08-14 12:06:18 +00:00
overlookmotel
117dff2c47 refactor(transformer): improve comments for BoundIdentifier helper (#4895)
Add more comments for `BindingIdentifier` helper, and correct comments which were inaccurate.
2024-08-14 11:52:26 +00:00
keita hino
93ae1c78b8
feat(linter): eslint-plugin-react jsx-props-no-spread-multi (#4866)
partof: https://github.com/oxc-project/oxc/issues/1022

docs:
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-spread-multi.md
code:
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/lib/rules/jsx-props-no-spread-multi.js
test:
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/tests/lib/rules/jsx-props-no-spread-multi.js

---------

Co-authored-by: Don Isaac <donald.isaac@gmail.com>
2024-08-14 12:44:46 +01:00
Boshen
117ae36775 refactor(coverage): add driver struct for adding common checks later (#4893) 2024-08-14 11:11:13 +00:00
DonIsaac
ea1e64a1f3 refactor(semantic): make SemanticBuilder opaque (#4851)
change visibility of building-related methods and properties of SemanticBuilder
from `pub` to `pub(crate)`.
2024-08-14 08:15:20 +00:00
Boshen
2afccd75fb
refactor(coverage): move tools into src/tools/ 2024-08-14 15:44:03 +08:00
Boshen
21f576252a fix(codegen): minify large numbers (#4889) 2024-08-14 06:52:17 +00:00
mysteryven
4d28d037e6 feat(task/website): support render subschemas.all_of (#4800)
To solve unexpected snapshot update in #4742  : https://github.com/oxc-project/oxc/pull/4742/files#diff-4c1a03dc03cfd00f9eaecb5c66b61f4e57272c6262253f0dc82ea1b71223bac2
2024-08-14 06:12:03 +00:00
Boshen
e8de4bde41 fix(codegen): fix whitespace issue when minifying x in new Error() (#4886) 2024-08-14 04:29:17 +00:00
rzvxa
c164bb8b64 chore(deps): remove static_assertions dependency. (#4883) 2024-08-14 02:18:06 +00:00
rzvxa
a9c729a197
chore(ci): enforce msrv in parts of our CI. (#4879)
closes #4874 


![image](https://github.com/user-attachments/assets/98c2650d-54dd-45d9-82ee-0516339ae1f8)
2024-08-13 21:47:28 +08:00
Boshen
81fd6379e8 fix(minifier): do not fold 0 && (module.exports = {}) for cjs-module-lexer (#4878) 2024-08-13 12:54:59 +00:00
overlookmotel
48a1c32ed3 refactor(syntax): inline trivial bitflags methods (#4877)
Add `#[inline]` to trivial bitflags methods. Very likely this makes no difference within Oxc, as we compile with LTO enabled, but for external consumers of Oxc who don't use LTO, this will enable cross-crate inlining.
2024-08-13 12:43:09 +00:00
Boshen
879a271d47 fix(minifier): do not join require calls for cjs-module-lexer (#4875) 2024-08-13 12:21:37 +00:00
Boshen
0813af9d30
ci: fix oxlint OXC_VERSION not set 2024-08-13 20:16:22 +08:00
rzvxa
5fd170140e refactor(sourcemap): lower the msrv. (#4873)
Related to https://github.com/oxc-project/oxc/pull/4864#issuecomment-2285908919
https://releases.rs/docs/1.80.0/#stabilized-apis
2024-08-13 10:52:34 +00:00
Boshen
a2269625cc fix(codegen): print TSNonNullExpression (#4869) 2024-08-13 08:47:07 +00:00
Boshen
3da33d3647 fix(codegen): missing parenthesis for PrivateInExpression (#4865) 2024-08-13 06:54:26 +00:00
IWANABETHATGUY
1808529a0c
fix(codegen): dedupe pure annotation comments (#4862)
Close https://github.com/oxc-project/oxc/issues/4843
2024-08-13 13:53:28 +08:00
Boshen
1bdde2c117 fix(parser): detect @flow in `/** @flow */ comment (#4861)
Discovered in https://github.com/oxc-project/monitor-oxc

There are files with

```
/**
 * @flow
 */
```

https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/__mocks__/JSXAttributeMock.js#L1

So I changed the logic to checking the first comment instead.
2024-08-13 05:43:48 +00:00
heygsc
a105df3adf
chore(linter): fix comment (#4860) 2024-08-12 23:44:49 -04:00
DonIsaac
a08d7a7f94 fix(linter/jsx-a11y): reduce false negatives for html-has-lang (#4855) 2024-08-13 03:31:33 +00:00
DonIsaac
13c7b1b9d2 feat(linter/jsx-a11y): add fixer for aria-unsupported-elements (#4854) 2024-08-13 03:31:31 +00:00
DonIsaac
56f033c556 refactor(linter): improve diagnostics for several jsx-a11y rules (#4853) 2024-08-13 03:31:29 +00:00
DonIsaac
a6195a6a77 feat(linter/jsx-a11y): add fixer for anchor-has-content (#4852)
Add a conditional fix that removes `aria-hidden` from an anchor's child if there
is only a single child. This PR also fixes a false positive on hidden anchors.
It should report visible anchors with hidden content, not hidden anchors.
2024-08-13 03:31:27 +00:00
DonIsaac
a81ce3a3c7 fix(linter/no-unused-vars): do not delete function expressions when fixing (#4848)
`VariableDeclarator` fixer will no longer delete declarations that are initialized to function expressions.

```ts
// none of these get deleted
const unusedArrow = () => {}
const unusedAnon = function() {}
const unusedNamed = function foo() {}

// matches fixer behavior for function declarations
function unusedDecl() {}
```
2024-08-13 02:31:34 +00:00
DonIsaac
c53c210efc refactor(linter/no-unused-vars): split fixer logic into multiple files (#4847) 2024-08-13 02:31:33 +00:00
overlookmotel
c0b26f4df4
fix(ast): do not include scope_id fields in JSON AST (#4858)
Exclude `scope_id` fields from JSON AST (as produced by `oxc-parser` NPM
package). I neglected to flag them `#[serde(skip)]` when I added these
fields.
2024-08-13 10:23:32 +08:00
rzvxa
c4354daab5
chore: add support for labelling A-ast-tools. (#4857) 2024-08-13 10:22:51 +08:00
DonIsaac
0a01a4729a docs(semantic): improve documentation (#4850) 2024-08-13 02:14:07 +00:00
rzvxa
8e8fcd0584 refactor(ast_tools): rename oxc_ast_codegen to oxc_ast_tools. (#4846)
This PR renames the `oxc_ast_codegen` crate to `oxc_ast_tools`, It improves the readability and organization of the codebase by giving the crate a name that better reflects its purpose and contents.

It also improves the error message in CI.
2024-08-12 14:33:58 +00:00
heygsc
0a23610d9a
feat(linter): add fixer for unicorn/prefer-array-flat-map (#4844) 2024-08-12 08:35:27 -04:00
oxc-bot
977b74af2d
Release crates v0.24.2 (#4841)
## [0.24.2] - 2024-08-12

### Features

- 8e10e25 allocator: Introduce `Address` (#4810) (overlookmotel)

### Bug Fixes

- 62f759c transformer/typescript: Generated assignment for constructor
arguments with access modifiers should be injected to the top of the
constructor (#4808) (Dunqing)

### Performance

- 504ac0b minifier: `InjectGlobalVariables` only add to
`replaced_dot_defines` once for each (#4803) (overlookmotel)
- 35f2742 minifier: Avoid repeated `Atom` creation in
`InjectGlobalVariables` (#4802) (overlookmotel)

### Documentation

- 8827659 ast: More doc comments for JSX nodes (#4830) (DonIsaac)
- 559baa5 parser: Clean up doc regarding performance; remove conformance
(Boshen)

### Refactor

- 0ea697b ast, ast_codegen: `CloneIn` implementations now initialize
semantic related cells with `Default` value. (#4819) (rzvxa)
- ecfa124 ast_codegen: Add line break to generated code (#4829)
(overlookmotel)
- 096ac7b linter: Clean up jsx-a11y/anchor-is-valid (#4831) (DonIsaac)

Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
2024-08-12 16:02:07 +08:00
Boshen
fae8a62a62 fix(minifier): temporarily bail constant folding for tagged template (#4842)
closes #4341
2024-08-12 07:38:25 +00:00
Boshen
e1ce17f0d8
chore: add swc-node to README.md 2024-08-12 15:11:00 +08:00
Boshen
36a79edde0
chore: add nova runtime to README.md 2024-08-12 15:07:07 +08:00
Boshen
955a4b4479
docs(oxlint): improve cli doc regarding fix and -D all
closes #3944
2024-08-12 14:58:12 +08:00
Boshen
1965aa6b63 chore(deps): update rust crate criterion2 to v1 (#4838) 2024-08-12 06:32:39 +00:00