yargs-factory.ts ×1
Frontier kind: Code frontier
unlabeled · c_0212499679f7
107 tests · 1903 LOC · 18 files · introduces 0 tests · 2 LOC · 1 file
Introduces — evidence that enters the hierarchy at this concept
Code
1 range 2 lines · 1 files
Tests
0 tests
Contains — complete concept membership
Neighbourhood graph
The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.
Focus concept
Ancestors (broader)
Descendants (narrower)
Introduced files
Introduced tests
Introduced files, introduced tests, and structurally relevant concept specialization
In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.
Graph controls are ready.
Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.
JavaScript is disabled; use the native relationship evidence on this page to explore the same evidence.
Native relationship evidence
Every exact file and test below is linked only from the concept that introduces it.
yargs-factory.ts ×1 — Focused concept
Introduced files:
command.mjs|title=Command global parsing hints coerce should not be applied multiple times for nested commands|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests parse can be called multiple times with the same behavior|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs-factory.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
validation.mjs|title=validation tests strict mode does not fail when unrecognized option is passed after --|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware applyBeforeValidation=true resolves async middleware, before applying validation|occurrence=1 — Ancestor (broader)
Introduced tests:
string|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails in strict mode with extra positionals|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests choices succeeds when demandOption is true and valid choice is provided|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests async argv caches deeply nested help output, so that it can be output by showHelp()|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async calls the command handler when all middleware promises resolve|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests async argv caches nested help output, so that it can be output by showHelp()|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts should not fail if argument with conflict is provided, but not the argument it conflicts with|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs-factory.ts ×2 — Ancestor (broader)
Introduced files:
Introduced tests:
yargs.mjs|title=yargs dsl tests async argv returns promise that can be caught if rejected|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command async returns promise that can be caught, when fail(false)|occurrence=1 — Ancestor (broader)
Introduced tests:
usage.mjs|title=usage tests when exitProcess is false fail() is invoked with yargs instance as third argument|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests choices succeeds when demandOption is false and no choice is provided|occurrence=1, validation.mjs|title=validation tests choices succeeds when demandOption is not provided and no choice is provided|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command global parsing hints validation applies demandOption globally|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async check failure allows error to be caught before calling command and middleware|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts should not fail if conflicting argument is provided, without argument with conflict|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command variadic fails if required arguments are missing|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command missing positional arguments fails if a required argument is missing|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async check failure allows error to be caught before calling command|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware applyBeforeValidation=true does not cause an unexpected error when async middleware and strict are both used|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand interprets max relative to command|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand interprets min relative to command|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async it allows middleware rejection to be caught|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async fails when the promise returned by the middleware rejects|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests strictCommands fails with error if inner command is unknown|occurrence=1, validation.mjs|title=validation tests strictCommands allows strictCommands to be applied to inner commands|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command global parsing hints types applies choices type globally|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests strict mode does not fail when command with subcommands called|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests getHelp should allow help to be output for failed command|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command global parsing hints validation applies conflicts logic for command by default|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command allows async exception in handler to be caught|occurrence=1 — Ancestor (broader)
Introduced tests:
command.mjs|title=Command async fails when the promise returned by the command handler rejects|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails in strict mode with extra positionals for default command|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware applyBeforeValidation=true still throws error when async middleware is used|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests choices fails when demandOption is true and choice is not provided|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests check callback has access to options|occurrence=1, validation.mjs|title=validation tests check does not fail if error is not thrown in check callback, and true is returned|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests check fails if error is thrown in check callback|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests .coerce() allows an error from positional arg to be handled by fail() handler|occurrence=1 — Ancestor (broader)
Introduced tests:
usage.mjs|title=usage tests when exitProcess is false fail() when command() throws error fail() is called with the original error object as the second parameter|occurrence=1 — Ancestor (broader)
Introduced tests:
command.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
validation.mjs|title=validation tests demand fails in strict mode with invalid command|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests defaults should not fail when demanded options with defaults are missing|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests strict mode does not fail for hidden options but does for unknown arguments|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async coerce allows error to be caught|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests skipValidation allows having an option that skips validation but not skipping validation if that option is not used|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests implies allows key to be specified with option shorthand|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demandOption allows demandOption in option shorthand|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests strict mode does not fail if an alias is provided, rather than option itself|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests strictCommands fails with error if command is unknown|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts allows key to be specified with option shorthand|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests strict mode does not fail for hidden options|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.ts ×2 — Ancestor (broader)
Introduced files:
validation.mjs|title=validation tests config should not raise an exception if config file is set as default argument value|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails when a required argument is missing|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand custom failure message should be printed for both min and max constraints|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand does not fail in strict mode when no commands configured|occurrence=1 — Ancestor (broader)
Introduced tests:
middleware.mjs|title=middleware async check failure allows failed check to be caught|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails when required arguments are present, but a command is missing|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails because of undefined command and not because of argument after --|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests implies fails if '_' populated, and implied argument not set|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demandCommand allows a custom min message to be provided|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
yargs.mjs|title=yargs dsl tests skipValidation does not skip validation if no option with skipValidation is present|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails without a message if msg is null|occurrence=1 — Ancestor (broader)
Introduced tests:
usage.mjs|title=usage tests with strict() option set with hyphens in options fails when an invalid argument is provided|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demandCommand allows a custom min and max message to be provided|occurrence=1 — Ancestor (broader)
Introduced tests:
usage.mjs|title=usage tests when exitProcess is false fail() is called with the original error message as the first parameter|occurrence=1, usage.mjs|title=usage tests when exitProcess is false fail() when check() throws error fail() is called with the original error object as the second parameter|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demand fails with standard error message if msg is not defined|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demandOption allows an array of options to be demanded|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests implies fails if --no-foo's implied argument is not set|occurrence=1, validation.mjs|title=validation tests implies fails if implied key (with "no" in the name) is given when it should not|occurrence=1, +1 — Ancestor (broader)
Introduced tests:
validation.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
validation.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
yargs.mjs|title=yargs dsl tests a function can be provided, to execute when a parsing failure occurs|occurrence=1, validation.mjs|title=validation tests implies fails if implied key (with "no" in the name) is not set|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests choices fails with one invalid value|occurrence=1, validation.mjs|title=validation tests choices fails with case-insensitive value|occurrence=1, +3 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts takes into account aliases when applying conflicts logic|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demandCommand defaults to demanding 1 command|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts fails if argument is supplied along with either conflicting argument|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts should fail if alias of conflicting argument is provided|occurrence=1, validation.mjs|title=validation tests conflicts should fail if alias of argument with conflict is provided|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts allows an object to be provided defining conflicting option pairs|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests conflicts should use appropriate translation|occurrence=1, validation.mjs|title=validation tests conflicts fails if both arguments are supplied|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests .coerce() allows an error to be handled by fail() handler|occurrence=1 — Ancestor (broader)
Introduced tests:
output|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs-factory.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
validation.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
validation.mjs|title=validation tests implies doesn't fail if implied key (with "no" in the name) is set|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests implies doesn't fail if implied key exists with value 0|occurrence=1, validation.mjs|title=validation tests implies doesn't fail if implied key exists with value false|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.mjs|title=validation tests demandCommand treats positionals in "--" towards count requirement|occurrence=1 — Ancestor (broader)
Introduced tests:
validation.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
usage.ts ×1 — Ancestor (broader)
Introduced files:
validation.mjs|title=validation tests config should raise an appropriate error if JSON file is not found|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs.mjs|title=yargs dsl tests skipValidation skips validation if an option with skipValidation is present|occurrence=1 — Ancestor (broader)
Introduced tests:
yargs-factory.ts ×2 — Ancestor (broader)
Introduced files:
usage.ts ×1 — Ancestor (broader)
Introduced files:
usage.ts ×1 — Ancestor (broader)
Introduced files:
usage.ts ×4 — Ancestor (broader)
Introduced files:
usage.ts ×1 — Ancestor (broader)
Introduced files:
yargs-factory.ts ×1 — Ancestor (broader)
Introduced files:
Introduced tests:
yargs-factory.ts ×35 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×124 — Descendant (narrower)
Introduced files:
Introduced tests:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
Introduced tests:
argsert.mjs|title=Argsert allows for any type if * is provided|occurrence=1, argsert.mjs|title=Argsert should ignore trailing undefined values|occurrence=1 — Descendant (narrower)
Introduced tests:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
Introduced tests:
argsert.ts ×2 — Descendant (narrower)
Introduced files:
argsert.ts ×3 — Descendant (narrower)
Introduced files:
parse-command.ts ×1 — Descendant (narrower)
Introduced files:
parse-command.ts ×1 — Descendant (narrower)
Introduced files:
parse-command.ts ×3 — Descendant (narrower)
Introduced files:
process-argv.ts ×1 — Descendant (narrower)
Introduced files:
process-argv.ts ×3 — Descendant (narrower)
Introduced files:
argsert.ts ×1 — Descendant (narrower)
Introduced files:
apply-extends.ts ×4 — Descendant (narrower)
Introduced files:
Introduced tests:
argsert.ts ×4 — Descendant (narrower)
Introduced files:
obj-filter.ts ×2 — Descendant (narrower)
Introduced files:
argsert.ts ×3 — Descendant (narrower)
Introduced files:
common-types.ts ×4 — Descendant (narrower)
Introduced files:
process-argv.ts ×5 — Descendant (narrower)
Introduced files:
Introduced tests:
parse-command.ts ×1 — Descendant (narrower)
Introduced files:
Introduced tests:
parse-command.ts ×2 — Descendant (narrower)
Introduced files:
yerror.ts ×2 — Descendant (narrower)
Introduced files:
is-promise.ts ×1 — Descendant (narrower)
Introduced files:
Introduced tests
Every collected test enters the hierarchy at exactly one concept.
No tests are introduced at this concept. Its intent tests are introduced by other concepts.
Introduced code
Every collected source range enters the hierarchy at exactly one concept.
1 file ranked by introduced lines: 2 introduced LOC across 1 ranges.
Expand a file to inspect source; the > gutter marks introduced lines.
lib/yargs-factory.ts 2 introduced LOC · 1 range
Open complete file
742
}
743
fail ( f : FailureFunction | boolean ) : YargsInstance {
745
>
if ( typeof f === 'boolean' && f !== false ) {
746
throw new YError (
747
"Invalid first argument. Expected function or boolean 'false'"