-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
35 lines (31 loc) · 1 KB
/
index.js
File metadata and controls
35 lines (31 loc) · 1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
let generateArrayOfCharsFromAscii = (from, to) => {
const n = [];
for (let i = from; i <= to; i++) {
n.push(i);
}
return n;
};
const rsg = (
length = 10,
params = ['lowerCase','numbers']
) => {
let genFrom = [];
if ((params.includes('upperCase')))
genFrom = genFrom.concat(generateArrayOfCharsFromAscii(65, 90));
if ((params.includes('lowerCase')))
genFrom = genFrom.concat(generateArrayOfCharsFromAscii(97, 122));
if ((params.includes('numbers'))) genFrom = genFrom.concat(generateArrayOfCharsFromAscii(48, 57));
if ((params.includes('specialChars')))
genFrom = genFrom
.concat(generateArrayOfCharsFromAscii(33, 47))
.concat(generateArrayOfCharsFromAscii(58, 64))
.concat(generateArrayOfCharsFromAscii(91, 96))
.concat(generateArrayOfCharsFromAscii(123, 126));
const random = [];
for (let i = 0; i < length; i++) {
const luckyChar = genFrom[Math.floor(Math.random() * genFrom.length)];
random.push(String.fromCharCode(luckyChar));
}
return random.join("");
};
module.exports = rsg;