Skip to content

Commit 2d426ae

Browse files
committed
Switch to workerpool lib
1 parent 63ba073 commit 2d426ae

File tree

5 files changed

+28
-144
lines changed

5 files changed

+28
-144
lines changed

packages/babel/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@
6767
},
6868
"dependencies": {
6969
"@babel/helper-module-imports": "^7.18.6",
70-
"@rollup/pluginutils": "^5.0.1"
70+
"@rollup/pluginutils": "^5.0.1",
71+
"workerpool": "^9.0.0"
7172
},
7273
"devDependencies": {
7374
"@babel/core": "^7.19.1",

packages/babel/src/index.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ import { fileURLToPath } from 'url';
33

44
import * as babel from '@babel/core';
55
import { createFilter } from '@rollup/pluginutils';
6+
import workerpool from 'workerpool';
67

78
import { BUNDLED, HELPERS } from './constants.js';
89
import transformCode from './transformCode.js';
910
import { escapeRegExpCharacters, warnOnce } from './utils.js';
10-
import WorkerPool from './workerPool.js';
1111

1212
const unpackOptions = ({
1313
extensions = babel.DEFAULT_EXTENSIONS,
@@ -144,7 +144,10 @@ function createParallelWorkerPool(parallel, overrides) {
144144

145145
// Default limits to 4 workers. Benefits diminish after this point, because of the setup cost.
146146
const workerCount = typeof parallel === 'number' ? parallel : Math.min(cpus().length, 4);
147-
return new WorkerPool(WORKER_PATH, workerCount);
147+
return workerpool.pool(WORKER_PATH, {
148+
maxWorkers: workerCount,
149+
workerType: 'thread'
150+
});
148151
}
149152

150153
function executeWithWorkerPool(workerPool, context, taskOpts, babelOptions) {
@@ -157,7 +160,7 @@ function executeWithWorkerPool(workerPool, context, taskOpts, babelOptions) {
157160
);
158161
}
159162

160-
return workerPool.runTask(taskOpts).catch((err) => context.error(err.message));
163+
return workerPool.exec('transform', [taskOpts]).catch((err) => context.error(err.message));
161164
}
162165

163166
function createBabelInputPluginFactory(customCallback = returnObject) {

packages/babel/src/worker.js

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,16 @@
1-
import { parentPort } from 'worker_threads';
1+
import workerpool from 'workerpool';
22

33
import transformCode from './transformCode.js';
44

5-
parentPort.on('message', async (opts) => {
6-
try {
7-
const result = await transformCode({
8-
...opts,
9-
error: (msg) => {
10-
throw new Error(msg);
11-
}
12-
});
13-
parentPort.postMessage({
14-
result
15-
});
16-
} catch (error) {
17-
parentPort.postMessage({
18-
error: {
19-
message: error.message,
20-
stack: error.stack,
21-
name: error.name
22-
}
23-
});
24-
}
5+
async function transform(opts) {
6+
return transformCode({
7+
...opts,
8+
error: (msg) => {
9+
throw new Error(msg);
10+
}
11+
});
12+
}
13+
14+
workerpool.worker({
15+
transform
2516
});

packages/babel/src/workerPool.js

Lines changed: 0 additions & 119 deletions
This file was deleted.

pnpm-lock.yaml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)