UNPKG

@orbit/utils

Version:

Core utilities for Orbit.

45 lines 5.18 kB
"use strict"; /** * Fast UUID generator, RFC4122 version 4 compliant. * @author Jeff Ward (jcward.com). * @license MIT license * @link http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136 **/ Object.defineProperty(exports, "__esModule", { value: true }); exports.uuid = void 0; const lut = []; for (let i = 0; i < 256; i++) { lut[i] = (i < 16 ? '0' : '') + i.toString(16); } /** * `uuid` generates a Version 4 UUID using Jeff Ward's high performance * generator. */ function uuid() { let d0 = (Math.random() * 0xffffffff) | 0; let d1 = (Math.random() * 0xffffffff) | 0; let d2 = (Math.random() * 0xffffffff) | 0; let d3 = (Math.random() * 0xffffffff) | 0; return (lut[d0 & 0xff] + lut[(d0 >> 8) & 0xff] + lut[(d0 >> 16) & 0xff] + lut[(d0 >> 24) & 0xff] + '-' + lut[d1 & 0xff] + lut[(d1 >> 8) & 0xff] + '-' + lut[((d1 >> 16) & 0x0f) | 0x40] + lut[(d1 >> 24) & 0xff] + '-' + lut[(d2 & 0x3f) | 0x80] + lut[(d2 >> 8) & 0xff] + '-' + lut[(d2 >> 16) & 0xff] + lut[(d2 >> 24) & 0xff] + lut[d3 & 0xff] + lut[(d3 >> 8) & 0xff] + lut[(d3 >> 16) & 0xff] + lut[(d3 >> 24) & 0xff]); } exports.uuid = uuid; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXVpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7SUFLSTs7O0FBRUosTUFBTSxHQUFHLEdBQWEsRUFBRSxDQUFDO0FBRXpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7SUFDNUIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0NBQy9DO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsSUFBSTtJQUNsQixJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFMUMsT0FBTyxDQUNMLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2QsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyQixHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRztRQUNILEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2QsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyQixHQUFHO1FBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdEIsR0FBRztRQUNILEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDdkIsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyQixHQUFHO1FBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN0QixHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ2QsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUNyQixHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FDdkIsQ0FBQztBQUNKLENBQUM7QUE1QkQsb0JBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGYXN0IFVVSUQgZ2VuZXJhdG9yLCBSRkM0MTIyIHZlcnNpb24gNCBjb21wbGlhbnQuXG4gKiBAYXV0aG9yIEplZmYgV2FyZCAoamN3YXJkLmNvbSkuXG4gKiBAbGljZW5zZSBNSVQgbGljZW5zZVxuICogQGxpbmsgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDUwMzQvaG93LXRvLWNyZWF0ZS1hLWd1aWQtdXVpZC1pbi1qYXZhc2NyaXB0LzIxOTYzMTM2IzIxOTYzMTM2XG4gKiovXG5cbmNvbnN0IGx1dDogc3RyaW5nW10gPSBbXTtcblxuZm9yIChsZXQgaSA9IDA7IGkgPCAyNTY7IGkrKykge1xuICBsdXRbaV0gPSAoaSA8IDE2ID8gJzAnIDogJycpICsgaS50b1N0cmluZygxNik7XG59XG5cbi8qKlxuICogYHV1aWRgIGdlbmVyYXRlcyBhIFZlcnNpb24gNCBVVUlEIHVzaW5nIEplZmYgV2FyZCdzIGhpZ2ggcGVyZm9ybWFuY2VcbiAqIGdlbmVyYXRvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHV1aWQoKTogc3RyaW5nIHtcbiAgbGV0IGQwID0gKE1hdGgucmFuZG9tKCkgKiAweGZmZmZmZmZmKSB8IDA7XG4gIGxldCBkMSA9IChNYXRoLnJhbmRvbSgpICogMHhmZmZmZmZmZikgfCAwO1xuICBsZXQgZDIgPSAoTWF0aC5yYW5kb20oKSAqIDB4ZmZmZmZmZmYpIHwgMDtcbiAgbGV0IGQzID0gKE1hdGgucmFuZG9tKCkgKiAweGZmZmZmZmZmKSB8IDA7XG5cbiAgcmV0dXJuIChcbiAgICBsdXRbZDAgJiAweGZmXSArXG4gICAgbHV0WyhkMCA+PiA4KSAmIDB4ZmZdICtcbiAgICBsdXRbKGQwID4+IDE2KSAmIDB4ZmZdICtcbiAgICBsdXRbKGQwID4+IDI0KSAmIDB4ZmZdICtcbiAgICAnLScgK1xuICAgIGx1dFtkMSAmIDB4ZmZdICtcbiAgICBsdXRbKGQxID4+IDgpICYgMHhmZl0gK1xuICAgICctJyArXG4gICAgbHV0WygoZDEgPj4gMTYpICYgMHgwZikgfCAweDQwXSArXG4gICAgbHV0WyhkMSA+PiAyNCkgJiAweGZmXSArXG4gICAgJy0nICtcbiAgICBsdXRbKGQyICYgMHgzZikgfCAweDgwXSArXG4gICAgbHV0WyhkMiA+PiA4KSAmIDB4ZmZdICtcbiAgICAnLScgK1xuICAgIGx1dFsoZDIgPj4gMTYpICYgMHhmZl0gK1xuICAgIGx1dFsoZDIgPj4gMjQpICYgMHhmZl0gK1xuICAgIGx1dFtkMyAmIDB4ZmZdICtcbiAgICBsdXRbKGQzID4+IDgpICYgMHhmZl0gK1xuICAgIGx1dFsoZDMgPj4gMTYpICYgMHhmZl0gK1xuICAgIGx1dFsoZDMgPj4gMjQpICYgMHhmZl1cbiAgKTtcbn1cbiJdfQ==