js-uploader
Version:
A JavaScript library for file upload
45 lines • 1.5 kB
JavaScript
export var urlAlphabet = 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict';
export var random = function (bytes) { return crypto.getRandomValues(new Uint8Array(bytes)); };
export var customRandom = function (alphabet, defaultSize, getRandom) {
var mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1;
var step = -~((1.6 * mask * defaultSize) / alphabet.length);
return function (size) {
if (size === void 0) { size = defaultSize; }
var id = '';
while (true) {
var bytes = getRandom(step);
var j = step;
while (j--) {
id += alphabet[bytes[j] & mask] || '';
if (id.length === size)
return id;
}
}
};
};
export var customAlphabet = function (alphabet, size) {
if (size === void 0) { size = 21; }
return customRandom(alphabet, size, random);
};
export var nanoid = function (size) {
if (size === void 0) { size = 21; }
return crypto.getRandomValues(new Uint8Array(size)).reduce(function (id, byte) {
byte &= 63;
if (byte < 36) {
// `0-9a-z`
id += byte.toString(36);
}
else if (byte < 62) {
// `A-Z`
id += (byte - 26).toString(36).toUpperCase();
}
else if (byte > 62) {
id += '-';
}
else {
id += '_';
}
return id;
}, '');
};
//# sourceMappingURL=nanoid.js.map