uuid.mjs 630 B

123456789101112131415
  1. // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
  2. /**
  3. * https://stackoverflow.com/a/2117523
  4. */
  5. export let uuid4 = function () {
  6. const { crypto } = globalThis;
  7. if (crypto?.randomUUID) {
  8. uuid4 = crypto.randomUUID.bind(crypto);
  9. return crypto.randomUUID();
  10. }
  11. const u8 = new Uint8Array(1);
  12. const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;
  13. return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));
  14. };
  15. //# sourceMappingURL=uuid.mjs.map