nanoid
Advanced tools
Comparing version 1.3.1 to 1.3.2
@@ -14,2 +14,20 @@ var crypto = require('crypto') | ||
/* eslint-disable-next-line */ | ||
var ATTEMPTS = crypto.randomBytes === crypto.pseudoRandomBytes ? 1 : 3 | ||
function safeRandom (size, attempt, callback) { | ||
random(size, function (err, bytes) { | ||
if (err) { | ||
attempt -= 1 | ||
if (attempt === 0) { | ||
callback(err) | ||
} else { | ||
setTimeout(safeRandom.bind(null, size, attempt, callback), 10) | ||
} | ||
} else { | ||
callback(null, bytes) | ||
} | ||
}) | ||
} | ||
/** | ||
@@ -53,3 +71,3 @@ * Generate secure URL-friendly unique ID. Non-blocking version. | ||
random(size, function (error, bytes) { | ||
safeRandom(size, ATTEMPTS, function (error, bytes) { | ||
if (error) { | ||
@@ -56,0 +74,0 @@ return callback(error) |
# Change Log | ||
This project adheres to [Semantic Versioning](http://semver.org/). | ||
## 1.3.2 | ||
* Fix random generator `not seeded` issue of old Node.js. | ||
## 1.3.1 | ||
@@ -5,0 +8,0 @@ * Reduce library size. |
{ | ||
"name": "nanoid", | ||
"version": "1.3.1", | ||
"version": "1.3.2", | ||
"description": "A tiny (143 bytes), secure URL-friendly unique string ID generator", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
21531
377