UNPKG

random-object

Version:

Generates a js object of random depth and width for testing purposes

38 lines (32 loc) 1.26 kB
'use strict'; var _util = require('./util'); var randomObject = function randomObject() { var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _util.random1To10)(); var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _util.random1To10)(); var ret = {}; if (width === 0) { return ret; } else if (depth === 0) { for (var i = 0; i < width; i++) { ret[(0, _util.randomAlphaNumeric)()] = (0, _util.randomAlphaNumeric)(); } } else { ret[(0, _util.randomAlphaNumeric)()] = singleWidthObject(depth - 1); for (var _i = 0; _i < width - 1; _i++) { if ((0, _util.random1To10)() > 5) { ret[(0, _util.randomAlphaNumeric)()] = (0, _util.randomAlphaNumeric)(); } else { ret[(0, _util.randomAlphaNumeric)()] = singleWidthObject((0, _util.randomMax)(depth - 1)); } } } return ret; }; var singleWidthObject = function singleWidthObject(depth) { var ret = {}; ret[(0, _util.randomAlphaNumeric)()] = depth === 0 ? (0, _util.randomAlphaNumeric)() : singleWidthObject(depth - 1); return ret; }; module.exports = { randomObject: randomObject };