summaryrefslogtreecommitdiff
path: root/src/node_modules/arrify/index.d.ts
blob: bfd0cf5e961dc0a4dd7b56566a6a3b36688f7a11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
Convert a value to an array.

_Supplying `null` or `undefined` results in an empty array._

@example
```
import arrify = require('arrify');

arrify('🦄');
//=> ['🦄']

arrify(['🦄']);
//=> ['🦄']

arrify(new Set(['🦄']));
//=> ['🦄']

arrify(null);
//=> []

arrify(undefined);
//=> []
```
*/
declare function arrify<ValueType>(
	value: ValueType
): ValueType extends (null | undefined)
	? []
	: ValueType extends string
	? [string]
	: ValueType extends ReadonlyArray<unknown> // TODO: Use 'readonly unknown[]' in the next major version
	? ValueType
	: ValueType extends Iterable<infer T>
	? T[]
	: [ValueType];

export = arrify;