Skip to content
This repository was archived by the owner on Oct 18, 2023. It is now read-only.

Commit 5a287d2

Browse files
fix(ts): dependency to not resolve using tsconfig paths (#30)
1 parent 7dbbf3c commit 5a287d2

File tree

21 files changed

+68
-14
lines changed

21 files changed

+68
-14
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
},
3333
"dependencies": {
3434
"@esbuild-kit/core-utils": "^2.0.0",
35-
"get-tsconfig": "^4.0.0"
35+
"get-tsconfig": "^4.0.5"
3636
},
3737
"devDependencies": {
3838
"@pvtnbr/eslint-config": "^0.22.0",

pnpm-lock.yaml

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/loaders.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,13 @@ async function tryDirectory(
6868
context: Context,
6969
defaultResolve: resolve,
7070
) {
71-
const appendIndex = specifier.endsWith('/') ? 'index' : `${path.sep}index`;
71+
const appendIndex = specifier.endsWith('/') ? 'index' : '/index';
7272

7373
try {
7474
return await tryExtensions(specifier + appendIndex, context, defaultResolve);
7575
} catch (error: any) {
7676
const { message } = error;
77-
error.message = error.message.replace(`${appendIndex}'`, "'");
77+
error.message = error.message.replace(`${appendIndex.replace('/', path.sep)}'`, "'");
7878
error.stack = error.stack.replace(message, error.message);
7979
throw error;
8080
}
@@ -108,6 +108,7 @@ export const resolve: resolve = async function (
108108
if (
109109
tsconfigPathsMatcher
110110
&& !isPath // bare specifier
111+
&& !context.parentURL?.includes('/node_modules/')
111112
) {
112113
const possiblePaths = tsconfigPathsMatcher(specifier);
113114
for (const possiblePath of possiblePaths) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import 'resolve-current-directory';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import 'should-not-resolve-baseUrl';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import 'should-not-resolve-paths';

tests/fixtures/package-module/tsconfig/node_modules/resolve-current-directory/lib/file.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/resolve-current-directory/lib/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/resolve-current-directory/package.json

+4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-baseUrl/index.js

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-baseUrl/node_modules/resolve-target/index.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-baseUrl/node_modules/resolve-target/package.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-baseUrl/package.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-paths/index.js

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-paths/node_modules/p/nested-resolve-target.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-paths/node_modules/p/package.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/fixtures/package-module/tsconfig/node_modules/should-not-resolve-paths/package.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log('Should not run');
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export default 'resolved';
1+
export default 'resolve-target';
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export default 'resolved';
1+
export default 'nested-resolve-target';

tests/specs/typescript/tsconfig.ts

+28-5
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,56 @@ export default testSuite(async ({ describe }, node: NodeApis) => {
1010
expect(nodeProcess.stdout).toBe('div null hello world\nnull null goodbye world');
1111
});
1212

13-
describe('paths', ({ test }) => {
13+
describe('paths', ({ test, describe }) => {
1414
test('resolves baseUrl', async () => {
1515
const nodeProcess = await node.load('./src/base-url.ts', {
1616
cwd: './tsconfig',
1717
});
18-
expect(nodeProcess.stdout).toBe('resolved');
18+
expect(nodeProcess.stdout).toBe('resolve-target');
1919
});
2020

2121
test('resolves paths exact match', async () => {
2222
const nodeProcess = await node.load('./src/paths-exact-match.ts', {
2323
cwd: './tsconfig',
2424
});
25-
expect(nodeProcess.stdout).toBe('resolved');
25+
expect(nodeProcess.stdout).toBe('resolve-target');
2626
});
2727

2828
test('resolves paths prefix', async () => {
2929
const nodeProcess = await node.load('./src/paths-prefix-match.ts', {
3030
cwd: './tsconfig',
3131
});
32-
expect(nodeProcess.stdout).toBe('resolved');
32+
expect(nodeProcess.stdout).toBe('nested-resolve-target');
3333
});
3434

3535
test('resolves paths suffix', async () => {
3636
const nodeProcess = await node.load('./src/paths-suffix-match.ts', {
3737
cwd: './tsconfig',
3838
});
39-
expect(nodeProcess.stdout).toBe('resolved');
39+
expect(nodeProcess.stdout).toBe('nested-resolve-target');
40+
});
41+
42+
describe('dependency', ({ test }) => {
43+
test('resolve current directory', async () => {
44+
const nodeProcess = await node.load('./dependency-resolve-current-directory', {
45+
cwd: './tsconfig',
46+
});
47+
expect(nodeProcess.stdout).toBe('resolved');
48+
});
49+
50+
test('should not resolve baseUrl', async () => {
51+
const nodeProcess = await node.load('./dependency-should-not-resolve-baseUrl', {
52+
cwd: './tsconfig',
53+
});
54+
expect(nodeProcess.stdout).toBe('resolved');
55+
});
56+
57+
test('should not resolve paths', async () => {
58+
const nodeProcess = await node.load('./dependency-should-not-resolve-paths', {
59+
cwd: './tsconfig',
60+
});
61+
expect(nodeProcess.stdout).toBe('resolved');
62+
});
4063
});
4164
});
4265
});

0 commit comments

Comments
 (0)