You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

random.js 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. const lipsum = require('./lorem')
  2. const randomNumber = max => {
  3. return Math.floor(Math.random() * max) < 1
  4. ? 1
  5. : Math.floor(Math.random() * max)
  6. }
  7. const randomValFrom = arr => arr[randomNumber(arr.length)]
  8. const randomEmail = (length = 5) => {
  9. let chars =
  10. 'abcdefghijklmnopqrstuvwxyz-_abcdefghijklmnopqrstuvwxyz0123456789'
  11. let str = ''
  12. for (let i = 0; i < length + randomNumber(9); i++) {
  13. str += chars.charAt(Math.floor(Math.random() * chars.length))
  14. }
  15. const suffixs = [
  16. '@gmail.com',
  17. '@aol.com',
  18. '@yahoo.com',
  19. '@apple.com',
  20. '@hotmail.com',
  21. '@rocket-mail.com',
  22. '@mail.com',
  23. ]
  24. return str + randomValFrom(suffixs)
  25. }
  26. const randomName = (length = 4) => {
  27. let chars = 'aeiouaeiouabcdefghijklmnoprstuvwyabcdefghijklmnopqrstuvwxyz'
  28. let str = ''
  29. for (let i = 0; i < length + randomNumber(9); i++) {
  30. str += chars.charAt(Math.floor(Math.random() * chars.length))
  31. }
  32. return str
  33. }
  34. const randomMedia = () => {
  35. const stockimg = [
  36. 'https://i.imgur.com/a4wirDS.png',
  37. 'https://i.imgur.com/F6GxGXG.jpeg',
  38. 'https://i.imgur.com/ekrkdNt.jpeg',
  39. 'https://i.imgur.com/VtMTfDg.jpeg',
  40. 'https://i.imgur.com/9Fwouqm.jpeg',
  41. 'https://i.imgur.com/rOjRCgo.jpeg',
  42. 'https://i.imgur.com/FwSdQww.jpeg',
  43. 'https://i.imgur.com/JjZyzXL.jpeg',
  44. 'https://i.imgur.com/1DsSQ1s.jpeg',
  45. ]
  46. return randomValFrom(stockimg)
  47. }
  48. const randomLang = () => {
  49. const langs = [
  50. 'javascript',
  51. 'python',
  52. 'ruby',
  53. 'erlang',
  54. 'haskall',
  55. 'php',
  56. 'swift',
  57. 'rust',
  58. 'objective-c',
  59. 'common lisp',
  60. 'java',
  61. 'perl',
  62. 'cobol',
  63. 'fortran',
  64. 'julia',
  65. 'c#',
  66. 'go',
  67. 'c++',
  68. ]
  69. return randomValFrom(langs)
  70. }
  71. const randomDuration = () => {
  72. const duration = ['full', 'part']
  73. return randomValFrom(duration)
  74. }
  75. const randomLocation = () => {
  76. const location = ['onsite', 'remote', 'flexible']
  77. return randomValFrom(location)
  78. }
  79. const randomBlurb = () => {
  80. const l = new lipsum.LoremIpsum()
  81. return l.generate(randomNumber(50))
  82. }
  83. module.exports = {
  84. randomNumber,
  85. randomValFrom,
  86. randomEmail,
  87. randomName,
  88. randomMedia,
  89. randomLang,
  90. randomDuration,
  91. randomLocation,
  92. randomBlurb,
  93. number: randomNumber,
  94. valFrom: randomValFrom,
  95. email: randomEmail,
  96. name: randomName,
  97. media: randomMedia,
  98. language: randomLang,
  99. duration: randomDuration,
  100. location: randomLocation,
  101. blurb: randomBlurb
  102. }