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 = ;
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-world
methods.
{
"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