random-world
v1.2.1
Published
Nodejs. module to generate random collections of data.
Readme

Random World
Node module for generating random data - built for usage with a RAML-based API mocking server to generate collections of complex data structures with more realistic values.
Installation
npm install random-world
Instantiation
var random = require('random-world');Modules
These are a work in progress and are added to as the parent project evolves. Method names and options are likely to change.
- Places
- Collections
- Dates & Times
- Files
- Geography
- Names
- Network
- Numbers
- Strings
- Truth (Booleans)
- Money
- Complex Structures
Places
Location-specific methods.
random.city()- Generate a random city name.country- String representing the country to restrict the city to.
random.country()- Generate a random country name.random.countrycode()- Generate a random country code.
Collections
Arrays of random data.
random.array()- Generate an array up 12 items long, filled with random numbers between 1-200.limit- Explicit length of the array
random.pickone()- Returns a random item from a pre-defined list of values, separated by a delimiter. Delimter is defaulted to pipe (|) but can be specified in the options.delimiter- The custom delimiter separating the values
Dates
random.now()- The date and time right now.random.unixtimestamp()- A date and time in UNIX timestamp format.format- UK date format is only supportedstart- Minimum bound the randomisation should start from.end- Maximum bound the randomisation should end at.
random.date()- A random dateformat- UK date format is only supportedstart- Minimum bound the randomisation should start from.end- Maximum bound the randomisation should end at.
random.dayofweek()- A random day of the week.short- Short 3 character format (i.e. Mon vs Monday).
random.year()- A random yearformat- UK date format is only supportedstart- Minimum bound the year randomisation should start from.end- Maximum bound the year randomisation should end at.
random.month()- A random day of the week.short- Short 3 character format (i.e. Jul vs July).
Files
Returns random file extensions
random.extension()- A random file extension.includeDot- Returns a dot prefix for the extension (i.e. .png vs png).
Geography
Generate randomised lat/long sets.
random.latlong()- Object containing a longitude and latitude.random.lat()- A random latitude.random.long()- A random longitude.
Names
Returns names for people using a dictionary of popular first and last names - only data from the USA is supported at the moment.
random.firstname()- Returns a person's first name.gender- Limit result to male or female names.male|female
startsWith- Return names starting with the supplied substring.charCase- Transform the name to upper or lowercase.- `upper|lower
random.lastname()- Returns a person's last name (surname).startsWith- Return names starting with the supplied substring.charCase- Transform the name to upper or lowercase.- `upper|lower
random.fullname()- Returns a person's first name.gender- Limit result to male or female names.male|female
startsWith- Return names starting with the supplied substring.charCase- Transform the name to upper or lowercase.- `upper|lower
random.title()- Returns a random title.random.email()- Returns a person's first name.hasDot- Split name section of address (before @) with a dot.hasPlusAddress- Include a plus address in the name section.charCase- Transform the address to upper or lowercase.- `upper|lower
standard- Limit the TLDs to a standard set (.com, .org, .co.uk etc).
Network
Network specific values.
random.domain()- Returns a mock domain name.random.ip()- Returns an IPv4 IP address.random.ipv6()- Returns an IPv6 IP address. Not yet implemented.random.tld()- Returns a top level domain.standard- Limit the TLDs to a standard set (.com, .org, .co.uk etc).
Numbers
Integers and floats.
random.integer()- Returns a random integer.min- Minimum value to return.max- Maximum value to return.round- Round the value (to nearest whole number).padding- Zero-pads value up to the length specified.
random.number()- Alias forinteger().random.float()- Returns a random float.random.sum()- Returns an array of X values that add up to the target value.
Strings
String patterns.
random.sentence()- Returns a sentence retrieved from Lorem Ipsum strings.random.block()- Creates a string made up of blocks of characters.blockSize- Length of each block.delimiter- Split each block with specific delimiter.chars- Limit blocks to defined characters. Defaults to A-Z.
random.random()- A random string created from the default characters, or the supplied chars.chars- Limit string to defined characters. Defaults to A-Za-z0-9.len- Length of the string. Defaults to 16.
random.word()- A random dictionary word.charCase- Transform the word to upper or lowercase.upper|lower
limit- Number of words to return. Defaults to 1.
random.uuid()- A v4 UUID.
Truth
Randomised boolean values.
random.boolean()- Returns a random true or false.
Money
Credit card data specific methods.
random.ccnumber()- Returns a random (valid, MOD10 checked) credit card number.shortName- Limits the returned card number to a specific card type. See following table for supported types.hasHyphens- Boolean. Formats credit card number with a hypen very 4 characters.
random.ccstart()- Returns a random start date in MM/YY format.random.ccexpiry()- Returns a random expiry in MM/YY format.random.cctype()- Returns a random credit card type. e.g. MasterCard, VISA etcrandom.cvv()- Returns a random 3 digit CVV value.random.cv2()- Alias tocvv()method.
Supported card types.
|Card Type|Short Code| |---|---| | American Express |AE | | Diners Club - Carte Blanche | DC-CB | | Diners Club - International | DC-I | | Diners Club - USA & Canada | DC | | Discover | D | | InstaPayment | IP | | JCB | JCB | |Laser | L | | Maestro | MA | | MasterCard | MC | | Visa | V | | Visa Electron | VE |
Objects
random.fromObject()- Parses an object for placeholders that representrandom-worldmethods.
{
"struct": {
"name": "$fullname",
"addressId": "$number{\"min\": 100, \"max\": 2000, \"round\": true}",
"description": "$word{\"charCase\": \"upper\"} Office",
"addressLine1": "$word",
"city": "$city",
"postcode": "$postcode",
"country": "$country",
"isDeleted": "$boolean"
}
}Nested object parser takes a complex object and converts all placeholders for random-world methods to a randomly assigned value. Documentation for this is covered in more detail here.
Running Tests
npm test
