UNPKG

@js-random/all

Version:

A collection of simple and lightweight randomizers for JavaScript (TypeScript friendly)

169 lines (135 loc) 4.78 kB
(function () { 'use strict'; function unwrapExports (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x.default : x; } function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } var lib = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); var defaultMin = 0, defaultMax = 100; /** * Generates random number in a specified range * * @param {number} min * @param {number} max */ function randomNumber(min, max) { min = isNaN(Number(min)) ? defaultMin : Number(min); max = isNaN(Number(max)) ? defaultMax : Number(max); return Math.floor(Math.random() * (max - min) + min); } exports.default = randomNumber; }); unwrapExports(lib); var global = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); Number.random = lib.default; }); unwrapExports(global); var lib$1 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); var charsPadding = 32; var charsAmount = 126 - 32; var defaultSeed = (function () { var seed = ''; for (var char = charsPadding; char <= charsAmount; char++) { seed += String.fromCharCode(char); } return seed; })(); var defaultFilter = /./; var defaultLength = 10; /** * Generates random string * * @param optionsOrLength string's length or object-style options * @param seed (optional) a string to be used as a seed for the new random string * @param filter to filter the resulting string by */ function randomString(optionsOrLength, seed, filter) { var _length = defaultLength; var _filter = defaultFilter; var _seed = defaultSeed; if (typeof optionsOrLength === 'object') { _seed = optionsOrLength.seed || defaultSeed; _filter = optionsOrLength.filter || defaultFilter; _length = typeof optionsOrLength.length === 'number' ? optionsOrLength.length : defaultLength; } else if (typeof optionsOrLength === 'number') { _length = optionsOrLength; _filter = filter || defaultFilter; _seed = seed || defaultSeed; } var result = ''; for (var i = 0; i < _length; i++) { result += _seed.split('') .sort(function () { return Math.random() - 0.5; }) .find(function (char) { return _filter.test(char); }); } return result; } exports.default = randomString; }); unwrapExports(lib$1); var global$1 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); String.random = lib$1.default; }); unwrapExports(global$1); var lib$2 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); /** * Generates a random boolean with given probability * * @param {number} truthProbability a probability of getting `true`, from 0 to 1 */ function randomBoolean(truthProbability) { truthProbability = typeof truthProbability !== 'number' ? 0.499 : truthProbability; return Math.random() > truthProbability; } exports.default = randomBoolean; }); unwrapExports(lib$2); var global$2 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); Boolean.random = lib$2.default; }); unwrapExports(global$2); const defaultMin = 0, defaultMax = 100; /** * Generates random number in a specified range * * @param {number} min * @param {number} max */ function randomNumber(min, max) { min = isNaN(Number(min)) ? defaultMin : Number(min); max = isNaN(Number(max)) ? defaultMax : Number(max); return Math.floor(Math.random() * (max - min) + min); } var lib$3 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); var defaultRange = { from: new Date(0), to: new Date((2 << 29) * randomNumber.default(1, 8046627)) }; /** * Generates random dates based on a range * * @param { IDateRange } range */ function randomDate(range) { range = typeof range === 'object' ? range : defaultRange; return new Date(randomNumber.default(+range.from, +range.to)); } exports.default = randomDate; }); unwrapExports(lib$3); var global$3 = createCommonjsModule(function (module, exports) { Object.defineProperty(exports, "__esModule", { value: true }); Date.random = lib$3.default; }); unwrapExports(global$3); }());