Skip to content

Commit

Permalink
fix(linter): support ESM js imports in ast utils (#16049)
Browse files Browse the repository at this point in the history
  • Loading branch information
meeroslav authored Apr 3, 2023
1 parent c3ba5ab commit 89d0b8b
Showing 1 changed file with 22 additions and 8 deletions.
30 changes: 22 additions & 8 deletions packages/eslint-plugin-nx/src/utils/ast-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,19 +198,33 @@ export function getRelativeImportPath(exportedMember, filePath, basePath) {

const modulePath = (exportDeclaration as any).moduleSpecifier.text;

let moduleFilePath = joinPathFragments(
dirname(filePath),
`${modulePath}.ts`
);
if (!existsSync(moduleFilePath)) {
// might be a tsx file
let moduleFilePath;
if (modulePath.endsWith('.js') || modulePath.endsWith('.jsx')) {
moduleFilePath = joinPathFragments(dirname(filePath), modulePath);
if (!existsSync(moduleFilePath)) {
const tsifiedModulePath = modulePath.replace(/\.js(x?)$/, '.ts$1');
moduleFilePath = joinPathFragments(
dirname(filePath),
`${tsifiedModulePath}`
);
}
} else if (modulePath.endsWith('.ts') || modulePath.endsWith('.tsx')) {
moduleFilePath = joinPathFragments(dirname(filePath), modulePath);
} else {
moduleFilePath = joinPathFragments(
dirname(filePath),
`${modulePath}.tsx`
`${modulePath}.ts`
);
if (!existsSync(moduleFilePath)) {
// might be a tsx file
moduleFilePath = joinPathFragments(
dirname(filePath),
`${modulePath}.tsx`
);
}
}
if (!existsSync(moduleFilePath)) {
// might be a index.ts
// might be an index.ts
moduleFilePath = joinPathFragments(
dirname(filePath),
`${modulePath}/index.ts`
Expand Down

0 comments on commit 89d0b8b

Please sign in to comment.