Skip to content

Commit ee6bd58

Browse files
committed
Move extension options config test into it's own folder
1 parent befc5ee commit ee6bd58

11 files changed

Lines changed: 48 additions & 10 deletions

File tree

lib/get-source-loader.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { send } from './ipc.js';
1+
import { send } from './ipc.mjs';
22

33
export async function getSource(url, context, defaultGetSource) {
44
send({ required: new URL(url).pathname });

lib/index.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ module.exports = function (
101101
const resolveLoader = resolveMain(localPath('resolve-loader.mjs'));
102102
args.push('--experimental-modules', `--loader=${resolveLoader}`);
103103
} else if (semver.satisfies(process.version, '>=12.11.1')) {
104+
if (semver.satisfies(process.version, '<12.17.0')) {
105+
args.push('--experimental-modules');
106+
}
104107
const loaderPath = semver.satisfies(process.version, '>=16.12.0')
105108
? 'load-loader.mjs'
106109
: 'get-source-loader.mjs';

lib/ipc.mjs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const cmd = 'NODE_DEV';
2+
3+
export const send = m => {
4+
if (process.connected) process.send({ ...m, cmd });
5+
};
6+
7+
export const on = (src, prop, cb) => {
8+
src.on('internalMessage', m => {
9+
if (m.cmd === cmd && prop in m) cb(m);
10+
});
11+
};
12+
13+
export const relay = src => {
14+
src.on('internalMessage', m => {
15+
if (process.connected && m.cmd === cmd) process.send(m);
16+
});
17+
};

test/fixture/.node-dev.json

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,6 @@
22
"notify": false,
33
"ignore": ["./ignored-module.js"],
44
"extensions": {
5-
"js": {
6-
"name": "./extension",
7-
"options": {
8-
"test": true
9-
}
10-
},
115
"ts": "ts-node/register"
126
}
137
}

test/fixture/ecma-script-module-package/.node-dev.json

Lines changed: 0 additions & 3 deletions
This file was deleted.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"extensions": {
3+
"js": {
4+
"name": "./extension.js",
5+
"options": {
6+
"test": true
7+
}
8+
}
9+
}
10+
}

test/fixture/extension.js renamed to test/fixture/extension-options/extension.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,5 @@ module.exports = function (options) {
66
if (options.test !== true) {
77
throw new Error('Expected options.test to be true');
88
}
9+
console.log(options);
910
};
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
const message = require('../message.js');
2+
3+
console.log(message);
4+
5+
// So it doesn't immediately exit.
6+
setTimeout(() => {}, 10000);

test/message.js

Whitespace-only changes.

test/spawn/extension-options.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
const tap = require('tap');
2+
3+
const { spawn } = require('../utils');
4+
5+
tap.test('should pass options to extensions according to .node-dev.json', t => {
6+
spawn('extension-options', out => {
7+
if (out.match(/\{ test: true \}/)) return { exit: t.end.bind(t) };
8+
});
9+
});

0 commit comments

Comments
 (0)