Data Types

Data Types

Mockingbird provides a wide range of different Data Types for generating mock data. Most of these Data types come from faker.js.

All faker.js types are supported, and can be referenced in Mockingbird using the fully qualified name of the type, meaning both the module name and the type name, separated by a dot (.). For example, to use the faker.js type buildingNumber you should use address.buildingNumber.

On top of faker.js types, Mockingbird also has some custom Data Types. These are types that aren’t provided by faker.js but can be very useful. You can find the definitions of all the custom Data Types here.

Contributions to add new custom Data Types are welcome!

Mockingbird custom Data Types

This section documents the custom Data Types that are added on top of Faker.js. For documentation about Faker.js types, please see the Faker.js docs.

Note that all Mockingbird custom Data Types have the prefix mockingbird, e.g. mockingbird.osName.

pick

Takes an array of values, each loop of the generator picks a random item from the array. Values in the array can be any standard JSON types, e.g. numbers, strings, etc.

Parameters

  • values: an array of values

Returns

123

Example usage

"some_values": {
    "type": "mockingbird.pick",
    "params": [
        {
            "values": [
                123,
                456
            ]
        }
    ]
}

pickWeighted

Similar to values, but with a weighted random. An additional parameters allows you to set the weighted frequency of each item, giving you control over the random distribution.

Parameters

  • values: an array of values
  • weights: an array of numbers

Returns

123

Example usage

"values_weighted": {
    "type": "mockingbird.pickWeighted",
    "params": [
        {
            "values": [
                123,
                456,
                789
            ],
            "weights": [
                90,
                7,
                3
            ]
        }
    ]
}

pickType

Generates an a array of a given type and then pops value on each generation.

Parameters

  • type: a string, the type to generate, any of the faker’s Datatype module types, e.g array, bigInt, boolean, datetime, float, hexadecimal, json, number, string, uuid.

  • length: a number, the length of the array to generate

Returns

123

datetimeNow

Take the current times and formats it into an ISO Date Time string (using toISOString()) with precision up to seconds.

Parameters

None

Returns

"2023-04-06T17:31:57"

Example usage

"my_datetime": {
    "type": "mockingbird.datetimeNow"
}

datetimeRecent

Uses Faker.js date.recent() and formats it into an ISO Date Time string (using toISOString()) with precision up to seconds.

Parameters

None

Returns

"2023-04-06T17:31:57"

Example usage

"my_datetime": {
    "type": "mockingbird.datetimeRecent"
}

datetimeBetween

Uses Faker.js date.between to generate a time between two boundaries, formats it as an ISO Date Time string (using toISOString()) with precision up to seconds.

Parameters

  • start: date string, start time boundary
  • end: date string, end time boundary

Returns

"2023-04-06T17:31:57"

Example usage

"date_between_boundaries": {
    "type": "mockingbird.datetimeBetween",
    "params": [
        {
            "start": "2020-01-01T00:00:00.000Z", 
            "end": "2030-01-01T00:00:00.000Z"
        }
    ]
}

timestampNow

Take the current time and formats it into an ISO Date Time string (using toISOString()) with precision to nanoseconds.

Parameters

None

Returns

2023-04-06T17:31:57.342Z

Example usage

"my_timestamp": {
    "type": "mockingbird.timestampNow"
}

browserName

A random browser name, from one of: “Chrome”, “Firefox”, “IE”, “Opera”.

Parameters

None

Returns

"Chrome"

Example usage

"my_browser": {
    "type": "mockingbird.browserName"
}

browserEngineName

A random browser engine name, from one of: “Blink”, “Gecko”, “Trident”.

Parameters

None

Returns

"Blink"

Example usage

"my_browser_engine": {
    "type": "mockingbird.browserEngineName"
}

osName

A random operating system name, from one of: “Linux”, “Windows”, “Mac OS”.

Parameters

None

Returns

"Mac OS"

Example usage

"my_operating_system": {
    "type": "mockingbird.osName"
}

searchEngineName

A random search engine name, from one of: “https://www.google.co.uk/”, “https://www.bing.com/”, “https://duckduckgo.com/”, “https://yandex.com/”, “https://yahoo.com”.

Parameters

None

Returns

"https://yahoo.com"

Example usage

"my_search_engine": {
    "type": "mockingbird.searchEngineName"
}

sequentialArray

Picks a value from an array sequentially, looping back to the start of the array when the end is reached.

Parameters

  • values: an array of values
  • iterations: number of iterations to return current value for

Returns

"state1"