usage.ts ×4
Frontier kind: Code frontier
unlabeled · c_ec0a9a937b4a
76 tests · 2168 LOC · 18 files · introduces 0 tests · 8 LOC · 1 file
Introduces — evidence that enters the hierarchy at this concept
Code
4 ranges 8 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.
usage.ts ×4 — Focused concept
Introduced files:
validation.mjs|title=validation tests demand fails in strict mode with extra positionals|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:
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:
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:
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:
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:
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:
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 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 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 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.ts ×2 — Ancestor (broader)
Introduced files:
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:
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:
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:
usage.ts ×1 — Ancestor (broader)
Introduced files:
usage.ts ×1 — Ancestor (broader)
Introduced files:
usage.ts ×1 — Descendant (narrower)
Introduced files:
usage.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×3 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×3 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×2 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×5 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×5 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×2 — Descendant (narrower)
Introduced files:
usage.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×9 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×2 — Descendant (narrower)
Introduced files:
command.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
yargs-factory.ts ×1 — Descendant (narrower)
Introduced files:
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:
is-promise.ts ×2 — 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: 8 introduced LOC across 4 ranges.
Expand a file to inspect source; the > gutter marks introduced lines.
lib/usage.ts 8 introduced LOC · 4 ranges
Open complete file
8
import setBlocking from './utils/set-blocking.js' ;
9
10
>
function isBoolean ( fail : FailureFunction | boolean ) : fail is boolean {
usage.ts
11
>
return typeof fail === 'boolean' ;
12
>
}
13
14
export function usage ( yargs : YargsInstance , shim : PlatformShim ) {
47
48
if ( fails . length ) {
49
>
for ( let i = fails . length - 1 ; i >= 0 ; -- i ) {
usage.ts
50
>
const fail = fails [ i ];
51
>
if ( isBoolean ( fail )) {
52
if ( err ) throw err ;
53
else if ( msg ) throw Error ( msg );
55
fail ( msg , err , self );
56
}
58
} else {
59
if ( yargs . getExitProcess ()) setBlocking ( true );