UNPKG

1.09 kBTypeScriptView Raw
1declare namespace yn {
2 interface Options {
3 /**
4 Use a key distance-based score to leniently accept typos of `yes` and `no`.
5
6 @default false
7 */
8 readonly lenient?: boolean;
9
10 /**
11 Default value if no match was found.
12
13 @default undefined
14 */
15 readonly default?: boolean | undefined;
16 }
17
18 interface OptionsWithDefault extends Options {
19 default: boolean;
20 }
21}
22
23/**
24Parse yes/no like values.
25
26The following case-insensitive values are recognized: `'y', 'yes', 'true', true, '1', 1, 'n', 'no', 'false', false, '0', 0`, 'on', 'off'
27
28@param input - Value that should be converted.
29@returns The parsed input if it can be parsed or the default value defined in the `default` option.
30
31@example
32```
33import yn = require('yn');
34
35yn('y');
36//=> true
37
38yn('NO');
39//=> false
40
41yn(true);
42//=> true
43
44yn('abomasum');
45//=> undefined
46
47yn('abomasum', {default: false});
48//=> false
49
50yn('mo', {lenient: true});
51//=> false
52```
53*/
54declare function yn(input: unknown, options: yn.OptionsWithDefault): boolean;
55declare function yn(input: unknown, options?: yn.Options): boolean | undefined;
56
57export = yn;