diff --git a/types/yargs/index.d.ts b/types/yargs/index.d.ts index 1f9dc22e3e..c574520ab6 100644 --- a/types/yargs/index.d.ts +++ b/types/yargs/index.d.ts @@ -6,6 +6,7 @@ // Jeff Kenney // Jimi (Dimitris) Charalampidis // Steffen Viken ValvÄg +// Emily Marigold Klassen // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 3.0 @@ -124,6 +125,8 @@ declare namespace yargs { example(command: string, description: string): Argv; + exit(code: number, err: Error): void; + exitProcess(enabled: boolean): Argv; fail(func: (msg: string, err: Error) => any): Argv; @@ -169,6 +172,8 @@ declare namespace yargs { parse(): { [key in keyof Arguments]: Arguments[key] }; parse(arg: string | ReadonlyArray, context?: object, parseCallback?: ParseCallback): { [key in keyof Arguments]: Arguments[key] }; + parsed: DetailedArguments | false; + pkgConf(key: string | ReadonlyArray, cwd?: string): Argv; /** @@ -262,6 +267,28 @@ declare namespace yargs { [argName: string]: unknown; }; + interface DetailedArguments { + argv: Arguments; + error: Error | null; + aliases: {[alias: string]: string[]}; + newAliases: {[alias: string]: boolean}; + configuration: Configuration; + } + + interface Configuration { + 'boolean-negation': boolean; + 'camel-case-expansion': boolean; + 'combine-arrays': boolean; + 'dot-notation': boolean; + 'duplicate-arguments-array': boolean; + 'flatten-duplicate-arrays': boolean; + 'negation-prefix': string; + 'parse-numbers': boolean; + 'populate--': boolean; + 'set-placeholder-key': boolean; + 'short-option-groups': boolean; + } + interface RequireDirectoryOptions { recurse?: boolean; extensions?: ReadonlyArray; diff --git a/types/yargs/tsconfig.json b/types/yargs/tsconfig.json index dd10c56ee2..93c96061a3 100644 --- a/types/yargs/tsconfig.json +++ b/types/yargs/tsconfig.json @@ -18,6 +18,7 @@ }, "files": [ "index.d.ts", + "yargs.d.ts", "yargs-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/yargs/yargs-tests.ts b/types/yargs/yargs-tests.ts index 605a986eaf..749a83ad2b 100644 --- a/types/yargs/yargs-tests.ts +++ b/types/yargs/yargs-tests.ts @@ -1,6 +1,7 @@ /// import yargs = require('yargs'); +import yargsSingleton = require('yargs/yargs'); import * as fs from 'fs'; import * as path from 'path'; @@ -1055,3 +1056,15 @@ function Argv$fallbackToUnknownForUnknownOptions() { const x: string = yargs.argv.x; return x; } + +function Argv$exit() { + yargs.exit(1, new Error("oh no")); +} + +function Argv$parsed() { + const parsedArgs = yargs.parsed; +} + +function makeSingleton() { + yargsSingleton(process.argv.slice(2)); +} diff --git a/types/yargs/yargs.d.ts b/types/yargs/yargs.d.ts new file mode 100644 index 0000000000..f022ae4b9f --- /dev/null +++ b/types/yargs/yargs.d.ts @@ -0,0 +1,9 @@ +import { Argv } from '.'; + +export = Yargs; + +declare function Yargs( + processArgs?: ReadonlyArray, + cwd?: string, + parentRequire?: NodeRequireFunction, +): Argv;