@js-random/all
Version:
A collection of simple and lightweight randomizers for JavaScript (TypeScript friendly)
169 lines (135 loc) • 4.78 kB
JavaScript
(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);
}());