string.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.randomString = void 0;
  4. function randomString(token) {
  5. if (typeof token === 'string')
  6. return token;
  7. const rnd = Math.random();
  8. switch (token[0]) {
  9. case 'pick': {
  10. const set = token[1];
  11. return set[Math.floor(rnd * set.length)];
  12. }
  13. case 'repeat': {
  14. const min = token[1];
  15. const max = token[2];
  16. const pattern = token[3];
  17. const count = Math.floor(rnd * (max - min + 1)) + min;
  18. let str = '';
  19. for (let i = 0; i < count; i++)
  20. str += randomString(pattern);
  21. return str;
  22. }
  23. case 'range': {
  24. const min = token[1];
  25. const max = token[2];
  26. const codePoint = Math.floor(rnd * (max - min + 1)) + min;
  27. return String.fromCodePoint(codePoint);
  28. }
  29. case 'list':
  30. return token[1].map(randomString).join('');
  31. default:
  32. throw new Error('Invalid token type');
  33. }
  34. }
  35. exports.randomString = randomString;
  36. //# sourceMappingURL=string.js.map