seededRNG.js (782B)
1 "use strict"; 2 3 var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); 4 5 Object.defineProperty(exports, "__esModule", { 6 value: true 7 }); 8 exports.createRng = createRng; 9 10 var _seedrandom = _interopRequireDefault(require("seedrandom")); 11 12 var singletonRandom = /* #__PURE__ */(0, _seedrandom.default)(Date.now()); 13 14 function createRng(randomSeed) { 15 var random; // create a new random generator with given seed 16 17 function setSeed(seed) { 18 random = seed === null ? singletonRandom : (0, _seedrandom.default)(String(seed)); 19 } // initialize a seeded pseudo random number generator with config's random seed 20 21 22 setSeed(randomSeed); // wrapper function so the rng can be updated via generator 23 24 function rng() { 25 return random(); 26 } 27 28 return rng; 29 }