camote-utils
Version:
A comprehensive TypeScript utility library featuring advanced string and number formatting, data structures, and algorithms
105 lines (104 loc) • 5.16 kB
TypeScript
/**
* Generates a random integer between min (inclusive) and max (inclusive)
* @param min - The minimum value (inclusive)
* @param max - The maximum value (inclusive)
* @returns A random integer between min and max
* @throws {Error} If min is greater than max
* @throws {Error} If min or max is not a finite number
* @example
* generateRandomInteger(1, 10); // Returns a number between 1 and 10
* generateRandomInteger(0, 1); // Returns either 0 or 1
* generateRandomInteger(-5, 5); // Returns a number between -5 and 5
*/
export declare const generateRandomInteger: (min: number, max: number) => number;
/**
* Generates a random integer between min (inclusive) and max (inclusive)
* @param min - The minimum value (inclusive)
* @param max - The maximum value (inclusive)
* @returns A random integer between min and max
* @throws {Error} If min is greater than max
* @throws {Error} If min or max is not a finite number
* @example
* generateRandomIntegerInRange(5, 10); // Returns a number between 5 and 10
* generateRandomIntegerInRange(-10, 10); // Returns a number between -10 and 10
*/
export declare const generateRandomIntegerInRange: (min: number, max: number) => number;
/**
* Generates an array of random integers
* @param length - The length of the array to generate
* @param min - The minimum value (inclusive)
* @param max - The maximum value (inclusive)
* @returns An array of random integers
* @throws {Error} If length is less than 0
* @example
* generateRandomIntegerArray(3, 1, 10); // Returns e.g. [4, 7, 2]
* generateRandomIntegerArray(5, 0, 1); // Returns e.g. [1, 0, 1, 0, 1]
*/
export declare const generateRandomIntegerArray: (length: number, min: number, max: number) => number[];
/**
* Generates a random integer excluding certain values
* @param min - The minimum value (inclusive)
* @param max - The maximum value (inclusive)
* @param exclude - Array of numbers to exclude
* @returns A random integer between min and max, excluding specified values
* @throws {Error} If no valid numbers are available in the range
* @example
* generateRandomIntegerExcluding(1, 10, [5, 6]); // Returns a number between 1-4 or 7-10
* generateRandomIntegerExcluding(1, 3, [2]); // Returns either 1 or 3
*/
export declare const generateRandomIntegerExcluding: (min: number, max: number, exclude: number[]) => number;
/**
* Options for random string generation
*/
export interface GenerateRandomStringOptions {
lowercase?: boolean;
uppercase?: boolean;
numbers?: boolean;
special?: boolean;
custom?: string;
exclude?: string;
}
/**
* Generates a random string based on specified options.
*
* @param length - The length of the string to generate.
* @param options - Configuration options for string generation, which may include:
* - custom: A string of custom characters to use for generation.
* - lowercase: A boolean indicating whether to include lowercase letters.
* - uppercase: A boolean indicating whether to include uppercase letters.
* - numbers: A boolean indicating whether to include numeric characters.
* - special: A boolean indicating whether to include special characters.
* - exclude: A string of characters to exclude from the generated string.
*
* @returns A random string that matches the specified criteria.
*
* @throws {Error} If length is less than 0.
* @throws {Error} If no character set is selected (i.e., all options are false or empty).
*
* @example
* generateRandomString(8); // Might return "aB3$kL9p"
* generateRandomString(10, { lowercase: true, numbers: true }); // Might return "a7b2n9k4m5"
* generateRandomString(5, { custom: "ABC123" }); // Might return "B1CA3"
*/
export declare const generateRandomString: (length: number, options?: GenerateRandomStringOptions) => string;
export declare const generateRandomPassword: (length: number, options?: Omit<GenerateRandomStringOptions, "lowercase" | "uppercase" | "numbers" | "special">) => string;
export declare const generateStrongPassword: (length?: number) => string;
export declare const generateRandomHexColor: (includeHash?: boolean) => string;
export declare const generateRandomRGB: (includeArray?: boolean) => string | number[];
export declare const generateRandomHSL: (includeArray?: boolean) => string | number[];
export declare const generateColorPalette: (numColors: number, format?: "hex" | "rgb" | "hsl") => string[];
export declare const generateRandomColor: (format?: "hex" | "rgb" | "hsl") => string;
export declare const generateUUID: () => string;
export declare const generateUUIDv4: () => string;
export type GenerateRandomType = 'integer' | 'float' | 'boolean' | 'string' | 'hexColor' | 'rgbColor' | 'hslColor' | 'uuid' | 'colorPalette';
export interface GenerateRandomOptions {
type: GenerateRandomType;
min?: number;
max?: number;
length?: number;
stringOptions?: GenerateRandomStringOptions;
includeHash?: boolean;
numColors?: number;
format?: 'hex' | 'rgb' | 'hsl';
}
export declare const generateRandom: (options: GenerateRandomOptions) => number | string | boolean | string[];