3a7613a46e
- this utility existed twice in the ghost codebase: -f6fb823ce9/core/server/models/api-key.js (L24)
-f6fb823ce9/core/server/data/migrations/versions/4.0/22-solve-orphaned-webhooks.js (L7)
- We also potentially need it for a second migration use case - so moved it here, made it slightly more generic and also deprecated identifier.uid in favour of using this method as they do the same thing, but secret.create uses crypto properly
26 lines
633 B
JavaScript
26 lines
633 B
JavaScript
let _private = {};
|
|
|
|
_private.getRandomInt = function (min, max) {
|
|
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
};
|
|
|
|
/**
|
|
* Return a unique identifier with the given `len`.
|
|
*
|
|
* @deprecated use secret.create() instead
|
|
* @param {Number} maxLength
|
|
* @return {String}
|
|
*/
|
|
module.exports.uid = function uid(maxLength) {
|
|
const buf = [];
|
|
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
const charLength = chars.length;
|
|
let i;
|
|
|
|
for (i = 0; i < maxLength; i = i + 1) {
|
|
buf.push(chars[_private.getRandomInt(0, charLength - 1)]);
|
|
}
|
|
|
|
return buf.join('');
|
|
};
|