@forzalabs/remora
Version:
A powerful CLI tool for seamless data translation.
48 lines (47 loc) • 1.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const seedrandom_1 = __importDefault(require("seedrandom"));
const Algo_1 = __importDefault(require("../core/Algo"));
class RandomEngineClass {
constructor() {
this.rng = (min, max) => {
const rng = Math.random;
if (Algo_1.default.hasVal(min) || Algo_1.default.hasVal(max))
return Math.floor(rng() * (max - min + 1)) + min;
else
return rng();
};
this.sRng = (seed, min, max) => {
const rng = (0, seedrandom_1.default)(String(seed));
if (Algo_1.default.hasVal(min) || Algo_1.default.hasVal(max))
return Math.floor(rng() * (max - min + 1)) + min;
else
return rng();
};
this.rngDate = (min, max) => {
let myMin = min;
let myMax = max;
if (!Algo_1.default.hasVal(min) && !Algo_1.default.hasVal(max)) {
myMin = new Date('1900-01-01').getTime();
myMax = new Date().getTime();
}
const randomNumber = this.rng(myMin, myMax);
return new Date(randomNumber).toJSON();
};
this.sRngDate = (seed, min, max) => {
let myMin = min;
let myMax = max;
if (!Algo_1.default.hasVal(min) && !Algo_1.default.hasVal(max)) {
myMin = new Date('1900-01-01').getTime();
myMax = new Date().getTime();
}
const randomNumber = this.sRng(seed, myMin, myMax);
return new Date(randomNumber).toJSON();
};
}
}
const RandomEngine = new RandomEngineClass();
exports.default = RandomEngine;