"use strict";

var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.createRng = createRng;

var _seedrandom = _interopRequireDefault(require("seedrandom"));

var singletonRandom = /* #__PURE__ */(0, _seedrandom["default"])(Date.now());

function createRng(randomSeed) {
  var random; // create a new random generator with given seed

  function setSeed(seed) {
    random = seed === null ? singletonRandom : (0, _seedrandom["default"])(String(seed));
  } // initialize a seeded pseudo random number generator with config's random seed


  setSeed(randomSeed); // wrapper function so the rng can be updated via generator

  function rng() {
    return random();
  }

  return rng;
}