antv-l7/node_modules/nanoid/format.browser.js

15 lines
368 B
JavaScript

module.exports = function (random, alphabet, size) {
var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1
var step = Math.ceil(1.6 * mask * size / alphabet.length)
var id = ''
while (true) {
var i = step
var bytes = random(i)
while (i--) {
id += alphabet[bytes[i] & mask] || ''
if (id.length === +size) return id
}
}
}