Skip to content

Commit 822f2ac

Browse files
aduh95codebytere
authored andcommitted
worker: add support for .cjs extension
PR-URL: #31662 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Yuta Hiroto <hello@hiroppy.me> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Denys Otrishko <shishugi@gmail.com>
1 parent b35f83e commit 822f2ac

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
@@ -1367,7 +1367,7 @@ E('ERR_WORKER_PATH',
13671367
E('ERR_WORKER_UNSERIALIZABLE_ERROR',
13681368
'Serializing an uncaught exception failed', Error);
13691369
E('ERR_WORKER_UNSUPPORTED_EXTENSION',
1370-
'The worker script extension must be ".js" or ".mjs". Received "%s"',
1370+
'The worker script extension must be ".js", ".mjs", or ".cjs". Received "%s"',
13711371
TypeError);
13721372
E('ERR_WORKER_UNSUPPORTED_OPERATION',
13731373
'%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
@@ -104,7 +104,7 @@ class Worker extends EventEmitter {
104104
filename = path.resolve(filename);
105105

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

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)