UNPKG

fa-comm

Version:
86 lines (79 loc) 1.68 kB
const uuid = require('node-uuid'); module.exports = GUID = { newid: (len) => { switch (len) { case 22: return guid22(); case 32: return guid32(); case 38: return guid38(); default: return guid(); } }, emptyid: () => empty() }; Object.defineProperty(GUID, 'v22', { get: function () { return guid22(); } }); Object.defineProperty(GUID, 'v32', { get: function () { return guid32(); } }); Object.defineProperty(GUID, 'v36', { get: function () { return guid(); } }); Object.defineProperty(GUID, 'v38', { get: function () { return guid38(); } }); Object.defineProperty(GUID, 'empty', { get: function () { return empty(); } }); /** * 获取Guid * @returns */ const guid = function () { return uuid.v4(); } /** * 生成22位guid * @returns */ const guid22 = function () { var guid = Buffer.from(uuid.v4('binary')).toString('base64'); //转成base64,最后两位都是==,所以截取掉。 并且替换特殊字符串 return guid.replace(/\//g, '_').replace(/\+/g, '-').substring(0, 22); } /** * 生成32位guid * @returns */ let guid32 = function () { return uuid.v4().replace(/-/g, ''); } /** * 生成38位guid * @returns */ let guid38 = function () { return '{' + uuid.v4() + '}'; } /** * 获取空guid * @returns */ var empty = function () { return "00000000-0000-0000-0000-000000000000"; } // exports.empty = empty;