cbsys-utils
v1.0.8
Published
This project provides utility functions to generate random IDs, including alphanumeric and numeric IDs. It also includes an optimized implementation in TypeScript and a comprehensive test suite using **Vitest**.
Downloads
13
Readme
Random ID Generator
This project provides utility functions to generate random IDs, including alphanumeric and numeric IDs. It also includes an optimized implementation in TypeScript and a comprehensive test suite using Vitest.
Features
- Generate random alphanumeric IDs.
- Generate random numeric IDs.
- Lightweight and easy-to-use.
- Tested with Vitest for reliability.
Installation
1. Clone the Repository
git clone <repository-url>
cd random-id-generator2. Install Dependencies
npm installUsage
Functions
makeid(length: number): string
Generates a random alphanumeric string of the specified length.
import { makeid } from "./yourModuleFileName";
console.log(makeid(10)); // Example: "aB3dE7FgH1"makeNumericId(length: number): string
Generates a random numeric string of the specified length.
import { makeNumericId } from "./yourModuleFileName";
console.log(makeNumericId(8)); // Example: "48275931"Development
Optimized Code
The utility functions are implemented efficiently, ensuring reusability and minimal redundancy:
const generateRandomString = (length: number, characters: string): string => {
const charactersLength = characters.length;
return Array.from({ length }, () =>
characters.charAt(Math.floor(Math.random() * charactersLength))
).join("");
};
const ALPHANUMERIC =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
const NUMERIC = "0123456789";
export const makeid = (length: number): string =>
generateRandomString(length, ALPHANUMERIC);
export const makeNumericId = (length: number): string =>
generateRandomString(length, NUMERIC);Testing
The project uses Vitest for testing. The tests validate the following:
- Correct ID length.
- Content matches the expected character set.
- Handles edge cases like zero or negative lengths.
- Generates unique IDs on consecutive calls.
Run Tests
npm testExample Test
import { describe, it, expect } from "vitest";
import { makeid, makeNumericId } from "./yourModuleFileName";
describe("Random ID Generators", () => {
it("should generate an alphanumeric ID of the specified length", () => {
const id = makeid(10);
expect(id).toHaveLength(10);
expect(id).toMatch(/^[A-Za-z0-9]+$/);
});
});Contributing
Feel free to contribute to this project! Submit a pull request or open an issue if you find a bug or have a feature request.
License
This project is licensed under the MIT License. See the LICENSE file for more information.
