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/import): Add ignoreTypes
option for the import/no-cycle
rule
#2905
Merged
Boshen
merged 3 commits into
oxc-project:main
from
JohnDaly:add/no-cycle-ignore-type-only-imports
Apr 7, 2024
Merged
feat(linter/import): Add ignoreTypes
option for the import/no-cycle
rule
#2905
Boshen
merged 3 commits into
oxc-project:main
from
JohnDaly:add/no-cycle-ignore-type-only-imports
Apr 7, 2024
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Boshen
reviewed
Apr 7, 2024
CodSpeed Performance ReportMerging #2905 will not alter performanceComparing Summary
|
Boshen
approved these changes
Apr 7, 2024
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.
Thank you!
eryue0220
added a commit
to eryue0220/oxc
that referenced
this pull request
Apr 7, 2024
…20/oxc into feat/jest-prefer-lowercase-title * 'feat/jest-prefer-lowercase-title' of github.com:eryue0220/oxc: feat(linter/import): Add `ignoreTypes` option for the `import/no-cycle` rule (oxc-project#2905) fix(linter): handle self closing script tags in astro partial loader (oxc-project#2017) (oxc-project#2907) fix(linter): svelte partial loader handle generics (oxc-project#2875) (oxc-project#2906) fix(tasks/rulegen): read quasi in TaggedTemplateExpression (oxc-project#2903)
Boshen
pushed a commit
that referenced
this pull request
Apr 9, 2024
A fix for the work done in: #2905 The existing code checks if _all_ import entries in a ModuleRecord are type-only, when determining if the ModuleRecord should be skipped when checking for cycles. This is incorrect. To demonstrate the problem: Running the `no-cycles` rule, with `ignoreTypes` enabled, on the following example code will cause a cycle to be reported between Module A and Module B ```typescript // Module A import type { Bar } from './b'; import { Baz } from './c' // Module B import type { Foo } from './a'; // Module C export const Baz = 'baz'; ``` The reason this is happening is because the import to Module C in Module A is causing the `was_imported_as_type` variable to evaluate to `false`, since the Module C import is not type-only. What we actually want to do is skip visiting Module B entirely, by checking if its import request from Module A is type-only. This PR fixes the logic so that only the import entries for the next ModuleRecord are considered when determining `was_imported_as_type`.
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 [@​eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2911 - feat(linter): typescript-eslint/consistent-type-definitions by [@​todor-a](https://togithub.com/todor-a) in [oxc-project/oxc#2885 - fix(cli): fix `oxlint --format json` yields 0 files to lint by [@​Boshen](https://togithub.com/Boshen) in [oxc-project/oxc#2940 - fix(cli): if format is json do not print summary information ([#​2899](https://togithub.com/oxc-project/oxc/issues/2899)) by [@​kalvenschraut](https://togithub.com/kalvenschraut) in [oxc-project/oxc#2925 - fix(linter): import/no-cycle ignore type-only imports by [@​JohnDaly](https://togithub.com/JohnDaly) in [oxc-project/oxc#2924 - refactor(semantic/jsdoc): Rework JSDoc struct for better Span handling by [@​leaysgur](https://togithub.com/leaysgur) in [oxc-project/oxc#2917 ##### New Contributors - [@​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): [@​typescript-eslint/prefer-for-of](https://togithub.com/typescript-eslint/prefer-for-of) by [@​charnog](https://togithub.com/charnog) in [oxc-project/oxc#2789 - feat(linter): Implement jsdoc/check-access by [@​leaysgur](https://togithub.com/leaysgur) in [oxc-project/oxc#2642 - feat(linter): Implement jsdoc/empty-tags by [@​leaysgur](https://togithub.com/leaysgur) in [oxc-project/oxc#2893 - feat(linter): eslint-plugin-jest/prefer-mock-promise-sorthand by [@​eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2864 - feat(linter/import): Add `ignoreTypes` option for the `import/no-cycle` rule by [@​JohnDaly](https://togithub.com/JohnDaly) in [oxc-project/oxc#2905 - fix(ast): `FinallyClause` won't get visited as `BlockStatement` anymore. by [@​rzvxa](https://togithub.com/rzvxa) in [oxc-project/oxc#2881 - fix(linter): handle self closing script tags in astro partial loader ([#​2017](https://togithub.com/oxc-project/oxc/issues/2017)) by [@​kalvenschraut](https://togithub.com/kalvenschraut) in [oxc-project/oxc#2907 - fix(linter): svelte partial loader handle generics ([#​2875](https://togithub.com/oxc-project/oxc/issues/2875)) by [@​kalvenschraut](https://togithub.com/kalvenschraut) in [oxc-project/oxc#2906 #### New Contributors - [@​charnog](https://togithub.com/charnog) made their first contribution in [oxc-project/oxc#2789 - [@​kalvenschraut](https://togithub.com/kalvenschraut) made their first contribution in [oxc-project/oxc#2906 - [@​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 [@​JoSeBu1](https://togithub.com/JoSeBu1) in [oxc-project/oxc#2756 - feat(linter): eslint-plugin-jest/no-untyped-mock-factory by [@​eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2807 - feat(linter): eslint-plugin-jest/prefer-comparison-matcher by [@​eryue0220](https://togithub.com/eryue0220) in [oxc-project/oxc#2806 - feat(linter): eslint-plugin-react checked-requires-onchange-or-readonly by [@​keita-hino](https://togithub.com/keita-hino) in [oxc-project/oxc#2754 - feat(linter): eslint/no-iterator by [@​JoSeBu1](https://togithub.com/JoSeBu1) in [oxc-project/oxc#2758 - feat(linter): fallback to the default tsconfig path by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2842 - feat(linter): no_script_url by [@​JoSeBu1](https://togithub.com/JoSeBu1) in [oxc-project/oxc#2761 - feat(linter/import) check deep namespace in namespace rule by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2805 - feat(linter/import) check module import in no_duplicates by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2771 - feat(linter/import) check type import in no_duplicates by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2777 - feat(linter/import) support allow_computed option in namespace by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2840 - feat(linter/import) support check re-export in named by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2769 - feat(linter/import): ignore type-only imports and exports in no_unresolved by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2849 - fix(linter/import): false positive for indirect export in namespace by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2862 - fix(linter/import): ignore export declaration in no-duplicates by [@​Dunqing](https://togithub.com/Dunqing) in [oxc-project/oxc#2863 - fix(linter/max-lines): only report codes that exceed the line limit by [@​mysteryven](https://togithub.com/mysteryven) in [oxc-project/oxc#2778 - fix(parser): add support for empty module declaration by [@​rzvxa](https://togithub.com/rzvxa) in [oxc-project/oxc#2834 #### New Contributors - [@​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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes: #2904
Adds an
ignoreTypes
option for theimport/no-cycle
rule, to ignore imports that don't have any runtime effect.