API Docs for:
Show:

File: development/js/utils/uuid.js

/* jshint bitwise:false */



/**
 * Generates UUIDs
 *
 * @module Utils
 * @class Utils.UUID
 * @static
 */



const CHARS = [];
for (let _iter = 0; _iter < 256; _iter += 1) {
    CHARS[_iter] = (_iter < 16 ? '0' : '') + _iter.toString(16);
}


/**
 * Creates a UUID
 *
 * @method makeUUID
 * @for Utils.UUID
 * @return {string} A uuid
 *
 * @example
 *     import {makeUUID} from './utils/uuid';
 * 
 *     makeUUID(); // -> '13ab8ss8-af43-384d-fwi1-8933k3zv'
 */
export const makeUUID = () => {
    let d0 = Math.random()*0xffffffff|0,
        d1 = Math.random()*0xffffffff|0,
        d2 = Math.random()*0xffffffff|0,
        d3 = Math.random()*0xffffffff|0;

    return CHARS[d0&0xff] +
           CHARS[d0>>8&0xff] +
           CHARS[d0>>16&0xff] +
           CHARS[d0>>24&0xff] + '-' +
           CHARS[d1&0xff] +
           CHARS[d1>>8&0xff] + '-' +
           CHARS[d1>>16&0x0f|0x40] +
           CHARS[d1>>24&0xff] + '-' +
           CHARS[d2&0x3f|0x80] +
           CHARS[d2>>8&0xff] + '-' +
           CHARS[d2>>16&0xff] +
           CHARS[d2>>24&0xff] +
           CHARS[d3&0xff] +
           CHARS[d3>>8&0xff] +
           CHARS[d3>>16&0xff] +
           CHARS[d3>>24&0xff];
}
export const uuid = makeUUID;



export default { makeUUID, uuid };