Skip to content

Commit ff6c8d9

Browse files
aduh95codebytere
authored andcommitted
worker: add support for .cjs extension
PR-URL: #31662 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: David Carlier <[email protected]> Reviewed-By: Yuta Hiroto <[email protected]> Reviewed-By: Gus Caplan <[email protected]> Reviewed-By: Denys Otrishko <[email protected]>
1 parent bbbb7d8 commit ff6c8d9

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

lib/internal/errors.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1356,7 +1356,7 @@ E('ERR_WORKER_PATH',
13561356
E('ERR_WORKER_UNSERIALIZABLE_ERROR',
13571357
'Serializing an uncaught exception failed', Error);
13581358
E('ERR_WORKER_UNSUPPORTED_EXTENSION',
1359-
'The worker script extension must be ".js" or ".mjs". Received "%s"',
1359+
'The worker script extension must be ".js", ".mjs", or ".cjs". Received "%s"',
13601360
TypeError);
13611361
E('ERR_WORKER_UNSUPPORTED_OPERATION',
13621362
'%s is not supported in workers', TypeError);

lib/internal/worker.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ class Worker extends EventEmitter {
103103
filename = path.resolve(filename);
104104

105105
const ext = path.extname(filename);
106-
if (ext !== '.js' && ext !== '.mjs') {
106+
if (!/^\.[cm]?js$/.test(ext)) {
107107
throw new ERR_WORKER_UNSUPPORTED_EXTENSION(ext);
108108
}
109109
}

test/fixtures/worker-data.cjs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
const { workerData, parentPort } = require('worker_threads');
2+
3+
parentPort.postMessage(workerData);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
'use strict';
2+
const common = require('../common');
3+
const fixtures = require('../common/fixtures');
4+
const assert = require('assert');
5+
const { Worker } = require('worker_threads');
6+
7+
const workerData = 'Hello from main thread';
8+
9+
const worker = new Worker(fixtures.path('worker-data.cjs'), {
10+
workerData
11+
});
12+
13+
worker.on('message', common.mustCall((message) => {
14+
assert.strictEqual(message, workerData);
15+
}));

0 commit comments

Comments
 (0)