Buckets:
| ; | |
| // classic singleton yargs API, to use yargs | |
| // without running as a singleton do: | |
| // require('yargs/yargs')(process.argv.slice(2)) | |
| const {Yargs, processArgv} = require('./build/index.cjs'); | |
| Argv(processArgv.hideBin(process.argv)); | |
| module.exports = Argv; | |
| function Argv(processArgs, cwd) { | |
| const argv = Yargs(processArgs, cwd, require); | |
| singletonify(argv); | |
| // TODO(bcoe): warn if argv.parse() or argv.argv is used directly. | |
| return argv; | |
| } | |
| function defineGetter(obj, key, getter) { | |
| Object.defineProperty(obj, key, { | |
| configurable: true, | |
| enumerable: true, | |
| get: getter, | |
| }); | |
| } | |
| function lookupGetter(obj, key) { | |
| const desc = Object.getOwnPropertyDescriptor(obj, key); | |
| if (typeof desc !== 'undefined') { | |
| return desc.get; | |
| } | |
| } | |
| /* 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. | |
| */ | |
| function singletonify(inst) { | |
| [ | |
| ...Object.keys(inst), | |
| ...Object.getOwnPropertyNames(inst.constructor.prototype), | |
| ].forEach(key => { | |
| if (key === 'argv') { | |
| defineGetter(Argv, key, lookupGetter(inst, key)); | |
| } else if (typeof inst[key] === 'function') { | |
| Argv[key] = inst[key].bind(inst); | |
| } else { | |
| defineGetter(Argv, '$0', () => inst.$0); | |
| defineGetter(Argv, 'parsed', () => inst.parsed); | |
| } | |
| }); | |
| } | |
Xet Storage Details
- Size:
- 1.46 kB
- Xet hash:
- 11c24ebd37559f20e14177f5ce0723e53f848654d56705d98a891803900e9e36
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.