Skip to content

Simple ts/js library for generating random values.

License

Notifications You must be signed in to change notification settings

socnik/randifyjs

Repository files navigation

RandifyJS

This is library for generate random numbers in JavaScript. Written on TypeScript.

I not will accept PRs for this repository.

How To Use?

Random methods reference

rand

declare function rand(min: number, max: number, step: number = 1): number

Return random value between min and max with step (default 1).

Examples:

rand(0, 10, 2) // possible return values: 0, 2, 4, 6, 8, 10
rand(0, 3) // possible return values: 0, 1, 2, 3

shuffle

declare function shuffle<T>(sequence: T[]): T[]

Shuffle array of any values.

choices

declare function choices<T>(sequence: T[], choicesNumber: number): T[] | null

Random choice specified number of the values from an array. Return null if array empty.

choice

declare function choice<T>(sequence: T[]): T | null

Same as choices, but return only one number.

Random class API

For simple generating random value you can use only methods from Random methods reference. But for advanced use (for example if you want get random numbers from your backend), you need use Random or AsyncRandom APIs.

Random is class. All simple methods as rand or shuffle exports from the default instance of the Random class. You can see this in the defaultInstance.ts file.

Random class takes one argument - RandomSource. But what is RandomSource? RandomSource - object with getRandomValue() method. This method should return a value between 0 and 1. This is TypeScript type declaration of it:

type RandomSource = {
  getRandomValue(): number
}

You can create a custom RandomSource with your own getRandomValue function. Default RandomSource (the same as the default instance of the Random class) uses Math.random():

const defaultRandomSource: RandomSource = {
  getRandomValue: () => Math.random(),
}

AsyncRandom class API

If the operation of getting random values (between 0 and 1) is async you need to use the AsyncRandom API.

This is the same as the Random class, but all methods return promises. And you should use AsyncRandomSource. This is the TypeScript declaration for it:

type AsyncRandomSource = {
  getRandomValue(): Promise<number>
}

About

Simple ts/js library for generating random values.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published