seededRNG.js 788 B

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