oxc-project / oxc

⚓ A collection of JavaScript tools written in Rust.
https://oxc.rs
MIT License
12.63k stars 466 forks source link

linter: import/no-cycle with TypeScript + ESM #6913

Open Boshen opened 1 month ago

Boshen commented 1 month ago

Discussed in https://github.com/oxc-project/oxc/discussions/6906

Originally posted by **LukeNotable** October 26, 2024 Trying out oxlint for the first time in the hope that it can at least give us a fast check on `import/no-cycle`. I have a TypeScript project using ESM, thus files like: ```ts // foo.ts import { Bar } from './bar.js'; // bar.ts import { Foo } from './foo.js'; ``` However, the rule fails to flag this as a problem. But if I remove the `.js` extension, the rule behaves correctly. However, the `.js` extension is required under ESM. I recall a similar issue with the original `eslint-plugin-import`, which required `eslint-import-resolver-typescript`, and I see there's an `oxc-resolver`, so I wonder if I just need to do some additional configuration to use it.
Boshen commented 1 month ago

context: https://www.typescriptlang.org/docs/handbook/modules/reference.html#common-features-and-processes

DonIsaac commented 1 month ago

Sounds like we need to modify the resolver?