UNPKG

@forzalabs/remora

Version:

A powerful CLI tool for seamless data translation.

48 lines (47 loc) 1.88 kB
"use strict"; 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;