UNPKG

web-random-utils

Version:

Generate massive amounts of fake contextual data

1 lines 4.91 kB
{"version":3,"sources":["../src/index.ts","../src/password/index.ts","../src/number/index.ts","../src/uuid.ts","../src/gender.ts"],"sourcesContent":["export * from './password';\nexport * from './number';\nexport * from './uuid';\nexport * from './gender';","type PasswordType = 'low' | 'medium' | 'strong'\n\nconst lowerCase = 'abcdefghijklmnopqrstuvwxyz';\nconst upperCase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\nconst numbers = '1234567890';\nconst special = '`~!@#$%^&*()-=_+[]{}|;\\':\",./<>?';\nconst hex = '123456789ABCDEF';\n\n/**\n * 生成密码\n *\n * @param length 密码长度,默认 16 位\n * @param useLowerCase 使用小写字母\n * @param useUpperCase 使用大写字母\n * @param useNumbers 使用数字\n * @param useSpecial 使用特殊字符\n * @param useHex 使用十六进制字符\n */\nexport const generatePassword = (\n length: number = 16,\n useLowerCase: boolean = true,\n useUpperCase: boolean = true,\n useNumbers: boolean = true,\n useSpecial: boolean = true,\n useHex: boolean = false\n) => {\n let chars = '';\n let key = '';\n\n if (useLowerCase) chars += lowerCase;\n if (useUpperCase) chars += upperCase;\n if (useNumbers) chars += numbers;\n if (useSpecial) chars += special;\n if (useHex) chars += hex;\n\n for (let i = 0; i < length; i++) {\n key += chars[Math.floor(Math.random() * chars.length)];\n }\n\n return key;\n}\n\n\nexport const randomPassword = (length: number = 16, type: PasswordType = 'strong') => {\n switch (type) {\n case \"strong\":\n return generatePassword(length, true, true, true, true, false);\n case \"medium\":\n return generatePassword(length, true, true, true, false, false);\n case \"low\":\n return generatePassword(length, true, true, false, false, false);\n default:\n }\n}\n","/**\n * 生成随机数值\n *\n * @param min 最小值,默认 1\n * @param max 最大值,默认 9999\n */\nexport const randomNumber = (min: number = 1, max: number = 9999) => {\n return Math.floor(Math.random() * (max - min + 1) + min)\n}","/**\n * 生成 UUID\n */\nexport const generateUuid = () => {\n // 生成 16 个随机字节(128 位)\n const bytes = new Uint8Array(16);\n crypto.getRandomValues(bytes);\n\n // 设置版本号(第 7 个字节的高 4 位为 4)\n bytes[6] = (bytes[6] & 0x0f) | 0x40; // 0100xxxx\n\n // 设置变体(第 9 个字节的高 2 位为 10)\n bytes[8] = (bytes[8] & 0x3f) | 0x80; // 10xxxxxx\n\n // 将字节数组转换为 UUID 格式的字符串\n const hex = Array.from(bytes)\n .map(byte => byte.toString(16).padStart(2, '0'))\n .join('');\n\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n}","/**\n * 生成性别\n */\nexport const generateGender = () => {\n const genders: string[] = ['男', '女'];\n\n const randomIndex: number = Math.floor(Math.random() * genders.length);\n\n return genders[randomIndex];\n}"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,qBAAAC,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,mBAAAC,IAAA,eAAAC,EAAAP,GCEA,IAAMQ,EAAY,6BACZC,EAAY,6BACZC,EAAU,aACVC,EAAU,mCACVC,EAAM,kBAYCC,EAAmB,CAC5BC,EAAiB,GACjBC,EAAwB,GACxBC,EAAwB,GACxBC,EAAsB,GACtBC,EAAsB,GACtBC,EAAkB,KACjB,CACD,IAAIC,EAAQ,GACRC,EAAM,GAENN,IAAcK,GAASZ,GACvBQ,IAAcI,GAASX,GACvBQ,IAAYG,GAASV,GACrBQ,IAAYE,GAAST,GACrBQ,IAAQC,GAASR,GAErB,QAASU,EAAI,EAAGA,EAAIR,EAAQQ,IACxBD,GAAOD,EAAM,KAAK,MAAM,KAAK,OAAO,EAAIA,EAAM,MAAM,CAAC,EAGzD,OAAOC,CACX,EAGaE,EAAiB,CAACT,EAAiB,GAAIU,EAAqB,WAAa,CAClF,OAAQA,EAAM,CACV,IAAK,SACD,OAAOX,EAAiBC,EAAQ,GAAM,GAAM,GAAM,GAAM,EAAK,EACjE,IAAK,SACD,OAAOD,EAAiBC,EAAQ,GAAM,GAAM,GAAM,GAAO,EAAK,EAClE,IAAK,MACD,OAAOD,EAAiBC,EAAQ,GAAM,GAAM,GAAO,GAAO,EAAK,EACnE,QACJ,CACJ,EC/CO,IAAMW,EAAe,CAACC,EAAc,EAAGC,EAAc,OACjD,KAAK,MAAM,KAAK,OAAO,GAAKA,EAAMD,EAAM,GAAKA,CAAG,ECJpD,IAAME,EAAe,IAAM,CAE9B,IAAMC,EAAQ,IAAI,WAAW,EAAE,EAC/B,OAAO,gBAAgBA,CAAK,EAG5BA,EAAM,CAAC,EAAKA,EAAM,CAAC,EAAI,GAAQ,GAG/BA,EAAM,CAAC,EAAKA,EAAM,CAAC,EAAI,GAAQ,IAG/B,IAAMC,EAAM,MAAM,KAAKD,CAAK,EACvB,IAAIE,GAAQA,EAAK,SAAS,EAAE,EAAE,SAAS,EAAG,GAAG,CAAC,EAC9C,KAAK,EAAE,EAEZ,MAAO,GAAGD,EAAI,MAAM,EAAG,CAAC,CAAC,IAAIA,EAAI,MAAM,EAAG,EAAE,CAAC,IAAIA,EAAI,MAAM,GAAI,EAAE,CAAC,IAAIA,EAAI,MAAM,GAAI,EAAE,CAAC,IAAIA,EAAI,MAAM,EAAE,CAAC,EAC5G,ECjBO,IAAME,EAAiB,IAAM,CAChC,IAAMC,EAAoB,CAAC,SAAK,QAAG,EAE7BC,EAAsB,KAAK,MAAM,KAAK,OAAO,EAAID,EAAQ,MAAM,EAErE,OAAOA,EAAQC,CAAW,CAC9B","names":["index_exports","__export","generateGender","generatePassword","generateUuid","randomNumber","randomPassword","__toCommonJS","lowerCase","upperCase","numbers","special","hex","generatePassword","length","useLowerCase","useUpperCase","useNumbers","useSpecial","useHex","chars","key","i","randomPassword","type","randomNumber","min","max","generateUuid","bytes","hex","byte","generateGender","genders","randomIndex"]}