summaryrefslogtreecommitdiff
path: root/deps/node/deps/npm/node_modules/libnpx/parse-args.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/node/deps/npm/node_modules/libnpx/parse-args.js')
-rw-r--r--deps/node/deps/npm/node_modules/libnpx/parse-args.js241
1 files changed, 0 insertions, 241 deletions
diff --git a/deps/node/deps/npm/node_modules/libnpx/parse-args.js b/deps/node/deps/npm/node_modules/libnpx/parse-args.js
deleted file mode 100644
index d655442c..00000000
--- a/deps/node/deps/npm/node_modules/libnpx/parse-args.js
+++ /dev/null
@@ -1,241 +0,0 @@
-'use strict'
-
-let npa
-const path = require('path')
-
-module.exports = parseArgs
-function parseArgs (argv, defaultNpm) {
- argv = argv || process.argv
- if (argv.length > 2 && argv[2][0] !== '-') {
- // fast-path around arg parsing! Don't even need to load yargs here.
- return fastPathArgs(argv, defaultNpm)
- }
-
- npa = require('npm-package-arg')
-
- const parser = yargsParser(argv, defaultNpm)
-
- const opts = parser.getOptions()
- const bools = new Set(opts.boolean)
-
- let cmdIndex
- let hasDashDash
- for (let i = 2; i < argv.length; i++) {
- const opt = argv[i]
- if (opt === '--') {
- hasDashDash = true
- break
- } else if (opt === '--node-arg' || opt === '-n') {
- argv[i] = `${opt}=${argv[i + 1]}`
- argv.splice(i + 1, 1)
- } else if (opt[0] === '-') {
- if (
- // --no-install needs to be special-cased because we're abusing
- // yargs a bit in order to get the --help text right.
- opt !== '--no-install' &&
- !bools.has(opt.replace(/^--?(no-)?/i, '')) &&
- opt.indexOf('=') === -1
- ) {
- i++
- }
- } else {
- cmdIndex = i
- break
- }
- }
- if (cmdIndex) {
- const parsed = parser.parse(argv.slice(0, cmdIndex))
- const parsedCmd = npa(argv[cmdIndex])
- parsed.command = parsed.package && parsedCmd.type !== 'directory'
- ? argv[cmdIndex]
- : guessCmdName(parsedCmd)
- parsed.isLocal = parsedCmd.type === 'directory'
- parsed.cmdOpts = argv.slice(cmdIndex + 1)
- if (typeof parsed.package === 'string') {
- parsed.package = [parsed.package]
- }
- parsed.packageRequested = !!parsed.package
- parsed.cmdHadVersion = parsed.package || parsedCmd.type === 'directory'
- ? false
- : parsedCmd.name !== parsedCmd.raw
- const pkg = parsed.package || [argv[cmdIndex]]
- parsed.p = parsed.package = pkg.map(p => npa(p).toString())
- return parsed
- } else {
- const parsed = parser.parse(argv)
- if (typeof parsed.package === 'string') {
- parsed.package = [parsed.package]
- }
- // -c *requires* -p, because the -c string should not be touched by npx
- if (parsed.call && parsed.package) {
- parsed.packageRequested = !!parsed.package
- parsed.cmdHadVersion = false
- const pkg = parsed.package
- parsed.p = parsed.package = pkg.map(p => npa(p).toString())
- } else if (parsed.call && !parsed.package) {
- parsed.packageRequested = false
- parsed.cmdHadVersion = false
- parsed.p = parsed.package = []
- } else if (hasDashDash) {
- const splitCmd = parsed._.slice(2)
- const parsedCmd = npa(splitCmd[0])
- parsed.command = parsed.package
- ? splitCmd[0]
- : guessCmdName(parsedCmd)
- parsed.cmdOpts = splitCmd.slice(1)
- parsed.packageRequested = !!parsed.package
- parsed.cmdHadVersion = parsed.package
- ? false
- : parsedCmd.name !== parsedCmd.raw
- const pkg = parsed.package || [splitCmd[0]]
- parsed.p = parsed.package = pkg.map(p => npa(p).toString())
- }
- return parsed
- }
-}
-
-function fastPathArgs (argv, defaultNpm) {
- let parsedCmd
- let pkg
- if (argv[2].match(/^[a-z0-9_-]+$/i)) {
- parsedCmd = { registry: true, name: argv[2], raw: argv[2] }
- pkg = [`${argv[2]}@latest`]
- } else {
- npa = require('npm-package-arg')
- parsedCmd = npa(argv[2])
- if (parsedCmd.type === 'directory') {
- pkg = []
- } else {
- pkg = [parsedCmd.toString()]
- }
- }
- return {
- command: guessCmdName(parsedCmd),
- cmdOpts: argv.slice(3),
- packageRequested: false,
- isLocal: parsedCmd.type === 'directory',
- cmdHadVersion: (
- parsedCmd.name !== parsedCmd.raw &&
- parsedCmd.type !== 'directory'
- ),
- package: pkg,
- p: pkg,
- shell: false,
- noYargs: true,
- npm: defaultNpm || 'npm'
- }
-}
-
-parseArgs.showHelp = () => require('yargs').showHelp()
-
-module.exports._guessCmdName = guessCmdName
-function guessCmdName (spec) {
- if (typeof spec === 'string') {
- if (!npa) { npa = require('npm-package-arg') }
- spec = npa(spec)
- }
- if (spec.scope) {
- return spec.name.slice(spec.scope.length + 1)
- } else if (spec.registry) {
- return spec.name
- } else if (spec.hosted && spec.hosted.project) {
- return spec.hosted.project
- } else if (spec.type === 'git') {
- const match = spec.fetchSpec.match(/([a-z0-9-]+)(?:\.git)?$/i)
- return match[1]
- } else if (spec.type === 'directory') {
- return spec.raw
- } else if (spec.type === 'file' || spec.type === 'remote') {
- let ext = path.extname(spec.fetchSpec)
- if (ext === '.gz') {
- ext = path.extname(path.basename(spec.fetchSpec, ext)) + ext
- }
- return path.basename(spec.fetchSpec, ext).replace(/-\d+\.\d+\.\d+(?:-[a-z0-9.\-+]+)?$/i, '')
- }
-
- console.error(Y()`Unable to guess a binary name from ${spec.raw}. Please use --package.`)
- return null
-}
-
-function yargsParser (argv, defaultNpm) {
- const usage = `
- npx [${Y()`options`}] <${Y()`command`}>[@${Y()`version`}] [${Y()`command-arg`}]...
-
- npx [${Y()`options`}] [-p|--package <${Y()`package`}>]... <${Y()`command`}> [${Y()`command-arg`}]...
-
- npx [${Y()`options`}] -c '<${Y()`command-string`}>'
-
- npx --shell-auto-fallback [${Y()`shell`}]
- `
-
- return require('yargs')
- .usage(Y()`Execute binaries from npm packages.\n${usage}`)
- .option('package', {
- alias: 'p',
- type: 'string',
- describe: Y()`Package to be installed.`
- })
- .option('cache', {
- type: 'string',
- describe: Y()`Location of the npm cache.`
- })
- .option('always-spawn', {
- describe: Y()`Always spawn a child process to execute the command.`,
- type: 'boolean'
- })
- .option('no-install', {
- type: 'boolean',
- describe: Y()`Skip installation if a package is missing.`
- })
- .option('userconfig', {
- type: 'string',
- describe: Y()`Path to user npmrc.`
- })
- .option('call', {
- alias: 'c',
- type: 'string',
- describe: Y()`Execute string as if inside \`npm run-script\`.`
- })
- .option('shell', {
- alias: 's',
- type: 'string',
- describe: Y()`Shell to execute the command with, if any.`,
- default: false
- })
- .option('shell-auto-fallback', {
- choices: ['', 'bash', 'fish', 'zsh'],
- describe: Y()`Generate shell code to use npx as the "command not found" fallback.`,
- requireArg: false,
- type: 'string'
- })
- .option('ignore-existing', {
- describe: Y()`Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.`,
- type: 'boolean'
- })
- .option('quiet', {
- alias: 'q',
- describe: Y()`Suppress output from npx itself. Subcommands will not be affected.`,
- type: 'boolean'
- })
- .option('npm', {
- describe: Y()`npm binary to use for internal operations.`,
- type: 'string',
- default: defaultNpm || 'npm'
- })
- .option('node-arg', {
- alias: 'n',
- type: 'string',
- describe: Y()`Extra node argument when calling a node binary.`
- })
- .version()
- .alias('version', 'v')
- .help()
- .alias('help', 'h')
- .epilogue(Y()`For the full documentation, see the manual page for npx(1).`)
-}
-
-var _y
-function Y () {
- if (!_y) { _y = require('./y.js') }
- return _y
-}