Skip to content

Commit 3aac5e8

Browse files
committed
Time out ESLint config resolution after 10 seconds
Errors are obscured by our use of Atomics. Time out after 10 seconds to not block ESLint indefinitely.
1 parent 5e08444 commit 3aac5e8

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

entrypoints/eslint-plugin-helper.cjs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ let data;
1010
let sync;
1111
let worker;
1212

13-
const resolveGlobsSync = (projectDir, overrideExtensions, overrideFiles) => {
13+
const resolveGlobsSync = (projectDir, overrideExtensions, overrideFiles) => {
1414
if (worker === undefined) {
1515
const dataBuffer = new SharedArrayBuffer(MAX_DATA_LENGTH_EXCLUSIVE);
1616
data = new Uint8Array(dataBuffer);
@@ -30,7 +30,10 @@ const resolveGlobsSync = (projectDir, overrideExtensions, overrideFiles) => {
3030
worker.postMessage({projectDir, overrideExtensions, overrideFiles});
3131
}
3232

33-
Atomics.wait(sync, 0, 0);
33+
const synchronize = Atomics.wait(sync, 0, 0, 10000);
34+
if (synchronize === 'timed-out') {
35+
throw new Error('Timed out resolving AVA configuration');
36+
}
3437

3538
const byteLength = Atomics.exchange(sync, 0, 0);
3639
if (byteLength === MAX_DATA_LENGTH_EXCLUSIVE) {

0 commit comments

Comments
 (0)