npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

random-ext

v2.8.0

Published

Generates random strings, numbers, dates, arrays, objects, booleans etc

Downloads

762

Readme

random-ext (JavaScript Random Values Generator)

random-ext is a Node.js module that generates random boolean, integers, floats, strings (with or without predefined character sets), objects, arrays etc.

Installation

npm install random-ext --save

Usage

var randomExt = require("random-ext");

API Documentation

boolean()

Generates random boolean.

var randomBoolean = randomExt.boolean();

booleanArray(length)

Generates random boolean array.

Parameter

  • length - Required. Number of elements in the array.
var randomBooleanArray = randomExt.booleanArray(10);

integer(max, min)

Generates random integer.

Parameters

  • max - Required. Maximum integer value.
  • min - Optional. Minimum integer value. Defaults to 0 if unspecified.
var randomInteger = randomExt.integer(99, 10);

integerArray(length, max, min)

Generates random integerArray.

Parameters

  • length - Required. Number of elements in the array.
  • max - Required. Maximum integer value.
  • min - Optional. Minimum integer value. Defaults to 0 if unspecified.
var randomIntegerArray = randomExt.integerArray(12, 99, 10);

float(limit, min)

Generates random floating point number.

Parameters

  • limit - Required. Floating point number's upper limit. Generated number is always below this value.
  • min - Optional. Minimum floating point number. Defaults to 0 if unspecified.
var randomFloat = randomExt.float(10.523, 3.021);

floatArray(length, max, min)

Generates random floating point numbers' array.

Parameters

  • length - Required. Number of elements in the array.
  • limit - Required. Floating point number's upper limit. Generated number is always below this value.
  • min - Optional. Minimum floating point number. Defaults to 0 if unspecified.
var randomFloatArray = randomExt.floatArray(23, 100.23423, 0.4);

date(endDate, startDate)

Generates random date.

Parameters

  • endDate - Required. Latest date to generate.
  • startDate - Optional. Earliest date to generate. Defaults to "01-Jan-1970 00:00:00 UTC" if unspecified.
var randomDate = randomExt.date(new Date());

dateArray(length, endDate, startDate)

Generates random date array.

Parameters

  • length - Required. Number of elements in the array.
  • endDate - Required. Latest date to generate.
  • startDate - Optional. Earliest date to generate. Defaults to "01-Jan-1970 00:00:00 UTC" if unspecified.
var randomDateArray = randomExt.dateArray(3, new Date());

string(maxLength, minLength)

Generates random string containing random Unicode character in the code range 32-127, i.e. alphabets, numbers, space and special characters.

Parameters

  • maxLength - Required. Maximum length of generated string.
  • minLength - Optional. Minimum length of generated string. Defaults to 0 if unspecified.
// Generates random password
var randomPassword = randomExt.string(20, 10);

stringArray(arrayLength, maxLength, minLength)

Generates random string array.

Parameters

  • length - Required. Number of elements in the array.
  • maxLength - Required. Maximum length of generated string.
  • minLength - Optional. Minimum length of generated string. Defaults to 0 if unspecified.
var randomStringArray = randomExt.stringArray(10, 4, 2);

restrictedString(charTypeArray, maxLength, minLength)

Generates random restrictedString.

Parameters

  • charTypeArray - Required. Array of character types (Refer CHAR_TYPE) or string from which characters will be picked.
  • maxLength - Required. Maximum length of generated string.
  • minLength - Optional. Minimum length of generated string. Defaults to 0 if unspecified.
// Generates random snake case variable name.
var randomSnakeCaseVariableName = randomExt.restrictedString(
    [randomExt.CHAR_TYPE.LOWERCASE, "_"],
    20,
    10
);

restrictedStringArray(arrayLength, charTypeArray, maxLength, minLength)

Generates random restricted string array.

Parameters

  • length - Required. Number of elements in the array.
  • charTypeArray - Required. Array of character types. Refer CHAR_TYPE
  • maxLength - Required. Maximum length of generated string.
  • minLength - Optional. Minimum length of generated string. Defaults to 0 if unspecified.
// Generates 10 element array of strings containing lower case and special characters.
var randomRestrictedStringArray = randomExt.restrictedStringArray(
    10,
    [randomExt.CHAR_TYPE.LOWERCASE, randomExt.CHAR_TYPE.SPECIAL],
    10,
    5
);

object(template)

Generates random object.

Parameters

var customerTemplate = {
    name: [randomExt.string, 10, 5],
    age: [randomExt.integer, 100],
};
var customerWithRandomPropertyValues = randomExt.object(customerTemplate);

objectArray(length, template)

Generates random objectArray.

Parameters

  • length - Required. Number of elements in the array.
  • template - Required. Template object to randomize. Refer object template syntax
var randomObjectArray = randomExt.objectArray(10, {
    name: [randomExt.string, 10, 5],
    age: [randomExt.integer, 100],
});

stringPattern(pattern, variableDefinition)

Generates random string that matches given pattern. This is the most powerful random string generator that can virtually mimic any data type or format.

Parameters

  • pattern - Required. Pattern containing variables and constants. Any pattern element that is not defined in variable definition is treated as constant.
  • variableDefinition - Required. Object to describe each variable. Variable definition syntax is same as object template syntax. But each property of variable definition describes a variable used in pattern. Refer object template syntax
// Generates random email
var randomEmail = randomExt.stringPattern("[email protected]", {
    x: [randomExt.restrictedString, [randomExt.CHAR_TYPE.LOWERCASE], 20, 1],
});

// Generates random GUID - approach 1
var randomGUIDApproach1 = randomExt.stringPattern("x-y-y-y-z", {
    x: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 8, 8],
    y: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 4, 4],
    z: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 12, 12],
});

// Generates random GUID - approach 2
var randomGUIDApproach2 = randomExt.stringPattern("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", {
    x: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 1, 1],
});

stringPatternArray(length, pattern, variableDefinition)

Generates array of random string for given pattern.

Parameters

  • length - Required. Number of elements in the array.
  • pattern - Required. Pattern containing variables and fixed string which will be matched with variable definition to generate a random string.
  • variableDefinition - Required. Object to describe each variable. Variable definition syntax is same as object template syntax. But each property of variable definition describes a variable used in pattern. Refer object template syntax
// Generates random GUID
var pattern = "x-y-y-y-z";
var variableDefinition = {
    x: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 8, 8],
    y: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 4, 4],
    z: [randomExt.restrictedString, [randomExt.CHAR_TYPE.HEX], 12, 12],
};
var randomGUIDArray = randomExt.stringPatternArray(10, pattern, variableDefinition);

pick(array)

Picks a random element from the given array.

Parameters

  • array - Required. Input array from which random element is picked.
var inputArray = ["aaa", "bbb", "ccc"];
var randomPick = randomExt.pick(inputArray);

shuffle(array)

Shuffles an array.

Parameters

  • array - Required. Array to shuffle.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
randomExt.shuffle(array);
console.log("Shuffled array:", array);

subArray(array,length)

Creates a sub array of given length with random elements picked from original array.

Parameters

  • array - Required. Input Array.
  • length - Required. Length of resulting sub array.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var subArray = randomExt.subArray(array, 4);
console.log("New Array:", subArray);

splitArray(array, count, ensureEqualSize)

Splits an array into subarrays equal to the given count. It can generate equal sized or random sized arrays based on the 3rd parameter. Subarrays have random elements sourced from original array. Each element in the source will be used once in the output.

Parameters
  • array - Required. Array to split.
  • count - Required. Number of arrays to generate in the output.
  • equalSize - (Default:false) Whether output arrays should be equal in size or not.
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9];
var arrayOf3Arrays = randomExt.split(array, 3, true);
console.log("Array of 3 equal sized arrays:", arrayOf3Arrays);

color()

Generates random HEX color code.

var randomColor = randomExt.color();

guid()

Generates RFC-4122 complaint GUID.

var guid = randomExt.guid();

CHAR_TYPE

Character type enum. Defines character types to be used in string generation.

Values
  • LOWERCASE - Lowercase alphabets.
  • UPPERCASE - Uppercase alphabets.
  • NUMERIC - Digits from 0 to 9.
  • SPECIAL - Special characters.
  • SPACE - Single space character. It doesn't include tab and newline.
  • HEX - Hexadecimal number (0-9 and a to f).
var hexCharType = randomExt.CHAR_TYPE.HEX;

Object template

Object template is required to generate random objects or random string based on patterns.

Syntax

var templateObject = {
    property1: [<function reference>, <function args>],
    property2: [<function reference>, <function args>],
    property3: [<function reference>, <function args>],
    .....
}

Example

var customerTemplate = {
    name: [randomExt.string, 10, 5],
    age: [randomExt.integer, 100],
};