1
1
import { PackageJson } from 'type-fest' ;
2
- import { Options as MinimistOptions } from 'minimist-options' ;
3
2
4
3
declare namespace meow {
5
- interface Options < Flags extends MinimistOptions > {
4
+ type FlagType = 'string' | 'boolean' | 'number' ;
5
+
6
+ interface Flag < Type extends FlagType , Default > {
7
+ readonly type ?: Type ;
8
+ readonly alias ?: string ;
9
+ readonly default ?: Default ;
10
+ }
11
+
12
+ type StringFlag = Flag < 'string' , string > ;
13
+ type BooleanFlag = Flag < 'boolean' , boolean > ;
14
+ type NumberFlag = Flag < 'number' , number > ;
15
+
16
+ type AnyFlags = { [ key : string ] : StringFlag | BooleanFlag | NumberFlag } ;
17
+
18
+ interface Options < Flags extends AnyFlags > {
6
19
/**
7
20
Define argument flags.
8
21
@@ -159,7 +172,7 @@ declare namespace meow {
159
172
readonly hardRejection ?: boolean ;
160
173
}
161
174
162
- type TypedFlags < Flags extends MinimistOptions > = {
175
+ type TypedFlags < Flags extends AnyFlags > = {
163
176
[ F in keyof Flags ] : Flags [ F ] extends { type : 'number' }
164
177
? number
165
178
: Flags [ F ] extends { type : 'string' }
@@ -169,7 +182,7 @@ declare namespace meow {
169
182
: unknown ;
170
183
} ;
171
184
172
- interface Result < Flags extends MinimistOptions > {
185
+ interface Result < Flags extends AnyFlags > {
173
186
/**
174
187
Non-flag arguments.
175
188
*/
@@ -246,7 +259,7 @@ const cli = meow(`
246
259
foo(cli.input[0], cli.flags);
247
260
```
248
261
*/
249
- declare function meow < Flags extends MinimistOptions > ( helpMessage : string , options ?: meow . Options < Flags > ) : meow . Result < Flags > ;
250
- declare function meow < Flags extends MinimistOptions > ( options ?: meow . Options < Flags > ) : meow . Result < Flags > ;
262
+ declare function meow < Flags extends meow . AnyFlags > ( helpMessage : string , options ?: meow . Options < Flags > ) : meow . Result < Flags > ;
263
+ declare function meow < Flags extends meow . AnyFlags > ( options ?: meow . Options < Flags > ) : meow . Result < Flags > ;
251
264
252
265
export = meow ;
0 commit comments