From 4876804e6c0b1586f17e16cd4d92af55a518fcbc Mon Sep 17 00:00:00 2001 From: Oxtaly Date: Sun, 11 May 2025 22:32:00 +0200 Subject: [PATCH] Addition: otps.addFlagShorthandsAsAliases -> Automatically adds shorthands into aliases, so --f resolves to --flag like -f would (with the shorthand configured as -f) --- index.js | 9 +++++++++ types.d.ts | 2 ++ 2 files changed, 11 insertions(+) diff --git a/index.js b/index.js index 863a2fa..8a88585 100644 --- a/index.js +++ b/index.js @@ -121,6 +121,7 @@ function validateAndFillDefaults(opts) { validateOrDefaultIfUnset(opts, 'resolveFlagValueTypes', 'boolean', true); validateOrDefaultIfUnset(opts, 'allowNullDefaultFlagValues', 'boolean', true); validateOrDefaultIfUnset(opts, 'handleBackslashesForSpecialFlagChars', 'boolean', true); + validateOrDefaultIfUnset(opts, 'addFlagShorthandsAsAliases', 'boolean', true); validateOrDefaultIfUnset(opts, 'automaticBooleanFlagNegation', 'object', {}); @@ -699,6 +700,14 @@ function parser(argv, opts) { expectType('opts', 'object', opts, false, false); /** @throwable Will throw if anything is wrong */ validateAndFillDefaults(opts); + + if(opts.addFlagShorthandsAsAliases) { + Object.values(opts.flags).forEach((flagConfig) => { + if(flagConfig.shorthands.length >= 1) + /// @ts-ignore + flagConfig.aliases.push(...flagConfig.shorthands) + }) + } const allShorthandFlags = getAllShorthandFlags(opts); diff --git a/types.d.ts b/types.d.ts index c1bb860..a93c839 100644 --- a/types.d.ts +++ b/types.d.ts @@ -82,6 +82,8 @@ export interface ParserOpts { * @default true */ handleBackslashesForSpecialFlagChars?: boolean + /** If enabled, automatically adds shorthands as valid flag aliases (eg: -f &-> --f) @default true */ + addFlagShorthandsAsAliases?: boolean } function __type__getType(e: any) { return typeof e };