UNPKG

@terminus/ngx-tools

Version:

[![CircleCI][circle-badge]][circle-link] [![codecov][codecov-badge]][codecov-project] [![semantic-release][semantic-release-badge]][semantic-release] [![MIT License][license-image]][license-url] <br> [![NPM version][npm-version-image]][npm-url] [![Github

22 lines 2.9 kB
/* eslint-disable @typescript-eslint/no-magic-numbers */ /** * Generate a canonically formatted UUID that is Version 1 through 5 and is the appropriate Variant as per RFC4122. * * @returns The UUID * * @example * generateUUID() // Returns a UUID such as: `f4ee5eed-ed19-3681-713e-907a23ed7858` */ export function generateUUID() { var buf = new Uint16Array(8); window.crypto.getRandomValues(buf); var S4 = function (num) { var ret = num.toString(16); while (ret.length < 4) { ret = "0" + ret; } return ret; }; return (S4(buf[0]) + S4(buf[1]) + "-" + S4(buf[2]) + "-" + S4(buf[3]) + "-" + S4(buf[4]) + "-" + S4(buf[5]) + S4(buf[6]) + S4(buf[7])); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGUtdXVpZC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0ZXJtaW51cy9uZ3gtdG9vbHMvdXRpbGl0aWVzLyIsInNvdXJjZXMiOlsiZ2VuZXJhdGUtdXVpZC9nZW5lcmF0ZS11dWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsSUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDL0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkMsSUFBTSxFQUFFLEdBQUcsVUFBUyxHQUFXO1FBQzdCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsT0FBTyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixHQUFHLEdBQUcsTUFBSSxHQUFLLENBQUM7U0FDakI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQztJQUVGLE9BQU8sQ0FBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBRyxDQUFDLENBQUM7QUFDMUgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1tYWdpYy1udW1iZXJzICovXG4vKipcbiAqIEdlbmVyYXRlIGEgY2Fub25pY2FsbHkgZm9ybWF0dGVkIFVVSUQgdGhhdCBpcyBWZXJzaW9uIDEgdGhyb3VnaCA1IGFuZCBpcyB0aGUgYXBwcm9wcmlhdGUgVmFyaWFudCBhcyBwZXIgUkZDNDEyMi5cbiAqXG4gKiBAcmV0dXJucyBUaGUgVVVJRFxuICpcbiAqIEBleGFtcGxlXG4gKiBnZW5lcmF0ZVVVSUQoKSAvLyBSZXR1cm5zIGEgVVVJRCBzdWNoIGFzOiBgZjRlZTVlZWQtZWQxOS0zNjgxLTcxM2UtOTA3YTIzZWQ3ODU4YFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVVVUlEKCk6IHN0cmluZyB7XG4gIGNvbnN0IGJ1ZiA9IG5ldyBVaW50MTZBcnJheSg4KTtcbiAgd2luZG93LmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoYnVmKTtcblxuICBjb25zdCBTNCA9IGZ1bmN0aW9uKG51bTogbnVtYmVyKSB7XG4gICAgbGV0IHJldCA9IG51bS50b1N0cmluZygxNik7XG4gICAgd2hpbGUgKHJldC5sZW5ndGggPCA0KSB7XG4gICAgICByZXQgPSBgMCR7cmV0fWA7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH07XG5cbiAgcmV0dXJuIChgJHtTNChidWZbMF0pICsgUzQoYnVmWzFdKX0tJHtTNChidWZbMl0pfS0ke1M0KGJ1ZlszXSl9LSR7UzQoYnVmWzRdKX0tJHtTNChidWZbNV0pfSR7UzQoYnVmWzZdKX0ke1M0KGJ1Zls3XSl9YCk7XG59XG4iXX0=