aboutsummaryrefslogtreecommitdiff
path: root/node_modules/nyc/lib/process-args.js
blob: df6bcaac1454bbd8bc381d3b1cef708ae8d168e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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
  }
}