@travi/any
Version:
random data generator for when test data is insignificant
1 lines • 8.24 kB
Source Map (JSON)
{"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 domain = options => chance.domain(!isPrimitive(options) ? options : undefined);\nexport const guid = options => chance.guid(!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 domain,\n email,\n float,\n fromList,\n guid,\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 domain,\n guid,\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","domain","guid","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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"}