dragonroll/backend/node_modules/nanoid/random.js

20 lines
608 B
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var crypto = require('crypto')
if (crypto.randomFillSync) {
// We reuse buffers with the same size to avoid memory fragmentations
// for better performance
var buffers = { }
module.exports = function (bytes) {
var buffer = buffers[bytes]
if (!buffer) {
// `Buffer.allocUnsafe()` faster because it dont clean memory.
// We do not need it, since we will fill memory with new bytes anyway.
buffer = Buffer.allocUnsafe(bytes)
if (bytes <= 255) buffers[bytes] = buffer
}
return crypto.randomFillSync(buffer)
}
} else {
module.exports = crypto.randomBytes
}