var randHex = require('./randHex'); var choice = require('./choice'); /** * Returns pseudo-random guid (UUID v4) * IMPORTANT: it's not totally "safe" since randHex/choice uses Math.random * by default and sequences can be predicted in some cases. See the * "random/random" documentation for more info about it and how to replace * the default PRNG. */ function guid() { return ( randHex(8)+'-'+ randHex(4)+'-'+ // v4 UUID always contain "4" at this position to specify it was // randomly generated '4' + randHex(3) +'-'+ // v4 UUID always contain chars [a,b,8,9] at this position choice(8, 9, 'a', 'b') + randHex(3)+'-'+ randHex(12) ); } module.exports = guid;