2.0.0 • Published 1 year ago

@locustjs/random v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

locustjs-random

This library helps in producing random sequence of characters.

Installation

npm i @locustjs/random

Types

RandomGeneratorBase

It is an abstract class that defines structure of random classes. It currently has a default RandomGeneratorDefault implementation.

Methods

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:

PropertyTypeDescriptionDefault
typestring, number, RandomTypespecifies type of random sequence based on different values RandomType enum provides (listed in next table).'num'
minLennumberminimum sequence length. Used when generating a random sequence of characters with random length between minLen and maxLen5
maxLennumbermaximum sequence length.7
lennumberexplicit fixed sequence length.undefined
fromnumberstarting number. Used when generating random numbers (when type is num).
tonumberending random number. Used when generating random numbers (when type is num).
charsarrayList of characters to be used to produce random characters.
excludeslist of characters that should be excluded when generating random sequence.

RandomType enum values

typedescriptionvalue
numnumeric0
alphaenglish alphabet letters, uppercase and lowercase1
alphaNumalphabet letters and numeric2
upperonly uppercase letters3
loweronly lowercase letters4
upperNumuppercase letters and numbers5
lowerNumlowercase letters and numbers6
customcustom 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 class

There 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' }))