Skip to content

Commit

Permalink
feat: use native crypto.randomUUID when available (#600)
Browse files Browse the repository at this point in the history
  • Loading branch information
LinusU committed Dec 2, 2021
1 parent cf49e8b commit c9e076c
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 4 deletions.
8 changes: 4 additions & 4 deletions bundlewatch.config.json
Expand Up @@ -5,9 +5,9 @@
{ "path": "./examples/browser-rollup/dist/v4-size.js", "maxSize": "0.7 kB" },
{ "path": "./examples/browser-rollup/dist/v5-size.js", "maxSize": "1.5 kB" },

{ "path": "./examples/browser-webpack/dist/v1-size.js", "maxSize": "1.3 kB" },
{ "path": "./examples/browser-webpack/dist/v3-size.js", "maxSize": "2.5 kB" },
{ "path": "./examples/browser-webpack/dist/v4-size.js", "maxSize": "1.0 kB" },
{ "path": "./examples/browser-webpack/dist/v5-size.js", "maxSize": "1.9 kB" }
{ "path": "./examples/browser-webpack/dist/v1-size.js", "maxSize": "1.0 kB" },
{ "path": "./examples/browser-webpack/dist/v3-size.js", "maxSize": "2.1 kB" },
{ "path": "./examples/browser-webpack/dist/v4-size.js", "maxSize": "0.7 kB" },
{ "path": "./examples/browser-webpack/dist/v5-size.js", "maxSize": "1.5 kB" }
]
}
1 change: 1 addition & 0 deletions package.json
Expand Up @@ -32,6 +32,7 @@
"module": "./dist/esm-node/index.js",
"browser": {
"./dist/md5.js": "./dist/md5-browser.js",
"./dist/native.js": "./dist/native-browser.js",
"./dist/rng.js": "./dist/rng-browser.js",
"./dist/sha1.js": "./dist/sha1-browser.js",
"./dist/esm-node/index.js": "./dist/esm-browser/index.js"
Expand Down
4 changes: 4 additions & 0 deletions src/native-browser.js
@@ -0,0 +1,4 @@
const randomUUID =
typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);

export default { randomUUID };
3 changes: 3 additions & 0 deletions src/native.js
@@ -0,0 +1,3 @@
import crypto from 'crypto';

export default { randomUUID: crypto.randomUUID };
5 changes: 5 additions & 0 deletions src/v4.js
@@ -1,7 +1,12 @@
import native from './native.js';
import rng from './rng.js';
import stringify from './stringify.js';

function v4(options, buf, offset) {
if (native.randomUUID && !buf && !options) {
return native.randomUUID();
}

options = options || {};

const rnds = options.random || (options.rng || rng)();
Expand Down
9 changes: 9 additions & 0 deletions wdio.conf.js
Expand Up @@ -34,13 +34,22 @@ const capabilities = [
},

// Chrome
// Chrome 92 introduced native support for crypto.randomUUID
{
...commonCapabilities,
browserName: 'Chrome',
browser_version: '92.0',
os: 'Windows',
os_version: '10',
},
{
...commonCapabilities,
browserName: 'Chrome',
browser_version: '81.0',
os: 'Windows',
os_version: '10',
},
// Chrome 49 released on 2016-03-02 was the last version supported on Windows XP, Windows Vista, Mac OS X 10.6, 10.7, and 10.8
{
...commonCapabilities,
browserName: 'Chrome',
Expand Down

0 comments on commit c9e076c

Please sign in to comment.