Skip to content

Commit 097e5cd

Browse files
authored
feat: add custom transferList support (#142)
close #131
1 parent 363ee7d commit 097e5cd

File tree

3 files changed

+11
-3
lines changed

3 files changed

+11
-3
lines changed

.changeset/yellow-olives-obey.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"synckit": patch
3+
---
4+
5+
feat: add custom transferList support

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
- name: Setup Node.js LTS
2020
uses: actions/setup-node@v4
2121
with:
22-
node-version: --lts
22+
node-version: lts
2323
cache: yarn
2424

2525
- name: Install Dependencies

src/index.ts

+5-2
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,12 @@ import path from 'node:path'
44
import { pathToFileURL } from 'node:url'
55
import {
66
MessageChannel,
7+
TransferListItem,
78
Worker,
9+
parentPort,
810
receiveMessageOnPort,
911
// type-coverage:ignore-next-line -- we can't control
1012
workerData,
11-
parentPort,
1213
} from 'node:worker_threads'
1314

1415
import { findUp, isPkgAvailable, tryExtensions } from '@pkgr/utils'
@@ -70,6 +71,7 @@ export interface SynckitOptions {
7071
timeout?: number
7172
execArgv?: string[]
7273
tsRunner?: TsRunner
74+
transferList?: TransferListItem[]
7375
}
7476

7577
// MessagePort doesn't copy the properties of Error objects. We still want
@@ -284,6 +286,7 @@ function startWorkerThread<R, T extends AnyAsyncFn<R>>(
284286
timeout = DEFAULT_TIMEOUT,
285287
execArgv = DEFAULT_EXEC_ARGV,
286288
tsRunner = DEFAULT_TS_RUNNER,
289+
transferList = [],
287290
}: SynckitOptions = {},
288291
) {
289292
const { port1: mainPort, port2: workerPort } = new MessageChannel()
@@ -340,7 +343,7 @@ function startWorkerThread<R, T extends AnyAsyncFn<R>>(
340343
{
341344
eval: useEval,
342345
workerData: { workerPort },
343-
transferList: [workerPort],
346+
transferList: [workerPort, ...transferList],
344347
execArgv: finalExecArgv,
345348
},
346349
)

0 commit comments

Comments
 (0)