first commit
This commit is contained in:
95
node_modules/meow/build/index.js
generated
vendored
Normal file
95
node_modules/meow/build/index.js
generated
vendored
Normal file
@@ -0,0 +1,95 @@
|
||||
import process from 'node:process';
|
||||
import { y as yargsParser, t as trimNewlines, r as redent, n as normalizePackageData, c as camelcaseKeys } from './dependencies.js';
|
||||
import { buildOptions } from './options.js';
|
||||
import { buildParserOptions } from './parser.js';
|
||||
import { checkUnknownFlags, validate, checkMissingRequiredFlags } from './validate.js';
|
||||
|
||||
const buildResult = (options, parserOptions) => {
|
||||
const {pkg: package_} = options;
|
||||
const argv = yargsParser(options.argv, parserOptions);
|
||||
let help = '';
|
||||
|
||||
if (options.help) {
|
||||
help = trimNewlines((options.help || '').replace(/\t+\n*$/, ''));
|
||||
|
||||
if (help.includes('\n')) {
|
||||
help = redent(help, options.helpIndent);
|
||||
}
|
||||
|
||||
help = `\n${help}`;
|
||||
}
|
||||
|
||||
normalizePackageData(package_);
|
||||
|
||||
let {description} = options;
|
||||
if (!description && description !== false) {
|
||||
({description} = package_);
|
||||
}
|
||||
|
||||
description &&= help ? redent(`\n${description}\n`, options.helpIndent) : `\n${description}`;
|
||||
help = `${description || ''}${help}\n`;
|
||||
|
||||
const showHelp = code => {
|
||||
console.log(help);
|
||||
process.exit(typeof code === 'number' ? code : 2);
|
||||
};
|
||||
|
||||
const showVersion = () => {
|
||||
console.log(typeof options.version === 'string' ? options.version : package_.version);
|
||||
process.exit(0);
|
||||
};
|
||||
|
||||
if (argv._.length === 0 && options.argv.length === 1) {
|
||||
if (argv.version === true && options.autoVersion) {
|
||||
showVersion();
|
||||
} else if (argv.help === true && options.autoHelp) {
|
||||
showHelp(0);
|
||||
}
|
||||
}
|
||||
|
||||
const input = argv._;
|
||||
delete argv._;
|
||||
|
||||
if (!options.allowUnknownFlags) {
|
||||
checkUnknownFlags(input);
|
||||
}
|
||||
|
||||
const flags = camelcaseKeys(argv, {exclude: ['--', /^\w$/]});
|
||||
const unnormalizedFlags = {...flags};
|
||||
|
||||
validate(flags, options);
|
||||
|
||||
for (const flagValue of Object.values(options.flags)) {
|
||||
if (Array.isArray(flagValue.aliases)) {
|
||||
for (const alias of flagValue.aliases) {
|
||||
delete flags[alias];
|
||||
}
|
||||
}
|
||||
|
||||
delete flags[flagValue.shortFlag];
|
||||
}
|
||||
|
||||
checkMissingRequiredFlags(options.flags, flags, input);
|
||||
|
||||
return {
|
||||
input,
|
||||
flags,
|
||||
unnormalizedFlags,
|
||||
pkg: package_,
|
||||
help,
|
||||
showHelp,
|
||||
showVersion,
|
||||
};
|
||||
};
|
||||
|
||||
const meow = (helpText, options = {}) => {
|
||||
const parsedOptions = buildOptions(helpText, options);
|
||||
const parserOptions = buildParserOptions(parsedOptions);
|
||||
const result = buildResult(parsedOptions, parserOptions);
|
||||
|
||||
process.title = result.pkg.bin ? Object.keys(result.pkg.bin).at(0) : result.pkg.name;
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
export { meow as default };
|
||||
Reference in New Issue
Block a user