| import { d as decamelizeKeys, b as constructParserOptions } from './dependencies.js'; |
| |
| const buildParserFlags = ({flags, booleanDefault}) => { |
| const parserFlags = {}; |
| |
| for (const [flagKey, flagValue] of Object.entries(flags)) { |
| const flag = {...flagValue}; |
| |
| // `minimist-options` expects `flag.alias` |
| if (flag.shortFlag) { |
| flag.alias = flag.shortFlag; |
| delete flag.shortFlag; |
| } |
| |
| if ( |
| booleanDefault !== undefined |
| && flag.type === 'boolean' |
| && !Object.hasOwn(flag, 'default') |
| ) { |
| flag.default = flag.isMultiple ? [booleanDefault] : booleanDefault; |
| } |
| |
| if (flag.isMultiple) { |
| flag.type = flag.type ? `${flag.type}-array` : 'array'; |
| flag.default = flag.default ?? []; |
| delete flag.isMultiple; |
| } |
| |
| if (Array.isArray(flag.aliases)) { |
| if (flag.alias) { |
| flag.aliases.push(flag.alias); |
| } |
| |
| flag.alias = flag.aliases; |
| delete flag.aliases; |
| } |
| |
| parserFlags[flagKey] = flag; |
| } |
| |
| return parserFlags; |
| }; |
| |
| const buildParserOptions = options => { |
| let parserOptions = buildParserFlags(options); |
| parserOptions.arguments = options.input; |
| |
| parserOptions = decamelizeKeys(parserOptions, {separator: '-', exclude: ['stopEarly', '--']}); |
| |
| if (options.inferType) { |
| delete parserOptions.arguments; |
| } |
| |
| // Add --help and --version to known flags if autoHelp or autoVersion are set |
| if (!options.allowUnknownFlags) { |
| if (options.autoHelp && !parserOptions.help) { |
| parserOptions.help = {type: 'boolean'}; |
| } |
| |
| if (options.autoVersion && !parserOptions.version) { |
| parserOptions.version = {type: 'boolean'}; |
| } |
| } |
| |
| parserOptions = constructParserOptions(parserOptions); |
| |
| parserOptions.configuration = { |
| ...parserOptions.configuration, |
| 'greedy-arrays': false, |
| }; |
| |
| if (parserOptions['--']) { |
| parserOptions.configuration['populate--'] = true; |
| } |
| |
| if (!options.allowUnknownFlags) { |
| // Collect unknown options in `argv._` to be checked later. |
| parserOptions.configuration['unknown-options-as-args'] = true; |
| } |
| |
| return parserOptions; |
| }; |
| |
| export { buildParserOptions }; |