dragonroll/backend/node_modules/nanoid/random.js

20 lines
608 B
JavaScript
Raw Normal View History

2024-09-21 17:08:36 +00:00
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
}