Skip to content

Commit 15d1e19

Browse files
author
Maksim Elkin
committed
remake api method for node-arguments
1 parent 42b40f5 commit 15d1e19

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

lib/api.js

+16-10
Original file line numberDiff line numberDiff line change
@@ -321,27 +321,33 @@ class Api extends Emittery {
321321

322322
async _computeForkExecArgv() {
323323
const {nodeArguments: execArgv} = this.options;
324-
if (execArgv.length === 0) {
325-
return execArgv;
324+
325+
const mainProcessArgs = process.execArgv;
326+
327+
// last has bigger priority
328+
const args = mainProcessArgs.concat(execArgv)
329+
330+
if (args.length === 0) {
331+
return args;
326332
}
327333

328-
// --inspect-brk is used in addition to --inspect to break on first line and wait
329-
const inspectArgIndex = execArgv.findIndex(arg => /^--inspect(-brk)?($|=)/.test(arg));
330-
if (inspectArgIndex === -1) {
331-
return execArgv;
334+
const inspectArgs = execArgv.filter(arg => /^--inspect(-brk)?($|=)/.test(arg));
335+
const restArgs = execArgv.filter(arg => !/^--inspect(-brk)?($|=)/.test(arg));
336+
337+
if (inspectArgs.length === 0) {
338+
return args;
332339
}
333340

334341
const port = await getPort();
335-
const forkExecArgv = execArgv.slice();
336342
let flagName = '--inspect';
337-
const oldValue = forkExecArgv[inspectArgIndex];
343+
const oldValue = inspectArgs[inspectArgs.length - 1];
338344
if (oldValue.includes('brk')) {
339345
flagName += '-brk';
340346
}
341347

342-
forkExecArgv[inspectArgIndex] = `${flagName}=${port}`;
348+
inspectArgs[inspectArgs.length - 1] = `${flagName}=${port}`
343349

344-
return forkExecArgv;
350+
return restArgs.concat(inspectArgs).join(' ');
345351
}
346352
}
347353

0 commit comments

Comments
 (0)