Skip to content

Commit 4c23099

Browse files
committed
fix: handle missing search deps safer
1 parent 3be40b7 commit 4c23099

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

src/retriv/pool.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,13 @@ import { existsSync } from 'node:fs'
44
import { fileURLToPath } from 'node:url'
55
import { Worker } from 'node:worker_threads'
66
import { dirname, join } from 'pathe'
7+
import { SearchDepsUnavailableError } from './index.ts'
8+
9+
function reconstructError(message: string, name?: string): Error {
10+
if (name === 'SearchDepsUnavailableError')
11+
return new SearchDepsUnavailableError(undefined, message)
12+
return new Error(message)
13+
}
714

815
interface PendingTask {
916
id: number
@@ -54,7 +61,7 @@ function ensureWorker(): Worker {
5461
}
5562
else if (msg.type === 'error') {
5663
pending.delete(msg.id)
57-
task.reject(new Error(msg.message))
64+
task.reject(reconstructError(msg.message, msg.name))
5865
}
5966
})
6067

src/retriv/worker.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ export interface WorkerErrorResponse {
3333
type: 'error'
3434
id: number
3535
message: string
36+
name?: string
3637
}
3738

3839
export type WorkerResponse = WorkerProgressResponse | WorkerDoneResponse | WorkerErrorResponse
@@ -68,6 +69,7 @@ if (parentPort) {
6869
type: 'error',
6970
id,
7071
message: err instanceof Error ? err.message : String(err),
72+
name: err instanceof Error ? err.name : undefined,
7173
} satisfies WorkerErrorResponse)
7274
}
7375
}

0 commit comments

Comments
 (0)