Skip to content

Commit d3cadd1

Browse files
authored
refactor: use singleton resolver instance (#15666)
1 parent 5e52581 commit d3cadd1

File tree

7 files changed

+101
-80
lines changed

7 files changed

+101
-80
lines changed

e2e/__tests__/__snapshots__/moduleNameMapper.test.ts.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ exports[`moduleNameMapper wrong array configuration 1`] = `
4141
12 | module.exports = () => 'test';
4242
13 |
4343
44-
at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:1105:17)
44+
at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:1122:17)
4545
at Object.require (index.js:10:1)
4646
at Object.require (__tests__/index.js:10:20)"
4747
`;
@@ -71,7 +71,7 @@ exports[`moduleNameMapper wrong configuration 1`] = `
7171
12 | module.exports = () => 'test';
7272
13 |
7373
74-
at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:1105:17)
74+
at createNoMappedModuleFoundError (../../packages/jest-resolve/build/index.js:1122:17)
7575
at Object.require (index.js:10:1)
7676
at Object.require (__tests__/index.js:10:20)"
7777
`;

e2e/__tests__/__snapshots__/requireMissingExt.test.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ exports[`shows a proper error from deep requires 1`] = `
2626
12 | test('dummy', () => {
2727
13 | expect(1).toBe(1);
2828
29-
at Resolver._throwModNotFoundError (../../packages/jest-resolve/build/index.js:851:11)
29+
at Resolver._throwModNotFoundError (../../packages/jest-resolve/build/index.js:868:11)
3030
at Object.<anonymous> (node_modules/discord.js/src/index.js:21:12)
3131
at Object.require (__tests__/test.js:10:1)"
3232
`;

e2e/__tests__/__snapshots__/resolveNoFileExtensions.test.ts.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ exports[`show error message with matching files 1`] = `
3737
| ^
3838
9 |
3939
40-
at Resolver._throwModNotFoundError (../../packages/jest-resolve/build/index.js:851:11)
40+
at Resolver._throwModNotFoundError (../../packages/jest-resolve/build/index.js:868:11)
4141
at Object.require (index.js:8:18)
4242
at Object.require (__tests__/test.js:8:11)"
4343
`;

packages/jest-resolve/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
"jest-util": "workspace:*",
2727
"jest-validate": "workspace:*",
2828
"slash": "^3.0.0",
29-
"unrs-resolver": "^1.7.10"
29+
"unrs-resolver": "^1.7.11"
3030
},
3131
"devDependencies": {
3232
"@types/graceful-fs": "^4.1.9"

packages/jest-resolve/src/defaultResolver.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
ResolverFactory,
1313
type NapiResolveOptions as UpstreamResolveOptions,
1414
} from 'unrs-resolver';
15+
import {getResolver, setResolver} from './fileWalkers';
1516

1617
export interface ResolverOptions extends UpstreamResolveOptions {
1718
/** Directory to begin resolving from. */
@@ -88,7 +89,15 @@ const defaultResolver: SyncResolver = (path, options) => {
8889
...rest,
8990
};
9091

91-
let unrsResolver = new ResolverFactory(resolveOptions);
92+
let unrsResolver = getResolver();
93+
94+
if (unrsResolver) {
95+
unrsResolver = unrsResolver.cloneWithOptions(resolveOptions);
96+
} else {
97+
unrsResolver = new ResolverFactory(resolveOptions);
98+
}
99+
100+
setResolver(unrsResolver);
92101

93102
let result = unrsResolver.sync(basedir, path);
94103

packages/jest-resolve/src/fileWalkers.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,22 @@
77

88
import {dirname, resolve} from 'path';
99
import * as fs from 'graceful-fs';
10+
import type {ResolverFactory} from 'unrs-resolver';
1011
import {tryRealpath} from 'jest-util';
1112
import type {PackageJSON} from './types';
1213

14+
let unrsResolver: ResolverFactory | undefined;
15+
16+
export function getResolver(): ResolverFactory | undefined {
17+
return unrsResolver;
18+
}
19+
20+
export function setResolver(nextResolver: ResolverFactory): void {
21+
unrsResolver = nextResolver;
22+
}
23+
1324
export function clearFsCache(): void {
25+
unrsResolver?.clearCache();
1426
checkedPaths.clear();
1527
checkedRealpathPaths.clear();
1628
packageContents.clear();

yarn.lock

Lines changed: 74 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -6776,123 +6776,123 @@ __metadata:
67766776
languageName: node
67776777
linkType: hard
67786778

6779-
"@unrs/resolver-binding-darwin-arm64@npm:1.7.10":
6780-
version: 1.7.10
6781-
resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.7.10"
6779+
"@unrs/resolver-binding-darwin-arm64@npm:1.7.11":
6780+
version: 1.7.11
6781+
resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.7.11"
67826782
conditions: os=darwin & cpu=arm64
67836783
languageName: node
67846784
linkType: hard
67856785

6786-
"@unrs/resolver-binding-darwin-x64@npm:1.7.10":
6787-
version: 1.7.10
6788-
resolution: "@unrs/resolver-binding-darwin-x64@npm:1.7.10"
6786+
"@unrs/resolver-binding-darwin-x64@npm:1.7.11":
6787+
version: 1.7.11
6788+
resolution: "@unrs/resolver-binding-darwin-x64@npm:1.7.11"
67896789
conditions: os=darwin & cpu=x64
67906790
languageName: node
67916791
linkType: hard
67926792

6793-
"@unrs/resolver-binding-freebsd-x64@npm:1.7.10":
6794-
version: 1.7.10
6795-
resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.7.10"
6793+
"@unrs/resolver-binding-freebsd-x64@npm:1.7.11":
6794+
version: 1.7.11
6795+
resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.7.11"
67966796
conditions: os=freebsd & cpu=x64
67976797
languageName: node
67986798
linkType: hard
67996799

6800-
"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.10":
6801-
version: 1.7.10
6802-
resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.10"
6800+
"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.11":
6801+
version: 1.7.11
6802+
resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.11"
68036803
conditions: os=linux & cpu=arm
68046804
languageName: node
68056805
linkType: hard
68066806

6807-
"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.10":
6808-
version: 1.7.10
6809-
resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.10"
6807+
"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.11":
6808+
version: 1.7.11
6809+
resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.11"
68106810
conditions: os=linux & cpu=arm
68116811
languageName: node
68126812
linkType: hard
68136813

6814-
"@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.10":
6815-
version: 1.7.10
6816-
resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.10"
6814+
"@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.11":
6815+
version: 1.7.11
6816+
resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.11"
68176817
conditions: os=linux & cpu=arm64 & libc=glibc
68186818
languageName: node
68196819
linkType: hard
68206820

6821-
"@unrs/resolver-binding-linux-arm64-musl@npm:1.7.10":
6822-
version: 1.7.10
6823-
resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.7.10"
6821+
"@unrs/resolver-binding-linux-arm64-musl@npm:1.7.11":
6822+
version: 1.7.11
6823+
resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.7.11"
68246824
conditions: os=linux & cpu=arm64 & libc=musl
68256825
languageName: node
68266826
linkType: hard
68276827

6828-
"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.10":
6829-
version: 1.7.10
6830-
resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.10"
6828+
"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.11":
6829+
version: 1.7.11
6830+
resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.11"
68316831
conditions: os=linux & cpu=ppc64 & libc=glibc
68326832
languageName: node
68336833
linkType: hard
68346834

6835-
"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.10":
6836-
version: 1.7.10
6837-
resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.10"
6835+
"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.11":
6836+
version: 1.7.11
6837+
resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.11"
68386838
conditions: os=linux & cpu=riscv64 & libc=glibc
68396839
languageName: node
68406840
linkType: hard
68416841

6842-
"@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.10":
6843-
version: 1.7.10
6844-
resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.10"
6842+
"@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.11":
6843+
version: 1.7.11
6844+
resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.11"
68456845
conditions: os=linux & cpu=riscv64 & libc=musl
68466846
languageName: node
68476847
linkType: hard
68486848

6849-
"@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.10":
6850-
version: 1.7.10
6851-
resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.10"
6849+
"@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.11":
6850+
version: 1.7.11
6851+
resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.11"
68526852
conditions: os=linux & cpu=s390x & libc=glibc
68536853
languageName: node
68546854
linkType: hard
68556855

6856-
"@unrs/resolver-binding-linux-x64-gnu@npm:1.7.10":
6857-
version: 1.7.10
6858-
resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.7.10"
6856+
"@unrs/resolver-binding-linux-x64-gnu@npm:1.7.11":
6857+
version: 1.7.11
6858+
resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.7.11"
68596859
conditions: os=linux & cpu=x64 & libc=glibc
68606860
languageName: node
68616861
linkType: hard
68626862

6863-
"@unrs/resolver-binding-linux-x64-musl@npm:1.7.10":
6864-
version: 1.7.10
6865-
resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.7.10"
6863+
"@unrs/resolver-binding-linux-x64-musl@npm:1.7.11":
6864+
version: 1.7.11
6865+
resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.7.11"
68666866
conditions: os=linux & cpu=x64 & libc=musl
68676867
languageName: node
68686868
linkType: hard
68696869

6870-
"@unrs/resolver-binding-wasm32-wasi@npm:1.7.10":
6871-
version: 1.7.10
6872-
resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.7.10"
6870+
"@unrs/resolver-binding-wasm32-wasi@npm:1.7.11":
6871+
version: 1.7.11
6872+
resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.7.11"
68736873
dependencies:
68746874
"@napi-rs/wasm-runtime": ^0.2.10
68756875
conditions: cpu=wasm32
68766876
languageName: node
68776877
linkType: hard
68786878

6879-
"@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.10":
6880-
version: 1.7.10
6881-
resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.10"
6879+
"@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.11":
6880+
version: 1.7.11
6881+
resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.11"
68826882
conditions: os=win32 & cpu=arm64
68836883
languageName: node
68846884
linkType: hard
68856885

6886-
"@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.10":
6887-
version: 1.7.10
6888-
resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.10"
6886+
"@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.11":
6887+
version: 1.7.11
6888+
resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.11"
68896889
conditions: os=win32 & cpu=ia32
68906890
languageName: node
68916891
linkType: hard
68926892

6893-
"@unrs/resolver-binding-win32-x64-msvc@npm:1.7.10":
6894-
version: 1.7.10
6895-
resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.7.10"
6893+
"@unrs/resolver-binding-win32-x64-msvc@npm:1.7.11":
6894+
version: 1.7.11
6895+
resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.7.11"
68966896
conditions: os=win32 & cpu=x64
68976897
languageName: node
68986898
linkType: hard
@@ -13809,7 +13809,7 @@ __metadata:
1380913809
jest-util: "workspace:*"
1381013810
jest-validate: "workspace:*"
1381113811
slash: ^3.0.0
13812-
unrs-resolver: ^1.7.10
13812+
unrs-resolver: ^1.7.11
1381313813
languageName: unknown
1381413814
linkType: soft
1381513815

@@ -21450,27 +21450,27 @@ __metadata:
2145021450
languageName: node
2145121451
linkType: hard
2145221452

21453-
"unrs-resolver@npm:^1.7.10, unrs-resolver@npm:^1.7.2, unrs-resolver@npm:^1.7.8":
21454-
version: 1.7.10
21455-
resolution: "unrs-resolver@npm:1.7.10"
21456-
dependencies:
21457-
"@unrs/resolver-binding-darwin-arm64": 1.7.10
21458-
"@unrs/resolver-binding-darwin-x64": 1.7.10
21459-
"@unrs/resolver-binding-freebsd-x64": 1.7.10
21460-
"@unrs/resolver-binding-linux-arm-gnueabihf": 1.7.10
21461-
"@unrs/resolver-binding-linux-arm-musleabihf": 1.7.10
21462-
"@unrs/resolver-binding-linux-arm64-gnu": 1.7.10
21463-
"@unrs/resolver-binding-linux-arm64-musl": 1.7.10
21464-
"@unrs/resolver-binding-linux-ppc64-gnu": 1.7.10
21465-
"@unrs/resolver-binding-linux-riscv64-gnu": 1.7.10
21466-
"@unrs/resolver-binding-linux-riscv64-musl": 1.7.10
21467-
"@unrs/resolver-binding-linux-s390x-gnu": 1.7.10
21468-
"@unrs/resolver-binding-linux-x64-gnu": 1.7.10
21469-
"@unrs/resolver-binding-linux-x64-musl": 1.7.10
21470-
"@unrs/resolver-binding-wasm32-wasi": 1.7.10
21471-
"@unrs/resolver-binding-win32-arm64-msvc": 1.7.10
21472-
"@unrs/resolver-binding-win32-ia32-msvc": 1.7.10
21473-
"@unrs/resolver-binding-win32-x64-msvc": 1.7.10
21453+
"unrs-resolver@npm:^1.7.11, unrs-resolver@npm:^1.7.2, unrs-resolver@npm:^1.7.8":
21454+
version: 1.7.11
21455+
resolution: "unrs-resolver@npm:1.7.11"
21456+
dependencies:
21457+
"@unrs/resolver-binding-darwin-arm64": 1.7.11
21458+
"@unrs/resolver-binding-darwin-x64": 1.7.11
21459+
"@unrs/resolver-binding-freebsd-x64": 1.7.11
21460+
"@unrs/resolver-binding-linux-arm-gnueabihf": 1.7.11
21461+
"@unrs/resolver-binding-linux-arm-musleabihf": 1.7.11
21462+
"@unrs/resolver-binding-linux-arm64-gnu": 1.7.11
21463+
"@unrs/resolver-binding-linux-arm64-musl": 1.7.11
21464+
"@unrs/resolver-binding-linux-ppc64-gnu": 1.7.11
21465+
"@unrs/resolver-binding-linux-riscv64-gnu": 1.7.11
21466+
"@unrs/resolver-binding-linux-riscv64-musl": 1.7.11
21467+
"@unrs/resolver-binding-linux-s390x-gnu": 1.7.11
21468+
"@unrs/resolver-binding-linux-x64-gnu": 1.7.11
21469+
"@unrs/resolver-binding-linux-x64-musl": 1.7.11
21470+
"@unrs/resolver-binding-wasm32-wasi": 1.7.11
21471+
"@unrs/resolver-binding-win32-arm64-msvc": 1.7.11
21472+
"@unrs/resolver-binding-win32-ia32-msvc": 1.7.11
21473+
"@unrs/resolver-binding-win32-x64-msvc": 1.7.11
2147421474
napi-postinstall: ^0.2.2
2147521475
dependenciesMeta:
2147621476
"@unrs/resolver-binding-darwin-arm64":
@@ -21507,7 +21507,7 @@ __metadata:
2150721507
optional: true
2150821508
"@unrs/resolver-binding-win32-x64-msvc":
2150921509
optional: true
21510-
checksum: 9f3734db018add7ce00fd6c677ede79dffe14027647b2c953abf83b378dc3985d53d89399a0306aa0ab4d0bca717d64ccbc3412cdefb67a033c16da01bcba3f9
21510+
checksum: e9097c7ea77a079a3605de087f364f4f6b4bcf0552ac52f0af021ce90826c476c6b7ca91979930f485ee375708913fcbf4c9cac883dc14f8182ef8e399a147cb
2151121511
languageName: node
2151221512
linkType: hard
2151321513

0 commit comments

Comments
 (0)