You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					39 lines
				
				645 B
			
		
		
			
		
	
	
					39 lines
				
				645 B
			| 
								 
											2 years ago
										 
									 | 
							
								/**
							 | 
						||
| 
								 | 
							
								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;
							 |