Tons of Solutions Engineering work done today for the rest of the CS team! Headway, Howard Hanna, Engels, Brighton, etc. Also completed Datasnippers auth flow and worked on Anthology's script. Cloned Anthology's courses (900..) and will clone Full Story on Monday.

This commit is contained in:
Norm Rasmussen
2024-01-05 17:07:59 -05:00
parent ce261975ca
commit a5fe4bd2c8
3157 changed files with 554269 additions and 16 deletions

53
Scripts/node_modules/yargs/index.cjs generated vendored Normal file
View File

@ -0,0 +1,53 @@
'use strict';
// 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);
}
});
}