From 87716a96281697132cf02aa15111b68b3f57d9c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Legan=C3=A9s-Combarro=20=27piranna?= Date: Mon, 1 Feb 2021 01:30:03 +0100 Subject: [PATCH] feat: use Node.js v15.6 `crypto.randomUUID()` functions if it's available --- src/v4.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/v4.js b/src/v4.js index 520613a4..713e6778 100644 --- a/src/v4.js +++ b/src/v4.js @@ -1,10 +1,20 @@ +import { randomUUID } from 'crypto'; + import rng from './rng.js'; import stringify from './stringify.js'; +const random = randomUUID + ? function () { + const hexString = randomUUID().replaceAll('-', ''); + + return Uint8Array.from(Buffer.from(hexString, 'hex')); + } + : rng; + function v4(options, buf, offset) { options = options || {}; - const rnds = options.random || (options.rng || rng)(); + const rnds = options.random || (options.rng || random)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` rnds[6] = (rnds[6] & 0x0f) | 0x40;