UNPKG

630 BTypeScriptView Raw
1/**
2Convert a value to an array.
3
4_Specifying `null` or `undefined` results in an empty array._
5
6@example
7```
8import arrify from 'arrify';
9
10arrify('🦄');
11//=> ['🦄']
12
13arrify(['🦄']);
14//=> ['🦄']
15
16arrify(new Set(['🦄']));
17//=> ['🦄']
18
19arrify(null);
20//=> []
21
22arrify(undefined);
23//=> []
24```
25*/
26export default function arrify<ValueType>(
27 value: ValueType
28): ValueType extends (null | undefined)
29 ? [] // eslint-disable-line @typescript-eslint/ban-types
30 : ValueType extends string
31 ? [string]
32 : ValueType extends readonly unknown[]
33 ? ValueType
34 : ValueType extends Iterable<infer T>
35 ? T[]
36 : [ValueType];