andywer / threads.js

🧵 Make web workers & worker threads as simple as a function call.
https://threads.js.org/
MIT License
3.04k stars 161 forks source link

create worker with *.ts when master in ts-node environment cause error #451

Open windschaser opened 1 year ago

windschaser commented 1 year ago

spawn(new Worker('worker.ts')) will cause error when the script is executed in ts-node environment. As follow:

Error [ERR_UNHANDLED_ERROR]: Unhandled error. ({
  diagnosticText: 'app/util/worker.ts(8,2): error TS2695: Left side of comma operator is unused and has no side effects.\r\n',
  diagnosticCodes: [ 2695 ]
})

I think it's because ts-node is registed multiple times, as thread.js register ts-node in https://github.com/andywer/threads.js/blob/master/src/master/implementation.node.ts#L55. Then error occurred: https://github.com/TypeStrong/ts-node/issues/1690 https://github.com/TypeStrong/ts-node/issues/409

A simple way to fix this may be adding option to skip re-register, or detecting ts-node env by symbol it expose, like this: if (process[Symbol.for("ts-node.register.instance")])

Hope to check again if these are corrected. If necessary, I can provide a PR to fix this. Thanks a lot.