From 5c3b2239d579ab6b165b4f7d322f54a355b7180e Mon Sep 17 00:00:00 2001 From: Emily Marigold Klassen Date: Thu, 15 Nov 2018 17:52:56 -0800 Subject: [PATCH 1/3] Add non-singleton version of yargs, and other things used by lerna --- types/yargs/index.d.ts | 27 +++++++++++++++++++++++++++ types/yargs/tsconfig.json | 3 ++- types/yargs/yargs.d.ts | 9 +++++++++ 3 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 types/yargs/yargs.d.ts 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.d.ts b/types/yargs/yargs.d.ts new file mode 100644 index 0000000000..fec8f1e857 --- /dev/null +++ b/types/yargs/yargs.d.ts @@ -0,0 +1,9 @@ +import { Argv } from '.'; + +export = Yargs; + +declare function Yargs( + processArgs?: string[], + cwd?: string, + parentRequire?: NodeRequireFunction, +): Argv; From 83c3201f00de55fe0f3fdb180fc6eb3313e0bd78 Mon Sep 17 00:00:00 2001 From: Emily Marigold Klassen Date: Fri, 29 Mar 2019 21:18:30 -0700 Subject: [PATCH 2/3] Update tests for yargs --- types/yargs/yargs-tests.ts | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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)); +} From de2e9d9a58effd8d5894b4e6c77b449a9a064794 Mon Sep 17 00:00:00 2001 From: Emily Marigold Klassen Date: Sat, 30 Mar 2019 16:01:18 -0700 Subject: [PATCH 3/3] Use ReadonlyArray --- types/yargs/yargs.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/yargs/yargs.d.ts b/types/yargs/yargs.d.ts index fec8f1e857..f022ae4b9f 100644 --- a/types/yargs/yargs.d.ts +++ b/types/yargs/yargs.d.ts @@ -3,7 +3,7 @@ import { Argv } from '.'; export = Yargs; declare function Yargs( - processArgs?: string[], + processArgs?: ReadonlyArray, cwd?: string, parentRequire?: NodeRequireFunction, ): Argv;