dragonroll/backend/node_modules/nanoid/async/random.js

32 lines
876 B
JavaScript
Raw Normal View History

2024-09-21 17:08:36 +00:00
var crypto = require('crypto')
if (crypto.randomFill) {
// `crypto.randomFill()` is a little fatser than `crypto.randomBytes()`,
// because we can use faster `Buffer.allocUnsafe()`.
module.exports = function (bytes) {
return new Promise(function (resolve, reject) {
// `Buffer.allocUnsafe()` faster because it dont clean memory.
// We do not need it, since we will fill memory with new bytes anyway.
crypto.randomFill(Buffer.allocUnsafe(bytes), function (err, buf) {
if (err) {
reject(err)
} else {
resolve(buf)
}
})
})
}
} else {
module.exports = function (bytes) {
return new Promise(function (resolve, reject) {
crypto.randomBytes(bytes, function (err, buf) {
if (err) {
reject(err)
} else {
resolve(buf)
}
})
})
}
}