diff options
Diffstat (limited to 'node_modules/nyc/lib/process-args.js')
-rw-r--r-- | node_modules/nyc/lib/process-args.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/node_modules/nyc/lib/process-args.js b/node_modules/nyc/lib/process-args.js new file mode 100644 index 000000000..df6bcaac1 --- /dev/null +++ b/node_modules/nyc/lib/process-args.js @@ -0,0 +1,36 @@ +const parser = require('yargs-parser') +const commands = [ + 'report', + 'check-coverage', + 'instrument' +] + +module.exports = { + // don't pass arguments that are meant + // for nyc to the bin being instrumented. + hideInstrumenterArgs: function (yargv) { + var argv = process.argv.slice(1) + argv = argv.slice(argv.indexOf(yargv._[0])) + if (argv[0][0] === '-') { + argv.unshift(process.execPath) + } + return argv + }, + // don't pass arguments for the bin being + // instrumented to nyc. + hideInstrumenteeArgs: function () { + var argv = process.argv.slice(2) + var yargv = parser(argv) + if (!yargv._.length) return argv + for (var i = 0, command; (command = yargv._[i]) !== undefined; i++) { + if (~commands.indexOf(command)) return argv + } + + // drop all the arguments after the bin being + // instrumented by nyc. + argv = argv.slice(0, argv.indexOf(yargv._[0])) + argv.push(yargv._[0]) + + return argv + } +} |