'use strict'// classic singleton yargs API, to use yargs// without running as a singleton do:// require('yargs/yargs')(process.argv.slice(2))constyargs=require('./yargs')Argv(process.argv.slice(2))module.exports=ArgvfunctionArgv(processArgs,cwd){constargv=yargs(processArgs,cwd,require)singletonify(argv)returnargv}/* Hack an instance of Argv with process.argv into Argv so people can do require('yargs')(['--beeble=1','-z','zizzle']).argv to parse a list of args and require('yargs').argv to get a parsed version of process.argv.*/functionsingletonify(inst){Object.keys(inst).forEach((key)=>{if(key==='argv'){Argv.__defineGetter__(key,inst.__lookupGetter__(key))}elseif(typeofinst[key]==='function'){Argv[key]=inst[key].bind(inst)}else{Argv.__defineGetter__('$0',()=>{returninst.$0})Argv.__defineGetter__('parsed',()=>{returninst.parsed})}})}