UNPKG

@jsonjoy.com/json-random

Version:

Random JSON generation, structured JSON by schema generation, no dependencies.

43 lines 1.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.randomString = randomString; /** * Generates a random string based on the provided token. * @param token The token defining the random string generation. * @returns A randomly generated string. */ function randomString(token) { if (typeof token === 'string') return token; const rnd = Math.random(); switch (token[0]) { case 'pick': { const [, ...from] = token; return randomString(from[Math.floor(rnd * from.length)]); } case 'repeat': { const [, min, max, pattern] = token; const count = Math.floor(rnd * (max - min + 1)) + min; let str = ''; for (let i = 0; i < count; i++) str += randomString(pattern); return str; } case 'char': { const [, min, max, count = 1] = token; let str = ''; for (let i = 0; i < count; i++) { const codePoint = Math.floor(rnd * (max - min + 1)) + min; str += String.fromCodePoint(codePoint); } return str; } case 'list': { const [, ...every] = token; return every.map(randomString).join(''); } default: throw new Error('Invalid token type'); } } //# sourceMappingURL=string.js.map