aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nyc/lib/process-args.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nyc/lib/process-args.js')
-rw-r--r--node_modules/nyc/lib/process-args.js36
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
+ }
+}