UNPKG

@travi/any

Version:

random data generator for when test data is insignificant

1 lines 7.95 kB
{"version":3,"file":"any.mjs","sources":["../src/base.js","../src/list-of.js","../src/simple-object.js","../src/object-with-keys.js","../src/index.js"],"sourcesContent":["import Chance from 'chance';\nimport MersenneTwister from 'mersenne-twister';\nimport debugLibrary from 'debug';\n\nconst debug = debugLibrary('any');\n\nconst generator = new MersenneTwister();\n// Multiply the random seed to match chance.js\nconst seed = process.env.ANY_SEED || generator.random() * (10 ** 13);\ndebug(`randomness seed: ${seed}`);\n\nfunction isPrimitive(value) {\n return (value !== Object(value));\n}\n\nconst chance = new Chance(seed);\n\nexport const integer = options => chance.natural(!isPrimitive(options) ? options : undefined);\nexport const float = options => chance.floating(!isPrimitive(options) ? options : undefined);\nexport const string = options => chance.string(!isPrimitive(options) ? options : undefined);\nexport const sentence = options => chance.sentence(!isPrimitive(options) ? options : undefined);\nexport const paragraph = options => chance.paragraph(!isPrimitive(options) ? options : undefined);\nexport const url = options => chance.url(!isPrimitive(options) ? options : undefined);\nexport const boolean = options => chance.bool(!isPrimitive(options) ? options : undefined);\nexport const email = options => chance.email(!isPrimitive(options) ? options : undefined);\nexport const date = options => chance.date({string: true, ...options});\nexport const fromList = list => chance.pickone(list);\nexport const subList = (list, {size}) => chance.pickset(list, size);\n\nexport function word(options = {}) {\n return options.length ? chance.word(options) : chance.word({\n syllables: 3,\n ...!isPrimitive(options) ? options : undefined\n });\n}\n\nexport const DEFAULT_SIZE_RANGE = {max: 20, min: 1};\n","import _ from 'lodash';\n\nimport {integer, DEFAULT_SIZE_RANGE} from './base.js';\n\nexport default function listOf(factory, options = {}) {\n const listSize = options.size || integer({...DEFAULT_SIZE_RANGE, ...options});\n\n if (options.uniqueOn) {\n const uniqueValues = {};\n\n while (Object.keys(uniqueValues).length < listSize) {\n const item = factory(Object.keys(uniqueValues).length);\n uniqueValues[item[options.uniqueOn]] = item;\n }\n\n return _.values(uniqueValues);\n }\n\n const list = [];\n\n for (let i = 0; i < listSize; i += 1) {\n list.push(factory(i));\n }\n\n return list;\n}\n","import {DEFAULT_SIZE_RANGE, integer, string, word} from './base.js';\n\nexport default function () {\n const object = {};\n const size = integer(DEFAULT_SIZE_RANGE);\n\n for (let i = 0; i < size; i += 1) {\n object[word()] = string();\n }\n\n return object;\n}\n","import {string} from './base.js';\n\nexport default function (keys, options = {}) {\n return keys\n .map((key, index) => (options.factory ? [key, options.factory(key, index)] : [key, string()]))\n .reduce((acc, [key, value]) => ({...acc, [key]: value}), {});\n}\n","import {\n boolean,\n date,\n email,\n float,\n fromList,\n subList,\n integer,\n paragraph,\n sentence,\n string,\n url,\n word\n} from './base.js';\nimport listOf from './list-of.js';\nimport simpleObject from './simple-object.js';\nimport objectWithKeys from './object-with-keys.js';\n\nexport default {\n string,\n word,\n sentence,\n paragraph,\n integer,\n float,\n boolean,\n url,\n email,\n date,\n simpleObject,\n objectWithKeys,\n listOf,\n fromList,\n subList\n};\n"],"names":["debug","debugLibrary","generator","MersenneTwister","seed","process","env","ANY_SEED","random","Math","pow","isPrimitive","value","Object","chance","Chance","integer","options","natural","undefined","float","floating","string","sentence","paragraph","url","boolean","bool","email","date","_objectSpread","fromList","list","pickone","subList","size","pickset","word","length","syllables","DEFAULT_SIZE_RANGE","max","min","listOf","factory","listSize","uniqueOn","uniqueValues","keys","item","_","values","i","push","object","map","key","index","reduce","acc","simpleObject","objectWithKeys"],"mappings":"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"}