UNPKG

node-warp

Version:

Web-agnostic Rapid Prototyping tools

85 lines (67 loc) 2.42 kB
'use strict'; 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