Commit graph

2250 commits

Author SHA1 Message Date
Yuji Sugiura
df744b205a
feat(semantic/jsdoc): Add Span for JSDoc, JSDocTag (#2815) 2024-03-26 18:40:31 +08:00
Ali Rezvani
243131d7a4
feat(transformer): numeric separator plugin. (#2795)
[es2021 numeric
separator](https://babeljs.io/docs/babel-plugin-transform-numeric-separator)
2024-03-26 18:15:12 +08:00
Ali Rezvani
56493bd02b
feat(transformer): add transform literal for numeric literals. (#2797)
[es2015 transform
literals](https://babeljs.io/docs/babel-plugin-transform-literals)

---------

Co-authored-by: Dunqing <dengqing0821@gmail.com>
2024-03-26 16:27:32 +08:00
Ali Rezvani
fc3878350f
refactor(ast): add walk_mut functions (#2776)
* move `visit` and `visit_mut` modules to a super module called `visit`
* add `walk_mut` module containing walk functions
* update `enter_node` and `leave_node` events to not pass a reference in the `VisitMut` trait
* add `AstType`, a non-referencing version of `AstKind` to use with `VisitMut` trait
* update the `VisitMut` trait's usages.
2024-03-25 20:40:13 +03:30
Boshen
e32a3b3783
ci: use cargo-shear (#2810) 2024-03-26 00:43:10 +08:00
renovate[bot]
3d761f17c2
chore(deps): lock file maintenance rust crates (#2804) 2024-03-25 17:24:30 +08:00
Ali Rezvani
198eea0bce
refactor(ast): add walk functions to Visit trait. (#2791)
closes #2442
2024-03-25 10:44:29 +08:00
Dunqing
b28b61774b
fix(semantic): incorrect ExportEntry span for ExportAllDeclaration in ModuleRecord (#2793)
Now the span is ExportAllDeclaration's span
2024-03-25 10:32:02 +08:00
renovate[bot]
525031b7a2
chore(deps): update rust crates (#2802) 2024-03-25 09:47:26 +08:00
Dunqing
398a0346b3
feat(transformer/typescript): remove verbatim_module_syntax option (#2796)
Remove `verbatim_module_syntax` option, Because Babel's
[onlyRemoveTypeImports](https://babeljs.io/docs/babel-plugin-transform-typescript#onlyremovetypeimports)
option same behavior with `verbatim_module_syntax` , You can see
https://github.com/babel/babel/issues/15493#issuecomment-1466453493
2024-03-25 04:51:23 +08:00
Dunqing
b6e493bd78
fix(semantic): ModuleRecord's indirect_export_entires missing reexported imports (#2792)
local_name has `name` and `span`. We can't directly compare
ExportEntry's local_name and ImportEntry's local_name. because the span
is never equal.
2024-03-25 04:50:04 +08:00
Ali Rezvani
813226b648
refactor(ast): get rid of unsafe transmutation in VisitMut trait. (#2764)
This will close #2745,

In this PR I attempt to fix this issue using a combination of ideas
discussed in the issue mentioned above, I've created this early draft so
people can pitch in if there is something I should consider doing.

The first goal of this PR is to resolve the issue with the possible
illegal references, As a result of my approach it would also end up with
a bunch of walk_* and walk_*_mut functions to help with the abstraction.
I want to eliminate enter_node and leave_node functions, but I still
haven't started working on it since I first want to familiarize myself
with all of its usage throughout the project. I'm hesitating to do it at
the moment, When we want to do this it would require quite a bit of
refactoring so we should make sure it is probably going to work and end
up being a better implementation.
2024-03-23 13:48:30 +00:00
underfin
d9b77d853b
refactor(sourcemap): change sourcemap name to take a reference (#2779) 2024-03-23 21:40:05 +08:00
Dunqing
712b3d2a11
feat(semantic): distinguish type imports in ModuleRecord (#2785)
I am not sure moving `ImportOrExportKind` to `oxc-syntax` is a good
solution.
2024-03-23 21:38:17 +08:00
Yuji Sugiura
4a42c5fd7d
refactor(semantic/jsdoc): JSDocTag parser rework (#2765)
Address
https://github.com/oxc-project/oxc/pull/2642#issuecomment-2001950723


0fd67cb874/crates/oxc_semantic/src/jsdoc/parser/jsdoc_tag.rs (L3-L25)
2024-03-23 00:16:59 +08:00
underfin
dc3f6e7570
chore: update sourcemap 8.0.0 (#2788) 2024-03-22 21:52:21 +08:00
Boshen
ef1108a749
chore: Rust v1.77.0 (#2781) 2024-03-21 17:21:57 +00:00
Andi Pabst
4c5abb590e
feat(cli): wildcard expansion in paths for windows (#2767)
Unlike on other OS, on Windows there is no wildcard expansion/globbing
by the shell. Instead the application has to handle this. Therefore I
used the `glob` package to handle wildcards on Windows.

I also had to make the parent directory check more strict due to the
glob package resolving `..` in the middle of the path as well.

This closes #2695.
2024-03-22 00:21:30 +08:00
Wang Wenzhe
64e4de7861
fix(linter/max-lines): only report codes that exceed the line limit (#2778)
closes: #2775
2024-03-21 20:46:21 +08:00
underfin
a2cfc867cb
feat: SourcemapVisualizer (#2773)
Export `SourcemapVisualizer` from codegen, it will be used oxc and
rolldown sourcemap test, so it support multiply source print, it will
using sourcemap `sourcesContent` as original source.
2024-03-21 11:19:09 +08:00
Wang Wenzhe
3c9e77d66f
feat(linter/tree-shaking): detect CallExpression in MemberExpression (#2772) 2024-03-20 23:11:45 +08:00
Dunqing
e10ef03aa9
feat(linter/import) support check re-export in named (#2769) 2024-03-20 22:12:45 +08:00
Danil Karpenko
1721feea0e
feat(prettier/ts): better conformance (#2721)
I know 5% isn't much, but it's small steps like this that move us toward
our goal.
2024-03-20 18:59:49 +08:00
Jose
451162effc
feat(linter): eslint/no-iterator (#2758)
Rule detail: https://eslint.org/docs/latest/rules/no-iterator

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-20 16:20:09 +08:00
keita hino
53ffbc6bd2
feat(linter): eslint-plugin-react checked-requires-onchange-or-readonly (#2754)
partof: https://github.com/oxc-project/oxc/issues/1022

docs:
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/checked-requires-onchange-or-readonly.md
code:
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/lib/rules/checked-requires-onchange-or-readonly.js
test:
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/tests/lib/rules/checked-requires-onchange-or-readonly.js

---------

Co-authored-by: Dunqing <dengqing0821@gmail.com>
2024-03-20 15:38:48 +08:00
Jose
1c07a9908d
feat(linter): default_param_last (#2756)
Rule detail: https://eslint.org/docs/latest/rules/default-param-last

---------

Co-authored-by: j.buendia <j.buendia>
Co-authored-by: Dunqing <dengqing0821@gmail.com>
2024-03-20 10:05:51 +08:00
Jose
291dc0597c
feat(linter): no_script_url (#2761)
Rule detail: https://eslint.org/docs/latest/rules/no-script-url

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-20 09:09:34 +08:00
Dunqing
99dcd00bf3
feat(linter/import) change the rule path to index.ts and add snapshot in export rule (#2732)
Looks like the current implementation is incorrect
2024-03-19 22:47:04 +08:00
Jose
ac813a60f6
feat(linter): no_template_curly_in_string (#2763)
Rule detail:
https://eslint.org/docs/latest/rules/no-template-curly-in-string

At first I implemented it with regex, but I think you are trying to
avoid it for performance reasons, so I did it by searching for the
chars.

I had some problems showing the span in the case of 'Hello, ${{foo:
"bar"}.foo}' I think it turned out more or less well, however, if you
think it can be done in another way I am willing to do it .

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-19 21:56:36 +08:00
Jose
134e15e657
feat(linter): eslint/no-proto (#2760)
Rule detail: https://eslint.org/docs/latest/rules/no-proto

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-19 20:01:15 +08:00
Jose
39b98badca
feat(linter): no_eq_null (#2757)
Rule detail: https://eslint.org/docs/latest/rules/no-eq-null

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-19 15:48:25 +08:00
Jose
a671d754df
fix(linter): fix guard_for_in span error (#2755)
As talked here
https://github.com/oxc-project/oxc/pull/2746#discussion_r1528145418
errors in guard_for_in could be improved so I attempted to improve it.

If anyone have a suggestion for the span element positions say me!

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-19 12:16:30 +08:00
Jose
86d006e171
feat(linter): eslint/max-params (#2749)
Rule detail: https://eslint.org/docs/latest/rules/max-params

Maybe I can add function name, I was searching for it, but I don't know
how to get it.

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-19 09:16:52 +08:00
Danil Karpenko
31efbc29fc
feat(prettier/ts): print type keyword inside import specifier braces, fixes #2708 (#2712)
- #2708
2024-03-18 20:54:19 +08:00
overlookmotel
e793063f75
perf(parser): faster lexing JSX identifiers (#2557)
Speed up lexing JSX identifier continuations (i.e. after `-`), by
searching for end of identifier byte-by-byte.

Change does not register on benchmarks, only because benchmarks don't
contain any `<Foo-Bar />` identifiers, so don't exercise this code path.
2024-03-18 12:06:27 +00:00
Jose
22c84c546a
feat(linter): eslint/guard-for-in (#2746)
Rule details: https://eslint.org/docs/latest/rules/guard-for-in

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-18 19:36:26 +08:00
Dunqing
95ac265504
feat(linter/import): check ObjectPattern syntax in namespace (#2691) 2024-03-18 12:55:55 +08:00
Dunqing
64db5643ce
feat(linter/import) implement no_unused_modules rule (#2720) 2024-03-18 12:55:36 +08:00
renovate[bot]
1e9c0bc484
chore(deps): update rust crates (#2747) 2024-03-17 16:40:42 +00:00
Wang Wenzhe
2ef4762de8
feat(linter/tree-shaking): add cache for checking mutating identifiers (#2743) 2024-03-18 00:35:15 +08:00
Jose
f5b4599fd5
feat(linter): eslint/no-ternary (#2744)
Rule detail: https://eslint.org/docs/latest/rules/no-ternary

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-17 22:05:13 +08:00
Jose
6189985e9e
feat(linter): eslint/no-continue (#2742)
Rule detail: https://eslint.org/docs/latest/rules/no-continue

It's my first time in Rust, so I have a lot to learn from you. Maybe I
do some silly mistakes. Sorry!

---------

Co-authored-by: j.buendia <j.buendia>
2024-03-17 21:21:43 +08:00
Andi Pabst
91e8a71214
feat(linter): eslint/no-with (#2741)
Relates to #479 

Rule detail: https://eslint.org/docs/latest/rules/no-with
2024-03-17 19:53:55 +08:00
Andi Pabst
81752b2790
feat(linter): eslint/max-lines (#2739)
Relates to #479 

Rule detail: https://eslint.org/docs/latest/rules/max-lines
2024-03-17 18:59:47 +08:00
cinchen
0623a5335f
feat(linter): eslint-plugin-jest: prefer-to-contain (#2735)
Rule Detail:
[link](https://github.com/jest-community/eslint-plugin-jest/blob/main/src/rules/prefer-to-contain.ts)
2024-03-17 09:44:01 +08:00
Valerii Smirnov
26a8171b98
implemented import/no-default-export (#2736)
Tests:
https://github.com/import-js/eslint-plugin-import/blob/v2.29.1/tests/src/rules/no-default-export.js
Rule:
https://github.com/import-js/eslint-plugin-import/blob/v2.29.1/docs/rules/no-default-export.md

---------

Co-authored-by: Boshen <boshenc@gmail.com>
2024-03-16 13:14:07 +08:00
cinchen
9edda499aa
feat(linter): eslint-plugin-jest: prefer-expect-resolves (#2703)
Rule Detail:
[link](https://github.com/jest-community/eslint-plugin-jest/blob/main/src/rules/prefer-expect-resolves.ts)
2024-03-16 10:08:10 +08:00
overlookmotel
75226f3b4a
chore: silence erroneous RA warnings for Tsify (#2731) 2024-03-15 12:42:12 +00:00
underfin
d7004da253
perf(sourcemap): remove unnecessary binary search (#2728)
Becuase `position` argument is ordering, using binary search is
unnecessary.
2024-03-15 18:50:53 +08:00
underfin
2be5f9d6c9
perf(codegen): avoid unnecessary copy (#2727) 2024-03-15 16:09:24 +08:00