diff --git a/index.js b/index.js index 6380f95..fb28acc 100644 --- a/index.js +++ b/index.js @@ -3,7 +3,6 @@ const { version } = require('./package.json') const { EventEmitter } = require('events') const { Worker } = require('worker_threads') -const { join } = require('path') const { pathToFileURL } = require('url') const { wait } = require('./lib/wait') const { @@ -12,6 +11,7 @@ const { } = require('./lib/indexes') const buffer = require('buffer') const assert = require('assert') +const { getWorkerPath } = require('./lib/workerLoader') const kImpl = Symbol('kImpl') @@ -52,7 +52,7 @@ function createWorker (stream, opts) { const { filename, workerData } = opts const bundlerOverrides = '__bundlerPathsOverrides' in globalThis ? globalThis.__bundlerPathsOverrides : {} - const toExecute = bundlerOverrides['thread-stream-worker'] || join(__dirname, 'lib', 'worker.js') + const toExecute = bundlerOverrides['thread-stream-worker'] || getWorkerPath() const worker = new Worker(toExecute, { ...opts.workerOpts, diff --git a/lib/workerLoader.js b/lib/workerLoader.js new file mode 100644 index 0000000..d79ff1a --- /dev/null +++ b/lib/workerLoader.js @@ -0,0 +1,12 @@ +'use strict' + +const { isMainThread } = require('worker_threads') + +// Only runs when spawned as a Worker +if (!isMainThread) require('./worker.js') + +function getWorkerPath () { + return __filename +} + +module.exports = { getWorkerPath }