{"version":3,"file":"random.mjs","sources":["../../src/random.ts"],"sourcesContent":["/**\n * @ Author: Hanrea\n * @ version: 2023-03-06 13:14:21\n * @ copyright: Vecmat (c) - <hi(at)vecmat.com>\n */\n\nimport murmurhash from \"murmurhash\";\n\n/**\n * 随机范围内整数\n * @param {int} min 最小值，默认0\n * @param {int} max 最大值，默认值100\n */\nexport const INT = (min: number = 0, max: number = 100): number => {\n    // 特殊的技巧，|0可以强制转换为整数\n    return (Math.random() * (max - min + 1) + min) | 0;\n    // return Math.floor(min + Math.random() * (max - min + 1));\n};\n\n\n// 随机字符串\n\nconst RandomBase = (len: number, charSet?: string): string => {\n    const chars = charSet || \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n    let randomStr = \"\";\n    for (let i = 0; i < len; i++) {\n        randomStr += chars.charAt(Math.floor(Math.random() * chars.length));\n    }\n    return randomStr;\n};\n\nexport const String = (len: number): string => {\n    return RandomBase(len);\n};\n\n/**\n * 生成随机hex字符串（0-9a-f）\n * @param {Number} len  hash length\n * @return {String} hash string\n */\nexport const Hex = (len: number = 6): string => {\n    // return Math.random().toString(35).substr(2, len);\n    const hexs = \"0123456789ABCDEF\";\n    return RandomBase(len, hexs);\n};\n\n/**\n * 生成随机字符串（0-9a-z）\n *\n * @param {Number} len  uid length\n * @return {String} uid string\n */\nexport const Hash = (len: number = 6) => {\n    // return Math.random().toString(35).substr(2, len);\n    const hexs = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\n    return RandomBase(len, hexs);\n};\n\n\n/**\n * Murmur hash v2/v3\n *\n * @param {string} value\n * @param {number} [seed=97]\n * @param {number} [ver=2]\n * @returns {*}  {string}\n */\nexport function murmur(value: string, seed = 66, ver = 2): string {\n    if (ver === 3) return `${murmurhash.v3(value, seed)}`;\n    else return `${murmurhash.v2(value, seed)}`;\n}\n\n\n// 非标准UUIE格式\nimport * as AUUID from \"uuid\";\n// http://www.voidcn.com/article/p-rrqbjbcc-bsw.html\n// https://segmentfault.com/q/1010000010862121\nexport const UUID = (version: number, name: string = \"\", namespace: string = \"\"): string => {\n    let uuidstr = \"\";\n    // 3,5 版本返回值固定\n    version = name ? version : 4;\n    namespace = namespace || \"vecmat\";\n    switch (version) {\n        case 1:\n            uuidstr = AUUID.v1();\n            break;\n        case 3:\n            uuidstr = AUUID.v3(name, namespace);\n            break;\n        case 4:\n            uuidstr = AUUID.v4();\n            break;\n        case 5:\n            uuidstr = AUUID.v5(name, namespace);\n            break;\n        default:\n            uuidstr = AUUID.v4();\n    }\n    return uuidstr;\n};\n"],"names":[],"mappings":";;;AAAA;;;;AAIG;AAIH;;;;AAIG;AACU,MAAA,GAAG,GAAG,CAAC,GAAc,GAAA,CAAC,EAAE,GAAA,GAAc,GAAG,KAAY;;AAE9D,IAAA,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;;AAEvD,EAAE;AAGF;AAEA,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,OAAgB,KAAY;AACzD,IAAA,MAAM,KAAK,GAAG,OAAO,IAAI,gEAAgE,CAAC;IAC1F,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;AAC1B,QAAA,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;KACvE;AACD,IAAA,OAAO,SAAS,CAAC;AACrB,CAAC,CAAC;AAEW,MAAA,MAAM,GAAG,CAAC,GAAW,KAAY;AAC1C,IAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;AAC3B,EAAE;AAEF;;;;AAIG;MACU,GAAG,GAAG,CAAC,GAAc,GAAA,CAAC,KAAY;;IAE3C,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,IAAA,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,EAAE;AAEF;;;;;AAKG;MACU,IAAI,GAAG,CAAC,GAAc,GAAA,CAAC,KAAI;;IAEpC,MAAM,IAAI,GAAG,sCAAsC,CAAC;AACpD,IAAA,OAAO,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACjC,EAAE;AAGF;;;;;;;AAOG;AACG,SAAU,MAAM,CAAC,KAAa,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,EAAA;IACpD,IAAI,GAAG,KAAK,CAAC;QAAE,OAAO,CAAA,EAAG,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAE,CAAC;;QACjD,OAAO,CAAA,EAAG,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA,CAAE,CAAC;AAChD,CAAC;AAKD;AACA;AACO,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,IAAA,GAAe,EAAE,EAAE,SAAoB,GAAA,EAAE,KAAY;IACvF,IAAI,OAAO,GAAG,EAAE,CAAC;;IAEjB,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;AAC7B,IAAA,SAAS,GAAG,SAAS,IAAI,QAAQ,CAAC;IAClC,QAAQ,OAAO;AACX,QAAA,KAAK,CAAC;AACF,YAAA,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM;AACV,QAAA,KAAK,CAAC;YACF,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACpC,MAAM;AACV,QAAA,KAAK,CAAC;AACF,YAAA,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM;AACV,QAAA,KAAK,CAAC;YACF,OAAO,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACpC,MAAM;AACV,QAAA;AACI,YAAA,OAAO,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;KAC5B;AACD,IAAA,OAAO,OAAO,CAAC;AACnB;;;;"}