UNPKG

@js-random/string

Version:

A simple and lightweight string randomizer for JavaScript (TypeScript friendly)

41 lines 1.42 kB
const charsPadding = 32; const charsAmount = 126 - 32; const defaultSeed = (() => { let seed = ''; for (let char = charsPadding; char <= charsAmount; char++) { seed += String.fromCharCode(char); } return seed; })(); const defaultFilter = /./; const defaultLength = 10; /** * Generates random string * * @param optionsOrLength string's length or object-style options * @param seed (optional) a string to be used as a seed for the new random string * @param filter to filter the resulting string by */ export default function randomString(optionsOrLength, seed, filter) { let _length = defaultLength; let _filter = defaultFilter; let _seed = defaultSeed; if (typeof optionsOrLength === 'object') { _seed = optionsOrLength.seed || defaultSeed; _filter = optionsOrLength.filter || defaultFilter; _length = typeof optionsOrLength.length === 'number' ? optionsOrLength.length : defaultLength; } else if (typeof optionsOrLength === 'number') { _length = optionsOrLength; _filter = filter || defaultFilter; _seed = seed || defaultSeed; } var result = ''; for (let i = 0; i < _length; i++) { result += _seed.split('') .sort(() => Math.random() - 0.5) .find(char => _filter.test(char)); } return result; } //# sourceMappingURL=index.js.map