Merge pull request #2540 from jspsych/fix-seedrandom

Remove `crypto` module dependency
This commit is contained in:
Josh de Leeuw 2022-03-13 11:28:33 -04:00 committed by GitHub
commit 9c6ebacdce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 13 additions and 21 deletions

View File

@ -0,0 +1,5 @@
---
"jspsych": patch
---
Fix a ReferenceError ("`require$$0` is not defined") related to the new seedable random number generator

18
package-lock.json generated
View File

@ -2901,11 +2901,6 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"node_modules/@types/seedrandom": {
"version": "3.0.2",
"dev": true,
"license": "MIT"
},
"node_modules/@types/semver": { "node_modules/@types/semver": {
"version": "6.2.3", "version": "6.2.3",
"dev": true, "dev": true,
@ -12548,7 +12543,8 @@
}, },
"node_modules/seedrandom": { "node_modules/seedrandom": {
"version": "3.0.5", "version": "3.0.5",
"license": "MIT" "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
"integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
}, },
"node_modules/semver": { "node_modules/semver": {
"version": "5.7.1", "version": "5.7.1",
@ -15462,7 +15458,6 @@
"@fontsource/open-sans": "4.5.3", "@fontsource/open-sans": "4.5.3",
"@jspsych/config": "^1.2.0", "@jspsych/config": "^1.2.0",
"@types/dom-mediacapture-record": "^1.0.11", "@types/dom-mediacapture-record": "^1.0.11",
"@types/seedrandom": "^3.0.1",
"base64-inline-loader": "^2.0.1", "base64-inline-loader": "^2.0.1",
"css-loader": "^6.6.0", "css-loader": "^6.6.0",
"mini-css-extract-plugin": "^2.5.3", "mini-css-extract-plugin": "^2.5.3",
@ -18268,10 +18263,6 @@
"@types/node": "*" "@types/node": "*"
} }
}, },
"@types/seedrandom": {
"version": "3.0.2",
"dev": true
},
"@types/semver": { "@types/semver": {
"version": "6.2.3", "version": "6.2.3",
"dev": true "dev": true
@ -22610,7 +22601,6 @@
"@fontsource/open-sans": "4.5.3", "@fontsource/open-sans": "4.5.3",
"@jspsych/config": "^1.2.0", "@jspsych/config": "^1.2.0",
"@types/dom-mediacapture-record": "^1.0.11", "@types/dom-mediacapture-record": "^1.0.11",
"@types/seedrandom": "^3.0.1",
"auto-bind": "^4.0.0", "auto-bind": "^4.0.0",
"base64-inline-loader": "^2.0.1", "base64-inline-loader": "^2.0.1",
"css-loader": "^6.6.0", "css-loader": "^6.6.0",
@ -24530,7 +24520,9 @@
} }
}, },
"seedrandom": { "seedrandom": {
"version": "3.0.5" "version": "3.0.5",
"resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-3.0.5.tgz",
"integrity": "sha512-8OwmbklUNzwezjGInmZ+2clQmExQPvomqjL7LFqOYqtmuxRgQYqOD3mHaU+MvZn5FLUeVxVfQjwLZW/n/JFuqg=="
}, },
"semver": { "semver": {
"version": "5.7.1" "version": "5.7.1"

View File

@ -49,7 +49,6 @@
"@fontsource/open-sans": "4.5.3", "@fontsource/open-sans": "4.5.3",
"@jspsych/config": "^1.2.0", "@jspsych/config": "^1.2.0",
"@types/dom-mediacapture-record": "^1.0.11", "@types/dom-mediacapture-record": "^1.0.11",
"@types/seedrandom": "^3.0.1",
"base64-inline-loader": "^2.0.1", "base64-inline-loader": "^2.0.1",
"css-loader": "^6.6.0", "css-loader": "^6.6.0",
"mini-css-extract-plugin": "^2.5.3", "mini-css-extract-plugin": "^2.5.3",

View File

@ -1,5 +1,5 @@
import rw from "random-words"; import rw from "random-words";
import seedrandom from "seedrandom"; import seedrandom from "seedrandom/lib/alea";
/** /**
* Uses the `seedrandom` package to replace Math.random() with a seedable PRNG. * Uses the `seedrandom` package to replace Math.random() with a seedable PRNG.
@ -7,12 +7,8 @@ import seedrandom from "seedrandom";
* @param seed An optional seed. If none is given, a random seed will be generated. * @param seed An optional seed. If none is given, a random seed will be generated.
* @returns The seed value. * @returns The seed value.
*/ */
export function setSeed(seed?: string) { export function setSeed(seed: string = Math.random().toString()) {
if (!seed) { Math.random = seedrandom(seed);
const prng = seedrandom();
seed = prng.int32().toString();
}
seedrandom(seed, { global: true });
return seed; return seed;
} }