-
-
Notifications
You must be signed in to change notification settings - Fork 350
/
process-args.js
39 lines (35 loc) · 964 Bytes
/
process-args.js
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
37
38
39
'use strict'
const { Parser } = require('yargs/yargs')
const commands = [
'report',
'check-coverage',
'instrument',
'merge'
]
module.exports = {
// don't pass arguments that are meant
// for nyc to the bin being instrumented.
hideInstrumenterArgs (yargv) {
let 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 () {
let argv = process.argv.slice(2)
const yargv = Parser(argv)
if (!yargv._.length) return argv
for (let i = 0, command; (command = yargv._[i]) !== undefined; i++) {
if (commands.includes(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
}
}