UNPKG

random-world

Version:

Node.js module to generate random collections of data.

1,256 lines (862 loc) 31.7 kB
# Random World [![npm version](https://img.shields.io/npm/v/random-world.svg)](https://www.npmjs.com/package/random-world) A Node.js module for generating random data. Built for usage with mock servers, testing, and data generation pipelines. ## Installation ```bash npm install random-world ``` ## Quick Start ### As a Library ```javascript import random from 'random-world'; // Generate names random.names.fullname(); // "Jennifer Martinez" random.names.email(); // "john.smith@example.com" // Generate numbers random.numbers.integer({ min: 1, max: 100 }); // 42 // Generate network data random.network.ip(); // "192.168.1.45" random.network.mac(); // "a1:b2:c3:d4:e5:f6" // Generate UUIDs random.strings.uuid(); // "550e8400-e29b-41d4-a716-446655440000" // Generate company data random.company.name(); // "Global Technologies Inc" random.company.jobTitle(); // "Senior Developer" // Generate phone numbers random.phone.number(); // "(555) 123-4567" random.phone.imei(); // "353456789012345" // Generate colors random.colors.hex(); // "#FF5733" random.colors.name(); // "cornflowerblue" // Generate internet data random.internet.url(); // "http://www.example.com" random.internet.domain(); // "example.com" random.internet.username(); // "cool_ninja42" ``` ### As a CLI The CLI is built-in and replaces the old `random-world-cli` package. ```bash # Generate 10 random names random-world names.fullname -r 10 # Generate 5 IP addresses as JSON random-world network.ip -r 5 -f json # Generate integers with options random-world numbers.integer -o '{"min":1,"max":100}' -r 10 # Generate unique values only random-world names.firstname -r 20 -u ``` ## CLI Reference ``` Usage: random-world <method> [options] Options: -r, --repeat <n> Number of items to generate (default: 1) -f, --format <fmt> Output format: text, json, csv, sql (default: text) -u, --unique Generate unique values only -o, --options <json> JSON options to pass to the method -h, --help Show help message -v, --version Show version number ``` ### Output Formats | Format | Description | |--------|-------------| | `text` | Plain text, one value per line | | `json` | JSON array | | `csv` | Comma-separated values with header | | `sql` | SQL INSERT statements | ### Examples ```bash # Generate CSV of 100 email addresses random-world names.email -r 100 -f csv # Generate SQL inserts for cities random-world places.city -r 50 -f sql # Generate JSON array of credit card numbers random-world money.ccnumber -r 10 -f json # Generate unique UUIDs random-world strings.uuid -r 1000 -u -f json # Generate company names random-world company.name -r 20 # Generate phone numbers random-world phone.number -r 10 -f json # Generate hex colors random-world colors.hex -r 5 # Generate passwords random-world internet.password -o '{"length":24,"symbols":false}' -r 5 ``` --- ## Modules - [Names](#names) - [Network](#network) - [Numbers](#numbers) - [Strings](#strings) - [Places](#places) - [Dates](#dates) - [Geography](#geography) - [Money](#money) - [Files](#files) - [Phone](#phone) - [Company](#company) - [Colors](#colors) - [Internet](#internet) - [Collections](#collections) - [Truth](#truth) - [Object Parser](#object-parser) --- ### Names Generate random names, titles, and email addresses. #### `names.firstname(options)` Generate a random first name. | Option | Type | Description | |--------|------|-------------| | `gender` | `string` | Limit to `'male'`, `'female'`, or `'nonbinary'` | | `startsWith` | `string` | Filter names starting with substring | | `charCase` | `string` | Transform case: `'upper'` or `'lower'` | ```javascript random.names.firstname(); // "Emma" random.names.firstname({ gender: 'male' }); // "James" random.names.firstname({ startsWith: 'Ch' }); // "Charlotte" ``` #### `names.lastname(options)` Generate a random last name (surname). | Option | Type | Description | |--------|------|-------------| | `startsWith` | `string` | Filter names starting with substring | | `charCase` | `string` | Transform case: `'upper'` or `'lower'` | ```javascript random.names.lastname(); // "Johnson" random.names.lastname({ charCase: 'upper' }); // "WILLIAMS" ``` #### `names.fullname(options)` Generate a full name (first + last). Accepts same options as `firstname()`. ```javascript random.names.fullname(); // "Michael Davis" random.names.fullname({ gender: 'female' }); // "Sarah Thompson" ``` #### `names.title(options)` Generate a random title (Mr, Mrs, Dr, etc.). | Option | Type | Description | |--------|------|-------------| | `gender` | `string` | Limit to `'male'`, `'female'`, or `'nonbinary'` | ```javascript random.names.title(); // "Dr" random.names.title({ gender: 'nonbinary' }); // "Mx" ``` #### `names.email(options)` Generate a random email address. | Option | Type | Description | |--------|------|-------------| | `hasDot` | `boolean` | Include dot in name portion | | `hasPlusAddress` | `boolean` | Include plus addressing | | `charCase` | `string` | Transform case (defaults to `'lower'`) | | `standard` | `boolean` | Use standard TLDs only | ```javascript random.names.email(); // "johnsmith@example.com" random.names.email({ hasDot: true }); // "john.smith@example.com" random.names.email({ hasPlusAddress: true }); // "john+tag@example.com" ``` #### `names.suffix(options)` Generate a random post-nominal suffix (PhD, MBA, etc.). | Option | Type | Description | |--------|------|-------------| | `type` | `string` | Limit to `'doctorate'`, `'masters'`, or `'bachelors'` | ```javascript random.names.suffix(); // "MBA" random.names.suffix({ type: 'doctorate' }); // "PhD" random.names.suffix({ type: 'masters' }); // "MSc" ``` #### `names.middleName(options)` Generate a random middle name. Accepts same options as `firstname()`. ```javascript random.names.middleName(); // "Elizabeth" random.names.middleName({ gender: 'male' }); // "Robert" ``` --- ### Network Generate random network-related data. #### `network.ip(options)` Generate a random IPv4 address. | Option | Type | Description | |--------|------|-------------| | `mask` | `boolean` | Include CIDR notation | ```javascript random.network.ip(); // "192.168.45.12" random.network.ip({ mask: true }); // "10.0.0.1/24" ``` #### `network.ipv6()` Generate a random IPv6 address. ```javascript random.network.ipv6(); // "2001:0db8:85a3:0000:0000:8a2e:0370:7334" ``` #### `network.mac(options)` Generate a random MAC address. | Option | Type | Description | |--------|------|-------------| | `separator` | `string` | Separator character (default: `':'`) | | `uppercase` | `boolean` | Use uppercase hex (default: `false`) | ```javascript random.network.mac(); // "a1:b2:c3:d4:e5:f6" random.network.mac({ separator: '-' }); // "a1-b2-c3-d4-e5-f6" random.network.mac({ uppercase: true }); // "A1:B2:C3:D4:E5:F6" ``` #### `network.port(options)` Generate a random port number. | Option | Type | Description | |--------|------|-------------| | `type` | `string` | Port type: `'random'`, `'common'`, `'registered'`, `'dynamic'` | | `includeService` | `boolean` | Return object with service name (only for `'common'`) | ```javascript random.network.port(); // 45123 random.network.port({ type: 'common' }); // 443 random.network.port({ type: 'common', includeService: true }); // { port: 22, service: 'SSH' } random.network.port({ type: 'registered' }); // 8080 random.network.port({ type: 'dynamic' }); // 52341 ``` --- ### Numbers Generate random numbers. #### `numbers.integer(options)` Generate a random integer. | Option | Type | Description | |--------|------|-------------| | `min` | `number` | Minimum value (default: `0`) | | `max` | `number` | Maximum value (default: `10000000`) | | `round` | `boolean` | Round the value (default: `true`) | | `padding` | `number` | Zero-pad to specified length | | `asString` | `boolean` | Return as string | ```javascript random.numbers.integer(); // 4582391 random.numbers.integer({ min: 1, max: 10 }); // 7 random.numbers.integer({ padding: 5 }); // "00042" ``` #### `numbers.number(options)` Alias for `integer()`. #### `numbers.float(options)` Generate a random float. Same options as `integer()` but `round` defaults to `false`. ```javascript random.numbers.float({ min: 0, max: 1 }); // 0.7423891 ``` #### `numbers.sum(options)` Generate an array of numbers that sum to a target value. | Option | Type | Description | |--------|------|-------------| | `count` | `number` | Number of values to generate | | `max` | `number` | Target sum | ```javascript random.numbers.sum({ count: 5, max: 100 }); // [23, 18, 31, 15, 13] ``` --- ### Strings Generate random strings, words, and UUIDs. #### `strings.uuid()` Generate a UUID v4. ```javascript random.strings.uuid(); // "550e8400-e29b-41d4-a716-446655440000" ``` #### `strings.word(options)` Generate random dictionary word(s). | Option | Type | Description | |--------|------|-------------| | `limit` | `number` | Number of words (default: `1`) | | `delimiter` | `string` | Word separator (default: `'-'`) | | `charCase` | `string` | Transform case: `'upper'`, `'lower'`, `'sentence'` | ```javascript random.strings.word(); // "apple" random.strings.word({ limit: 3 }); // "apple-banana-orange" random.strings.word({ charCase: 'upper' }); // "EXAMPLE" ``` #### `strings.sentence()` Generate a random sentence from Lorem Ipsum text. ```javascript random.strings.sentence(); // "Lorem ipsum dolor sit amet" ``` #### `strings.random(options)` Generate a random string of characters. | Option | Type | Description | |--------|------|-------------| | `len` | `number` | String length (default: `16`) | | `chars` | `string` | Character set to use | ```javascript random.strings.random(); // "aB3kL9mN2pQrS5tU" random.strings.random({ len: 8, chars: '0123456789' }); // "48293751" ``` #### `strings.block(options)` Generate a block pattern string. | Option | Type | Description | |--------|------|-------------| | `blockSize` | `number` | Pattern of block sizes (default: `333`) | | `delimiter` | `string` | Block separator (default: `'-'`) | | `chars` | `string` | Character set | ```javascript random.strings.block(); // "ABC-DEF-GHI" random.strings.block({ blockSize: 4444 }); // "ABCD-EFGH-IJKL-MNOP" ``` #### `strings.hash(options)` Generate a random hash-like hex string. | Option | Type | Description | |--------|------|-------------| | `type` | `string` | Hash type: `'md5'`, `'sha1'`, `'sha256'`, `'sha512'` | | `length` | `number` | Custom length (overrides type) | ```javascript random.strings.hash(); // 64-char SHA256-style hash random.strings.hash({ type: 'md5' }); // 32-char MD5-style hash random.strings.hash({ length: 40 }); // 40-char hex string ``` #### `strings.slug(options)` Generate a random URL-friendly slug. | Option | Type | Description | |--------|------|-------------| | `wordCount` | `number` | Number of words (default: random 2-5) | | `separator` | `string` | Word separator (default: `'-'`) | ```javascript random.strings.slug(); // "quick-brown-fox" random.strings.slug({ wordCount: 3 }); // "hello-world-example" ``` --- ### Places Generate random location data. #### `places.city(options)` Generate a random city name. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | Restrict to specific country | ```javascript random.places.city(); // "New York" random.places.city({ country: 'UK' }); // "Manchester" ``` #### `places.country()` Generate a random country name. ```javascript random.places.country(); // "Canada" ``` #### `places.countrycode()` Generate a random ISO 2-letter country code. ```javascript random.places.countrycode(); // "US" ``` #### `places.street()` Generate a random street address. ```javascript random.places.street(); // "42 Oak Avenue" ``` #### `places.state(options)` Generate a random US state or Canadian province. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | `'US'` (default) or `'CA'` for Canada | | `abbreviated` | `boolean` | Return 2-letter abbreviation | | `full` | `boolean` | Return object with name and abbr | ```javascript random.places.state(); // "California" random.places.state({ abbreviated: true }); // "CA" random.places.state({ country: 'CA' }); // "Ontario" ``` #### `places.postalCode(options)` Generate a random postal/ZIP code. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | Country code (default: `'US'`) | ```javascript random.places.postalCode(); // "90210" random.places.postalCode({ country: 'CA' }); // "K1A 0B1" random.places.postalCode({ country: 'GB' }); // "SW1 1AA" ``` #### `places.fullAddress(options)` Generate a complete address string. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | Country code (default: `'US'`) | ```javascript random.places.fullAddress(); // "42 Oak Avenue, Springfield, IL, 62701" ``` --- ### Dates Generate random dates and times. #### `dates.now()` Get the current date/time. ```javascript random.dates.now(); // Date object ``` #### `dates.date(options)` Generate a random date. | Option | Type | Description | |--------|------|-------------| | `start` | `string` | Minimum date (UK format: DD/MM/YYYY) | | `end` | `string` | Maximum date (UK format: DD/MM/YYYY) | | `format` | `string` | Date format (default: `'UK'`) | ```javascript random.dates.date(); // Random Date object random.dates.date({ start: '01/01/2020', end: '31/12/2025' }); ``` #### `dates.unixtimestamp()` Generate a Unix timestamp. ```javascript random.dates.unixtimestamp(); // 1704067200 ``` #### `dates.year(options)` Generate a random year. Accepts same options as `date()`. ```javascript random.dates.year(); // 2019 ``` #### `dates.month(options)` Generate a random month name. | Option | Type | Description | |--------|------|-------------| | `short` | `boolean` | Return 3-character format | ```javascript random.dates.month(); // "September" random.dates.month({ short: true }); // "Sep" ``` #### `dates.dayofweek(options)` Generate a random day of the week. | Option | Type | Description | |--------|------|-------------| | `short` | `boolean` | Return 3-character format | ```javascript random.dates.dayofweek(); // "Wednesday" random.dates.dayofweek({ short: true }); // "Wed" ``` #### `dates.day(options)` Generate a random day of the month (1-31). Accepts same options as `date()`. ```javascript random.dates.day(); // 15 ``` #### `dates.time(options)` Generate a random time string in HH:MM:SS format. | Option | Type | Description | |--------|------|-------------| | `format24` | `boolean` | Use 24-hour format (default: `true`) | ```javascript random.dates.time(); // "14:32:07" ``` #### `dates.hour(options)` Generate a random hour. | Option | Type | Description | |--------|------|-------------| | `format24` | `boolean` | 24-hour format 0-23 (default: `true`) or 12-hour 1-12 | ```javascript random.dates.hour(); // 14 random.dates.hour({ format24: false }); // 9 ``` #### `dates.minute()` Generate a random minute (0-59). ```javascript random.dates.minute(); // 42 ``` #### `dates.second()` Generate a random second (0-59). ```javascript random.dates.second(); // 17 ``` #### `dates.isoDate(options)` Generate a random date in ISO 8601 format. | Option | Type | Description | |--------|------|-------------| | `includeTime` | `boolean` | Include time portion (default: `true`) | ```javascript random.dates.isoDate(); // "2023-07-15T14:32:07.000Z" random.dates.isoDate({ includeTime: false }); // "2023-07-15" ``` #### `dates.timezone()` Generate a random timezone identifier. ```javascript random.dates.timezone(); // "America/New_York" ``` --- ### Geography Generate random geographical coordinates. #### `geo.latlong()` Generate a random latitude/longitude pair. ```javascript random.geo.latlong(); // { lat: 45.123456, long: -93.654321 } ``` #### `geo.lat()` Generate a random latitude. ```javascript random.geo.lat(); // 45.123456 ``` #### `geo.long()` Generate a random longitude. ```javascript random.geo.long(); // -93.654321 ``` --- ### Money Generate random credit card and financial data. #### `money.ccnumber(options)` Generate a valid credit card number (Luhn-checked). | Option | Type | Description | |--------|------|-------------| | `shortName` | `string` | Card type code | | `hasHyphens` | `boolean` | Format with hyphens | ```javascript random.money.ccnumber(); // "4532015112830366" random.money.ccnumber({ hasHyphens: true }); // "4532-0151-1283-0366" random.money.ccnumber({ shortName: 'V' }); // Visa card number ``` **Supported Card Types:** | Card Type | 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` | #### `money.cctype()` Generate a random card type name. ```javascript random.money.cctype(); // "MasterCard" ``` #### `money.ccexpiry()` Generate a random expiry date (MM/YY). ```javascript random.money.ccexpiry(); // "09/27" ``` #### `money.ccstart()` Generate a random start date (MM/YY). ```javascript random.money.ccstart(); // "03/22" ``` #### `money.cvv()` Generate a random 3-digit CVV. ```javascript random.money.cvv(); // "847" ``` #### `money.cv2()` Alias for `cvv()`. --- ### Files Generate random file-related data. #### `files.extension(options)` Generate a random file extension. | Option | Type | Description | |--------|------|-------------| | `includeDot` | `boolean` | Include leading dot | ```javascript random.files.extension(); // "png" random.files.extension({ includeDot: true }); // ".jpg" ``` #### `files.filename(options)` Generate a random filename. | Option | Type | Description | |--------|------|-------------| | `extension` | `string` | Specific extension to use | | `includeExtension` | `boolean` | Include extension (default: `true`) | ```javascript random.files.filename(); // "report_2023.pdf" random.files.filename({ extension: 'txt' }); // "notes.txt" random.files.filename({ includeExtension: false }); // "document" ``` #### `files.filepath(options)` Generate a random file path. | Option | Type | Description | |--------|------|-------------| | `platform` | `string` | `'unix'` (default) or `'windows'` | | `depth` | `number` | Directory depth (default: random 1-5) | ```javascript random.files.filepath(); // "/home/data/documents/report.pdf" random.files.filepath({ platform: 'windows' }); // "C:\\Users\\data\\file.docx" random.files.filepath({ depth: 2 }); // "/var/log/app.log" ``` --- ### Phone Generate random phone-related data. #### `phone.number(options)` Generate a random phone number. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | Country code (default: `'US'`) | | `formatted` | `boolean` | Format with separators (default: `true`) | | `length` | `number` | Raw digit count when unformatted | ```javascript random.phone.number(); // "(555) 123-4567" random.phone.number({ country: 'GB' }); // "0207 123 4567" random.phone.number({ formatted: false }); // "5551234567" ``` #### `phone.areaCode(options)` Generate a random area code. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | Country code (default: `'US'`) | ```javascript random.phone.areaCode(); // "415" random.phone.areaCode({ country: 'US' }); // "212" ``` #### `phone.countryCode(options)` Generate a random international dialing code. | Option | Type | Description | |--------|------|-------------| | `country` | `string` | Specific country code | ```javascript random.phone.countryCode(); // "+44" random.phone.countryCode({ country: 'US' }); // "+1" random.phone.countryCode({ country: 'JP' }); // "+81" ``` #### `phone.imei()` Generate a random 15-digit IMEI number with valid Luhn checksum. ```javascript random.phone.imei(); // "353456789012345" ``` --- ### Company Generate random company and business data. #### `company.name(options)` Generate a random company name. | Option | Type | Description | |--------|------|-------------| | `includeSuffix` | `boolean` | Include LLC, Inc, etc. (default: `true`) | | `style` | `string` | `'combined'`, `'prefix'`, `'root'`, or `'person'` | ```javascript random.company.name(); // "Global Technologies Inc" random.company.name({ includeSuffix: false }); // "Apex Solutions" random.company.name({ style: 'person' }); // "Smith & Associates" ``` #### `company.suffix()` Generate a random company suffix. ```javascript random.company.suffix(); // "LLC" ``` #### `company.industry()` Generate a random industry/sector name. ```javascript random.company.industry(); // "Healthcare" ``` #### `company.department()` Generate a random department name. ```javascript random.company.department(); // "Engineering" ``` #### `company.catchPhrase()` Generate a random business catch phrase. ```javascript random.company.catchPhrase(); // "Leverage scalable synergies" ``` #### `company.jobTitle(options)` Generate a random job title. | Option | Type | Description | |--------|------|-------------| | `level` | `string` | `'executive'`, `'management'`, or `'individual'` | | `includeDepartment` | `boolean` | Include department context | ```javascript random.company.jobTitle(); // "Senior Developer" random.company.jobTitle({ level: 'executive' }); // "Chief Technology Officer" random.company.jobTitle({ level: 'management' }); // "Director" ``` --- ### Colors Generate random color data. #### `colors.hex(options)` Generate a random hex color. | Option | Type | Description | |--------|------|-------------| | `includeHash` | `boolean` | Include # prefix (default: `true`) | ```javascript random.colors.hex(); // "#FF5733" random.colors.hex({ includeHash: false }); // "A1B2C3" ``` #### `colors.rgb(options)` Generate a random RGB color. | Option | Type | Description | |--------|------|-------------| | `format` | `string` | `'object'` (default) or `'string'` | ```javascript random.colors.rgb(); // { r: 255, g: 128, b: 64 } random.colors.rgb({ format: 'string' }); // "rgb(255, 128, 64)" ``` #### `colors.hsl(options)` Generate a random HSL color. | Option | Type | Description | |--------|------|-------------| | `format` | `string` | `'object'` (default) or `'string'` | ```javascript random.colors.hsl(); // { h: 240, s: 50, l: 75 } random.colors.hsl({ format: 'string' }); // "hsl(240, 50%, 75%)" ``` #### `colors.name(options)` Generate a random CSS color name. | Option | Type | Description | |--------|------|-------------| | `includeHex` | `boolean` | Return object with hex value | ```javascript random.colors.name(); // "cornflowerblue" random.colors.name({ includeHex: true }); // { name: "coral", hex: "#FF7F50" } ``` --- ### Internet Generate random internet-related data (application layer). #### `internet.url(options)` Generate a random URL. | Option | Type | Description | |--------|------|-------------| | `protocol` | `string` | Protocol to use (default: `'http'`) | | `port` | `number\|string` | Port number, `'common'` for service port, or `'random'` | ```javascript random.internet.url(); // "http://www.example.com" random.internet.url({ protocol: 'https' }); // "https://www.example.com" random.internet.url({ port: 8080 }); // "http://www.example.com:8080" random.internet.url({ port: 'common' }); // "http://www.example.com:443" random.internet.url({ port: 'random' }); // "http://www.example.com:52341" ``` #### `internet.domain(options)` Generate a random domain name. | Option | Type | Description | |--------|------|-------------| | `standard` | `boolean` | Use standard TLDs only (default: `true`) | ```javascript random.internet.domain(); // "example.com" random.internet.domain({ standard: false }); // "example.photography" ``` #### `internet.tld(options)` Generate a random top-level domain. | Option | Type | Description | |--------|------|-------------| | `standard` | `boolean` | Standard TLDs only (default: `true`) | | `includeDot` | `boolean` | Include leading dot (default: `true`) | ```javascript random.internet.tld(); // ".com" random.internet.tld({ includeDot: false }); // "org" ``` #### `internet.username(options)` Generate a random username. | Option | Type | Description | |--------|------|-------------| | `style` | `string` | `'mixed'`, `'adjective_noun'`, `'name_number'`, or `'random'` | | `length` | `number` | Length for random style | ```javascript random.internet.username(); // "cool_ninja42" random.internet.username({ style: 'adjective_noun' }); // "swift_eagle" random.internet.username({ style: 'name_number' }); // "john4521" ``` #### `internet.password(options)` Generate a random password. | Option | Type | Description | |--------|------|-------------| | `length` | `number` | Password length (default: `16`) | | `uppercase` | `boolean` | Include uppercase (default: `true`) | | `lowercase` | `boolean` | Include lowercase (default: `true`) | | `numbers` | `boolean` | Include numbers (default: `true`) | | `symbols` | `boolean` | Include symbols (default: `true`) | ```javascript random.internet.password(); // "Kj8#mNp2$qRs5tUv" random.internet.password({ length: 32 }); // 32-char password random.internet.password({ symbols: false }); // "Kj8mNp2qRs5tUvWx" ``` #### `internet.userAgent()` Generate a random browser user agent string. ```javascript random.internet.userAgent(); // "Mozilla/5.0 (Windows NT 10.0; Win64; x64)..." ``` #### `internet.port(options)` Convenience alias for `network.port()`. See [network.port](#networkportoptions) for full documentation. ```javascript random.internet.port(); // 8080 random.internet.port({ type: 'common' }); // 443 ``` #### `internet.httpMethod()` Generate a random HTTP method. ```javascript random.internet.httpMethod(); // "POST" ``` #### `internet.httpStatusCode(options)` Generate a random HTTP status code. | Option | Type | Description | |--------|------|-------------| | `type` | `string` | `'informational'`, `'success'`, `'redirection'`, `'clientError'`, `'serverError'` | | `includeMessage` | `boolean` | Return object with message | ```javascript random.internet.httpStatusCode(); // 200 random.internet.httpStatusCode({ type: 'clientError' }); // 404 random.internet.httpStatusCode({ includeMessage: true }); // { code: 200, message: "OK" } ``` #### `internet.mimeType()` Generate a random MIME type. ```javascript random.internet.mimeType(); // "application/json" ``` --- ### Collections Generate random arrays and pick from lists. #### `collections.array(options)` Generate an array of random numbers. | Option | Type | Description | |--------|------|-------------| | `limit` | `number` | Array length (default: random 1-12) | ```javascript random.collections.array(); // [45, 123, 78, 201, 34] random.collections.array({ limit: 5 }); // [12, 89, 156, 23, 67] ``` #### `collections.pickone(options)` Pick a random item from a delimited string. | Option | Type | Description | |--------|------|-------------| | `items` | `string` | Delimited list of items | | `delimiter` | `string` | Delimiter (default: `'|'`) | ```javascript random.collections.pickone({ items: 'red|green|blue' }); // "green" random.collections.pickone({ items: 'a,b,c', delimiter: ',' }); // "b" ``` --- ### Truth Generate random boolean values. #### `truth.boolean()` Generate a random boolean. ```javascript random.truth.boolean(); // true ``` --- ### Object Parser Generate data from object templates with placeholder tokens. #### `object.fromObject(methods, template)` Parse an object template and replace placeholders with random values. ```javascript const template = { type: 'object', struct: { name: '$fullname', age: '$integer{"min": 18, "max": 65}', email: '$email', active: '$boolean' } }; random.object.fromObject(random, template); // { name: "John Smith", age: 34, email: "jane@example.com", active: true } ``` Use `$$` prefix to lock a value across multiple references in the same record. --- ## Programmatic Bulk Generation For generating multiple records programmatically: ```javascript import { generateBulk, generateRecords } from 'random-world/lib/bulk.js'; import random from 'random-world'; // Generate 100 names const names = generateBulk( () => random.names.fullname(), 100, { unique: true } ); // Generate structured records const users = generateRecords( { id: () => random.strings.uuid(), name: () => random.names.fullname(), email: () => random.names.email(), age: () => random.numbers.integer({ min: 18, max: 80 }) }, 50 ); ``` --- ## Requirements - Node.js >= 18.0.0 ## Running Tests ```bash npm test ``` ## License MIT