@jsonjoy.com/json-random
Version:
Random JSON generation, structured JSON by schema generation, no dependencies.
43 lines • 1.42 kB
JavaScript
;
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