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.
		
		
		
		
		
			
		
			
				
					
					
						
							88 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							88 lines
						
					
					
						
							2.1 KiB
						
					
					
				/** | 
						|
 * Generate secure URL-friendly unique ID. | 
						|
 * | 
						|
 * By default, the ID will have 21 symbols to have a collision probability | 
						|
 * similar to UUID v4. | 
						|
 * | 
						|
 * ```js | 
						|
 * import { nanoid } from 'nanoid' | 
						|
 * model.id = nanoid() //=> "Uakgb_J5m9g-0JDMbcJqL" | 
						|
 * ``` | 
						|
 * | 
						|
 * @param size Size of the ID. The default size is 21. | 
						|
 * @returns A random string. | 
						|
 */ | 
						|
export function nanoid(size?: number): string | 
						|
 | 
						|
/** | 
						|
 * Generate secure unique ID with custom alphabet. | 
						|
 * | 
						|
 * Alphabet must contain 256 symbols or less. Otherwise, the generator | 
						|
 * will not be secure. | 
						|
 * | 
						|
 * @param alphabet Alphabet used to generate the ID. | 
						|
 * @param size Size of the ID. | 
						|
 * @returns A random string generator. | 
						|
 * | 
						|
 * ```js | 
						|
 * const { customAlphabet } = require('nanoid') | 
						|
 * const nanoid = customAlphabet('0123456789абвгдеё', 5) | 
						|
 * nanoid() //=> "8ё56а" | 
						|
 * ``` | 
						|
 */ | 
						|
export function customAlphabet(alphabet: string, size: number): () => string | 
						|
 | 
						|
/** | 
						|
 * Generate unique ID with custom random generator and alphabet. | 
						|
 * | 
						|
 * Alphabet must contain 256 symbols or less. Otherwise, the generator | 
						|
 * will not be secure. | 
						|
 * | 
						|
 * ```js | 
						|
 * import { customRandom } from 'nanoid/format' | 
						|
 * | 
						|
 * const nanoid = customRandom('abcdef', 5, size => { | 
						|
 *   const random = [] | 
						|
 *   for (let i = 0; i < size; i++) { | 
						|
 *     random.push(randomByte()) | 
						|
 *   } | 
						|
 *   return random | 
						|
 * }) | 
						|
 * | 
						|
 * nanoid() //=> "fbaef" | 
						|
 * ``` | 
						|
 * | 
						|
 * @param alphabet Alphabet used to generate a random string. | 
						|
 * @param size Size of the random string. | 
						|
 * @param random A random bytes generator. | 
						|
 * @returns A random string generator. | 
						|
 */ | 
						|
export function customRandom( | 
						|
  alphabet: string, | 
						|
  size: number, | 
						|
  random: (bytes: number) => Uint8Array | 
						|
): () => string | 
						|
 | 
						|
/** | 
						|
 * URL safe symbols. | 
						|
 * | 
						|
 * ```js | 
						|
 * import { urlAlphabet } from 'nanoid' | 
						|
 * const nanoid = customAlphabet(urlAlphabet, 10) | 
						|
 * nanoid() //=> "Uakgb_J5m9" | 
						|
 * ``` | 
						|
 */ | 
						|
export const urlAlphabet: string | 
						|
 | 
						|
/** | 
						|
 * Generate an array of random bytes collected from hardware noise. | 
						|
 * | 
						|
 * ```js | 
						|
 * import { customRandom, random } from 'nanoid' | 
						|
 * const nanoid = customRandom("abcdef", 5, random) | 
						|
 * ``` | 
						|
 * | 
						|
 * @param bytes Size of the array. | 
						|
 * @returns An array of random bytes. | 
						|
 */ | 
						|
export function random(bytes: number): Uint8Array
 | 
						|
 |