node-warp
Version:
Web-agnostic Rapid Prototyping tools
85 lines (67 loc) • 2.42 kB
JavaScript
;
var _toConsumableArray = require('babel-runtime/helpers/to-consumable-array')['default'];
var _Number$MAX_SAFE_INTEGER = require('babel-runtime/core-js/number/max-safe-integer')['default'];
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
Object.defineProperty(exports, '__esModule', {
value: true
});
var _util = require('util');
var _assert = require('assert');
var _assert2 = _interopRequireDefault(_assert);
function* _sequence(len, split) {
var pos = 0;
while (pos < len) {
var remains = len - pos;
var _split = Math.max(0, Math.min(split, remains)) || remains;
yield [].concat(_toConsumableArray(letters(_split))).join('');
pos = pos + _split;
}
}
var _letterTypes = ['aoeiu', 'wrtplsdfghjklmnbvcz'];
function* letters() {
var len = arguments.length <= 0 || arguments[0] === undefined ? 4 : arguments[0];
var _typeIndex = int(0, 1);
var pos = len;
while (pos) {
pos = pos - 1;
_typeIndex = 1 - _typeIndex;
yield pickElement(_letterTypes[_typeIndex]);
}
}
function pickElement(list) {
return list[Math.floor(Math.random() * list.length)];
}
/**
* Generates random string
* @param {number} [length = 8]
* @param {number} [split = 0]
* @return {string}
*/
function string() {
var length = arguments.length <= 0 || arguments[0] === undefined ? 8 : arguments[0];
var split = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1];
return [].concat(_toConsumableArray(_sequence(length, split))).join('-');
}
/**
* Generates random integer
* @param {number} [from = 0]
* @param {number} [to = Number.MAX_SAFE_INTEGER]
* @return {number}
*/
function int() {
var from = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];
var to = arguments.length <= 1 || arguments[1] === undefined ? _Number$MAX_SAFE_INTEGER : arguments[1];
return Math.round(from + Math.random() * (to - from));
}
/**
* Returns randomly selected element/letter from given array/string
* @param {String|Array} list
* @return {*}
*/
function pick(list) {
(0, _assert2['default'])((0, _util.isArray)(list) || (0, _util.isString)(list), 'argument type mismatch: should be a string, or an array');
return pickElement(list);
}
exports['default'] = { string: string, int: int, pick: pick };
module.exports = exports['default'];
//# sourceMappingURL=random.js.map