diff --git a/generators/lengthGen.js b/generators/lengthGen.js new file mode 100644 index 0000000..825ae93 --- /dev/null +++ b/generators/lengthGen.js @@ -0,0 +1,2 @@ +const { randomBytes } = require('crypto'); +module.exports = (length, charset) => [...randomBytes(length)].map((byte) => charset[Number(byte) % charset.length]).join('').slice(1).concat(charset[0]); \ No newline at end of file diff --git a/generators/zws.js b/generators/zws.js index 95d8563..77d5a28 100644 --- a/generators/zws.js +++ b/generators/zws.js @@ -1,3 +1,3 @@ -const { randomBytes } = require('crypto'); +const lengthGen = require('./lengthGen'); const zeroWidthChars = ['\u200B', '\u200C', '\u200D', '\u2060']; -module.exports = ({ length }) => [...randomBytes(length)].map(byte => zeroWidthChars[Number(byte) % zeroWidthChars.length]).join('').slice(1) + zeroWidthChars[0]; +module.exports = ({ length }) => lengthGen(length, zeroWidthChars);