parcoursup/node_modules/nyc/lib/config-util.js
lalBi94 7bc56c09b5 $
2023-03-05 13:23:23 +01:00

66 lines
1.8 KiB
JavaScript

'use strict'
const path = require('path')
const findUp = require('find-up')
const Yargs = require('yargs/yargs')
const { setupOptions } = require('./commands/helpers')
const processArgs = require('./process-args')
const { loadNycConfig } = require('@istanbuljs/load-nyc-config')
async function guessCWD (cwd) {
cwd = cwd || process.env.NYC_CWD || process.cwd()
const pkgPath = await findUp('package.json', { cwd })
if (pkgPath) {
cwd = path.dirname(pkgPath)
}
return cwd
}
async function processConfig (cwd) {
cwd = await guessCWD(cwd)
const yargs = Yargs([])
.usage('$0 [command] [options]')
.usage('$0 [options] [bin-to-instrument]')
.showHidden(false)
setupOptions(yargs, null, cwd)
yargs
.example('$0 npm test', 'instrument your tests with coverage')
.example('$0 --require @babel/register npm test', 'instrument your tests with coverage and transpile with Babel')
.example('$0 report --reporter=text-lcov', 'output lcov report after running your tests')
.epilog('visit https://git.io/vHysA for list of available reporters')
.boolean('h')
.boolean('version')
.help(false)
.version(false)
const instrumenterArgs = processArgs.hideInstrumenteeArgs()
// This yargs.parse must come before any options that exit post-hoc
const childArgs = processArgs.hideInstrumenterArgs(yargs.parse(process.argv.slice(2)))
const config = await loadNycConfig(yargs.parse(instrumenterArgs))
yargs
.config(config)
.help('h')
.alias('h', 'help')
.version()
.command(require('./commands/check-coverage'))
.command(require('./commands/instrument'))
.command(require('./commands/report'))
.command(require('./commands/merge'))
return {
get argv () {
return yargs.parse(instrumenterArgs)
},
childArgs,
yargs
}
}
module.exports = processConfig