cerceis-lib
Version:
Contains list of quality of life functions that is written in TypeScript and es6
1 lines • 7.62 kB
Source Map (JSON)
{"version":3,"sources":["../../src/generate/index.ts"],"sourcesContent":["import type { AlphabateOptions } from './types';\n\ninterface GenerateArrayOptions {\n min?: number;\n max?: number;\n}\n\nexport const Generate = {\n /**\n * Generate a random alphanumeric string of a given length.\n * @param len Length of the string (default 4).\n */\n alphanum(len: number = 4): string {\n const chars = \"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n let result = \"\";\n for (let i = 0; i < len; i++)\n result += chars[Math.floor(Math.random() * chars.length)];\n return result;\n },\n /**\n * Generate a MongoDB-style ObjectId.\n */\n objectId(): string {\n return (\n (Date.now() / 1000 | 0).toString(16) +\n \"xxxxxxxxxxxxxxxx\".replace(/x/g, () => (Math.random() * 16 | 0).toString(16))\n );\n },\n /**\n * Generate a random integer in [min, max). Includes min, excludes max.\n */\n int(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min)) + min;\n },\n /**\n * Generate a random float in [min, max).\n */\n random(min: number, max: number): number {\n return Math.random() * (max - min) + min;\n },\n /**\n * Generate an array of random integers.\n * @param len Length of the array.\n * @param ops min/max bounds for each integer (default min=0, max=11).\n */\n array(len: number, ops: GenerateArrayOptions = {}): number[] {\n const { min = 0, max = 11 } = ops;\n return Array.from({ length: len }, () => this.int(min, max));\n },\n /**\n * Generate a random alphabetic string.\n * @param len Length of the string (default 5).\n * @param options lowercase/uppercase toggles.\n */\n alphabate(len: number = 5, options: AlphabateOptions = {}): string {\n const op: AlphabateOptions = { lowercase: true, uppercase: true, ...options };\n const lower = \"abcdefghijklmnopqrstuvwxyz\";\n const upper = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n const pool = (op.lowercase ? lower : \"\") + (op.uppercase ? upper : \"\");\n let result = \"\";\n for (let i = 0; i < len; i++)\n result += pool[Math.floor(Math.random() * pool.length)];\n return result;\n },\n /** @returns Current date as \"YYYY-MM-DD\" */\n currentDate(): string {\n const t = new Date();\n return `${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()}`;\n },\n /** @returns Current time as \"HH:mm:ss\" */\n currentTime(): string {\n const t = new Date();\n return [t.getHours(), t.getMinutes(), t.getSeconds()]\n .map((v) => String(v).padStart(2, \"0\"))\n .join(\":\");\n },\n /** @returns Current datetime as \"YYYY-MM-DD HH:mm:ss\" */\n currentDateTime(): string {\n const t = new Date();\n const time = [t.getHours(), t.getMinutes(), t.getSeconds()]\n .map((v) => String(v).padStart(2, \"0\"))\n .join(\":\");\n return `${t.getFullYear()}-${t.getMonth() + 1}-${t.getDate()} ${time}`;\n },\n /**\n * Generate a list of date strings matching specified days of the week.\n * @param f From date \"YYYY-MM-DD\"\n * @param t To date \"YYYY-MM-DD\"\n * @param days Day indices 0–6 (Sunday=0, Saturday=6)\n */\n listOfDateOfDays(f: string, t: string, days: number[]): string[] {\n const to = new Date(t).toISOString();\n const cursor = new Date(f);\n const rs: string[] = [];\n while (cursor.toISOString() <= to) {\n if (days.includes(cursor.getDay()))\n rs.push(cursor.toISOString().slice(0, 10));\n cursor.setDate(cursor.getDate() + 1);\n }\n return rs;\n },\n /**\n * Fast RFC4122 v4 UUID generator.\n * @author Jeff Ward (jcward.com) — MIT license\n */\n uuidv4(): string {\n const lut: string[] = [];\n for (let i = 0; i < 256; i++) lut[i] = (i < 16 ? \"0\" : \"\") + i.toString(16);\n const d0 = Math.random() * 0xffffffff | 0;\n const d1 = Math.random() * 0xffffffff | 0;\n const d2 = Math.random() * 0xffffffff | 0;\n const d3 = Math.random() * 0xffffffff | 0;\n return (\n lut[d0 & 0xff] + lut[d0 >> 8 & 0xff] + lut[d0 >> 16 & 0xff] + lut[d0 >> 24 & 0xff] + \"-\" +\n lut[d1 & 0xff] + lut[d1 >> 8 & 0xff] + \"-\" +\n lut[d1 >> 16 & 0x0f | 0x40] + lut[d1 >> 24 & 0xff] + \"-\" +\n lut[d2 & 0x3f | 0x80] + lut[d2 >> 8 & 0xff] + \"-\" +\n lut[d2 >> 16 & 0xff] + lut[d2 >> 24 & 0xff] +\n lut[d3 & 0xff] + lut[d3 >> 8 & 0xff] + lut[d3 >> 16 & 0xff] + lut[d3 >> 24 & 0xff]\n );\n },\n};\n"],"mappings":"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","names":[]}