UNPKG

npm-shortidx

Version:

Generador de Id aleatorios, Random Id Generator

91 lines (90 loc) 3.42 kB
/** * Baraja los elementos de un array de forma aleatoria usando el algoritmo Fisher-Yates. * No muta el array original, devuelve una nueva copia. * * @template T - El tipo de elementos en el array. * @param {T[]} array - El array original a barajar. * @param {number} [limit] - Opcional. Número máximo de elementos a devolver. * @returns {T[]} Un nuevo array con los elementos barajados. * * @example * const nums = [1, 2, 3, 4, 5]; * const shuffled = ShuffleX(nums); // [3, 1, 5, 2, 4] (aleatorio) * const picked = ShuffleX(nums, 2); // [5, 1] (solo 2 elementos) */ export declare const ShuffleX: <T>(array: T[], limit?: number) => T[]; /** * Función para generar un identificador aleatorio con caracteres alfanuméricos. * Ideal para IDs de base de datos, URLs cortas, etc. * * Caracteres: a-z, A-Z, 0-9, -, _ * * @param {number} [limit=7] - La longitud del ID generado. * @returns {string} El ID aleatorio generado. * * @example * ShortIdx(); // "xK9_m2P" * ShortIdx(10); // "9_m2PxK9aB" */ export declare const ShortIdx: (limit?: number) => string; /** * Función para generar un identificador aleatorio que incluyen símbolos y caracteres especiales. * Mayor entropía que ShortIdx debido a un charset más grande. * * @param {number} [limit=7] - La longitud del ID generado. * @returns {string} El ID aleatorio generado. * * @example * RandomIdx(); // "xK9!m2P" * RandomIdx(12); // "9_m2PxK9!@#$" */ export declare const RandomIdx: (limit?: number) => string; /** * 🔁 RepeatIdx: Genera múltiples IDs usando una función generadora. * Útil para crear datos de prueba (mock data) o generar lotes de claves. * * @param {number} count - Cantidad de IDs a generar. * @param {Function} generator - La función generadora a usar (ej. ShortIdx, RandomIdx). * @param {number} [limit] - Opcional. Longitud de cada ID individual. * @returns {string[]} Array con los IDs generados. * * @example * RepeatIdx(3, ShortIdx); // ["aB1", "cD2", "eF3"] * RepeatIdx(2, RandomIdx, 10); // ["aB1!cD2@eF", "3#gH4$iJ5%"] */ export declare const RepeatIdx: (count: number, generator: (limit?: number) => string, limit?: number) => string[]; /** * 🔢 IndexShuffle: Devuelve un array de índices aleatorios */ export declare const IndexShuffle: (length: number) => number[]; /** * 🔀 ShuffleString: Reordena aleatoriamente los caracteres de un string */ export declare const ShuffleString: (str: string) => string; /** * 🆔 CustomIdx: Generador con set de caracteres personalizado. * Permite definir exactamente qué caracteres pueden aparecer en el ID. * * @param {string} characters - String con todos los caracteres permitidos. * @param {number} [limit=7] - Longitud del ID. * @returns {string} ID generado usando solo los caracteres provistos. * * @example * CustomIdx("01", 8); // "10110010" (Binario aleatorio) * CustomIdx("ABC", 4); // "BACA" */ export declare const CustomIdx: (characters: string, limit?: number) => string; /** * generador de contraseñas */ export type PasswordOptions = { length?: number; chars?: string; extraChars?: string; }; /** * Genera contraseñas aleatorias usando una fuente criptográficamente segura. * No almacena ni cifra contraseñas. * Por defecto incluye letras (mayúsculas y minúsculas) y números. */ export declare const PasswordGen: ({ length, chars, extraChars, }?: PasswordOptions) => string;