keys = keys.filter(
key =>
aliasKeys.every(
alias => (options.alias[alias] || []).indexOf(key) === -1
)
);
Frontier kind: Code frontier
unlabeled · c_d9ff668ce363
416 tests · 2342 LOC · 18 files · introduces 0 tests · 142 LOC · 2 files
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.
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.
Every exact file and test below is linked only from the concept that introduces it.
mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/yargs.mjs|title=yargs dsl tests positional allows a default to be set|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/yargs.mjs|title=yargs dsl tests positional defaults array with no arguments to []|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:esm|file=test/esm/yargs-test.mjs|title=ESM hierarchy of commands allows array of subcommands to be registered|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command allows an array of commands to be provided|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command allows builder function to parse argv without returning|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command allows builder function to return parsed argv|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command builder helpOrVersionSet cmd|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/yargs.mjs|title=yargs dsl tests function passed as second argument to parse commands populates argv appropriately when parse is called multiple times|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests deprecate options using .deprecateOption(x, [string]) .deprecateOption(x) in a sub-command|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests deprecate options using .deprecateOption(x, [string]) .deprecateOption(x, string) in a sub-command|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command async builder helpOrVersionSet --help|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/command.mjs|title=Command builder helpOrVersionSet --help|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests epilogue replaces $0 in epilog string|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests epilogue should display an epilog message at the end of the usage instructions|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests epilogue supports multiple epilogs|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests wrap should align span columns when ansi colors are not used in a description|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests wrap should align span columns when ansi colors are used in a description|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests hidden options --help should display all groups except for ones with only hidden options|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests hidden options --help should display all options except for hidden ones even in a group|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests deprecate options using .deprecateOption(x, [string]) .deprecateOption(x) should show [deprecated]|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests deprecate options using .deprecateOption(x, [string]) .deprecateOption(x, string) should show [deprecated: string]|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests scriptName should display user supplied scriptName|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests scriptName should not alter the user supplied scriptName|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests default if a named function is provided, should use name rather than (generated-value)|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/usage.mjs|title=usage tests default should indicate that the default is a generated-value, if function is provided|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/validation.mjs|title=validation tests config should allow help message to be overridden|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/validation.mjs|title=validation tests config should be displayed in the help message with its default name|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/validation.mjs|title=validation tests config should be displayed in the help message|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/argsert.mjs|title=Argsert allows for any type if * is provided|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/argsert.mjs|title=Argsert should ignore trailing undefined values|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:esm|file=test/esm/helpers.mjs|title=helpers Parser exposes functional argument parser|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/parser.mjs|title=should expose yargs-parser as Parser|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:esm|file=test/esm/platform-shim-test.mjs|title=platform-shim y18n __ behaves like sprintf|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:esm|file=test/esm/platform-shim-test.mjs|title=platform-shim y18n __n uses first string if singular|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:esm|file=test/esm/platform-shim-test.mjs|title=platform-shim y18n __n uses second string if plural|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/is-promise.mjs|title=isPromise returns `false` if passed object has no `then` property|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/is-promise.mjs|title=isPromise returns `false` if some falsy value is passed|occurrence=1mocha:v1|namespace=yargs@4153e0f097aeaf43a71a2530db6dda51dff2c544:main|file=test/is-promise.mjs|title=isPromise returns `false` on non promise value|occurrence=1Every collected test enters the hierarchy at exactly one concept.
No tests are introduced at this concept. Its intent tests are introduced by other concepts.
Every collected source range enters the hierarchy at exactly one concept.
2 files ranked by introduced lines: 142 introduced LOC across 18 ranges. Expand a file to inspect source; the > gutter marks introduced lines.
keys = keys.filter(
key =>
aliasKeys.every(
alias => (options.alias[alias] || []).indexOf(key) === -1
)
);
.filter(groupName => groups[groupName].length > 0)
.map(groupName => {
// normalizedKeys should contain only 'foobar'.
const normalizedKeys: string[] = groups[groupName]
.filter(filterHiddenOptions)
.map(key => {
if (aliasKeys.includes(key)) return key;
for (
let i = 0, aliasKey;
}
return key;
return {groupName, normalizedKeys};
})
.filter(({normalizedKeys}) => normalizedKeys.length > 0)
.map(({groupName, normalizedKeys}) => {
const switches: Dictionary<string | IndentedText> =
normalizedKeys.reduce((acc, key) => {
acc[key] = [key]
.concat(options.alias[key] || [])
.map(sw => {
// for the special positional group don't
// add '--' or '-' prefix.
if (groupName === self.getPositionalGroupName()) return sw;
else {
return (
// matches yargs-parser logic in which single-digits
// aliases declared with a boolean type are now valid
(/^[0-9]$/.test(sw)
? options.boolean.includes(key)
? '-'
: '--'
? '--'
: '-') + sw
);
}
})
// place short switches first (see #1403)
.sort((sw1, sw2) =>
isLongSwitch(sw1) === isLongSwitch(sw2)
? 0
? 1
: -1
.join(', ');
return acc;
}, {} as Dictionary<string>);
return {groupName, normalizedKeys, switches};
});
.some(
({normalizedKeys, switches}) =>
);
// display 'Options:' table along with any custom tables:
displayedGroups.forEach(({groupName, normalizedKeys, switches}) => {
normalizedKeys.forEach(key => {
const kswitch = switches[key];
let desc = descriptions[key] || '';
let type = null;
if (desc.includes(deferY18nLookupPrefix))
desc = __(desc.substring(deferY18nLookupPrefix.length));
if (options.boolean.includes(key)) type = `[${__('boolean')}]`;
if (options.count.includes(key)) type = `[${__('count')}]`;
if (options.string.includes(key)) type = `[${__('string')}]`;
if (options.normalize.includes(key)) type = `[${__('string')}]`;
if (options.array.includes(key)) type = `[${__('array')}]`;
if (options.number.includes(key)) type = `[${__('number')}]`;
const deprecatedExtra = (deprecated?: string | boolean) =>
typeof deprecated === 'string'
? `[${__('deprecated: %s', deprecated)}]`
const extra = [
key in deprecatedOptions
? deprecatedExtra(deprecatedOptions[key])
: null,
type,
key in demandedOptions ? `[${__('required')}]` : null,
options.choices && options.choices[key]
? `[${__('choices:')} ${self.stringifiedValues(
options.choices[key]
)}]`
defaultString(options.default[key], options.defaultDescription[key]),
]
.filter(Boolean)
.join(' ');
ui.span(
{
text: getText(kswitch),
padding: [0, 2, 0, 2 + getIndentation(kswitch)],
width: maxWidth(switches, theWrap) + 4,
},
desc
);
const shouldHideOptionExtras =
yargs.getInternalMethods().getUsageConfiguration()['hide-types'] ===
true;
if (extra && !shouldHideOptionExtras)
ui.div({text: extra, padding: [0, 0, 0, 2], align: 'right'});
else ui.div();
ui.div();
});
// in the left-hand column of a table.
function maxWidth(
[string | IndentedText, ...any[]][] | Dictionary<string | IndentedText>,
theWrap?: number | null,
modifier?: string
) {
let width = 0;
// table might be of the form [leftColumn],
// or {key: leftColumn}
if (!Array.isArray(table)) {
table = Object.values(table).map<[string | IndentedText]>(v => [v]);
}
table.forEach(v => {
// column might be of the form "text"
// or { text: "text", indent: 4 }
width = Math.max(
shim.stringWidth(
modifier ? `${modifier} ${getText(v[0])}` : getText(v[0])
) + getIndentation(v[0]),
width
);
});
// if we've enabled 'wrap' we should limit
// the max-width of the left-column.
if (theWrap)
width = Math.min(width, parseInt((theWrap * 0.5).toString(), 10));
return width;
}
// make sure any options set for aliases,
keys.forEach(key => {
if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {
groups[defaultGroup].push(key);
}
// the right-hand column.
function defaultString(value: any, defaultDescription?: string) {
if (value === undefined && !defaultDescription) return null;
if (defaultDescription) {
}
return typeof text === 'object';
}
function addIndentation(
}
[kGetUsageConfiguration](): UsageConfiguration {
}
[kGuessLocale]() {
if (!this.#detectLocale) return;