UNPKG

nodly

Version:

Nodly is an interactive CLI for scaffolding modern Node.js/Express.js backend projects with instant setup for databases, mailers, queues, sockets, and more. Skip boilerplate and start building features fast.

56 lines (46 loc) 1.84 kB
import { randomUUID, randomBytes } from "crypto"; // Generate UUID v4 export const generateUUID = () => { return randomUUID(); }; // Short Alphanumeric ID (e.g., "aZ3fL9") export const generateShortId = (length = 6) => { const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; return Array.from({ length }, () => chars[Math.floor(Math.random() * chars.length)]).join(""); }; // Numeric ID (e.g., OTPs) export const generateNumericId = (length = 6) => { const digits = "0123456789"; return Array.from({ length }, () => digits[Math.floor(Math.random() * digits.length)]).join(""); }; // Timestamp + short ID (e.g., "20250614125059_x7Kz") export const generateTimestampId = () => { const timestamp = new Date().toISOString().replace(/[-:.TZ]/g, ""); return `${timestamp}_${generateShortId(4)}`; }; // Custom prefix ID (e.g., "user_4fD8kL") export const generateCustomId = (prefix = "id", length = 6) => { return `${prefix}_${generateShortId(length)}`; }; // Simulated Credit Card ID (16-digit number) export const generateCCID = () => { const start = ["4", "5", "3"]; // Visa, MasterCard, AMEX let cc = start[Math.floor(Math.random() * start.length)]; while (cc.length < 16) { cc += Math.floor(Math.random() * 10); } return cc; }; // Order-like ID (e.g., "ORD-8fK2-X7L9") export const generateOrderId = () => { return `ORD-${generateShortId(4).toUpperCase()}-${generateShortId(4).toUpperCase()}`; }; // MongoDB-like ObjectID (24 hex chars) export const generateObjectId = () => { return randomBytes(12).toString("hex"); }; // NanoID (Optional) export const generateNanoId = (length = 12) => { const chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-"; return Array.from({ length }, () => chars[Math.floor(Math.random() * chars.length)]).join(""); };