
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@locustjs/random
Advanced tools
This library helps in producing random sequence of characters.
npm i @locustjs/random
RandomGeneratorBaseIt is an abstract class that defines structure of random classes. It currently has a default RandomGeneratorDefault implementation.
next(min, max)Generates a new random number between min (inclusive) and max (exclusive).
const random = new RandomGeneratorDefault();
for (let i = 0; i < 10; i++) {
const s = random.next(10, 100);
console.log(s);
}
/*
12
25
67
34
19
81
44
73
25
31
*/
generate(options)Generates a new random sequence based on the given options.
options is an object with the properties described below:
| Property | Type | Description | Default |
|---|---|---|---|
type | string, number, RandomType | specifies type of random sequence based on different values RandomType enum provides (listed in next table). | 'num' |
| minLen | number | minimum sequence length. Used when generating a random sequence of characters with random length between minLen and maxLen | 5 |
| maxLen | number | maximum sequence length. | 7 |
| len | number | explicit fixed sequence length. | undefined |
| from | number | starting number. Used when generating random numbers (when type is num). | |
| to | number | ending random number. Used when generating random numbers (when type is num). | |
| chars | array | List of characters to be used to produce random characters. | [ ] |
| excludes | list of characters that should be excluded when generating random sequence. | [ ] |
RandomType enum values| type | description | value |
|---|---|---|
| num | numeric | 0 |
| alpha | english alphabet letters, uppercase and lowercase | 1 |
| alphaNum | alphabet letters and numeric | 2 |
| upper | only uppercase letters | 3 |
| lower | only lowercase letters | 4 |
| upperNum | uppercase letters and numbers | 5 |
| lowerNum | lowercase letters and numbers | 6 |
| custom | custom characters. requires settings 'chars'. | 7 |
Example:
import { RandomGeneratorDefault, RandomType } from '@locustjs/random';
const random = new RandomGeneratorDefault();
for (let i = 0; i < 10; i++) {
const s = random.generate({
type: RandomType.alphaNum,
len: 10
});
console.log(s);
}
Result:
f0ivY4eJwH
nzLkl5s80k
9G5RjUK96j
9ppD91iehG
ze1a10M3l7
xyN00yi1YV
oENcb7w85E
P72zCw361S
50tJcr1m9c
N262uQBZJ9
Random static classThere is a static helper class named Random that simplifies generating random sequences.
var s1 = Random.generate({ type: 'alpha', len: 10 });
var s2 = Random.generate({ type: 'num', from: 1000, to: 9999 });
var s3 = Random.generate({ type: 'custom', chars: ['a', 'b', 'c', 'x', 'y', 'z', '1', '2', '3' ], len: 5 });
Random has a static instance property that is used internally by static generate and next methods.
By default Random.instance is set with an instance of RandomGeneratorDefault, however, it is a setter property and can be set with an instance of any subclass of RandomGeneratorBase, enabling developer to use his own implementation of random sequence generator.
class MyRandomGenerator extends RandomGeneratorBase {
...
}
Random.instance = new MyRandomGenerator()
console.log(Random.generate({ type: 'alpha' }))
FAQs
This library helps in producing random sequence of characters.
We found that @locustjs/random demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.