616 lines
21 KiB
JavaScript
616 lines
21 KiB
JavaScript
var faker = require('faker/locale/en'),
|
|
uuid = require('uuid'),
|
|
|
|
// locale list generated from: https://github.com/chromium/chromium/blob/master/ui/base/l10n/l10n_util.cc
|
|
LOCALES = ['af', 'am', 'an', 'ar', 'ast', 'az', 'be', 'bg', 'bh', 'bn', 'br', 'bs', 'ca', 'ceb', 'ckb', 'co', 'cs',
|
|
'cy', 'da', 'de', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fil', 'fo', 'fr', 'fy', 'ga', 'gd', 'gl',
|
|
'gn', 'gu', 'ha', 'haw', 'he', 'hi', 'hmn', 'hr', 'ht', 'hu', 'hy', 'ia', 'id', 'ig', 'is', 'it', 'ja', 'jv',
|
|
'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'la', 'lb', 'ln', 'lo', 'lt', 'lv', 'mg', 'mi', 'mk', 'ml', 'mn',
|
|
'mo', 'mr', 'ms', 'mt', 'my', 'nb', 'ne', 'nl', 'nn', 'no', 'ny', 'oc', 'om', 'or', 'pa', 'pl', 'ps', 'pt',
|
|
'qu', 'rm', 'ro', 'ru', 'sd', 'sh', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr', 'st', 'su', 'sv', 'sw',
|
|
'ta', 'te', 'tg', 'th', 'ti', 'tk', 'to', 'tr', 'tt', 'tw', 'ug', 'uk', 'ur', 'uz', 'vi', 'wa', 'xh', 'yi',
|
|
'yo', 'zh', 'zu'],
|
|
|
|
// paths for directories
|
|
DIRECTORY_PATHS = [
|
|
'/Applications',
|
|
'/bin',
|
|
'/boot',
|
|
'/boot/defaults',
|
|
'/dev',
|
|
'/etc',
|
|
'/etc/defaults',
|
|
'/etc/mail',
|
|
'/etc/namedb',
|
|
'/etc/periodic',
|
|
'/etc/ppp',
|
|
'/home',
|
|
'/home/user',
|
|
'/home/user/dir',
|
|
'/lib',
|
|
'/Library',
|
|
'/lost+found',
|
|
'/media',
|
|
'/mnt',
|
|
'/net',
|
|
'/Network',
|
|
'/opt',
|
|
'/opt/bin',
|
|
'/opt/include',
|
|
'/opt/lib',
|
|
'/opt/sbin',
|
|
'/opt/share',
|
|
'/private',
|
|
'/private/tmp',
|
|
'/private/var',
|
|
'/proc',
|
|
'/rescue',
|
|
'/root',
|
|
'/sbin',
|
|
'/selinux',
|
|
'/srv',
|
|
'/sys',
|
|
'/System',
|
|
'/tmp',
|
|
'/Users',
|
|
'/usr',
|
|
'/usr/X11R6',
|
|
'/usr/bin',
|
|
'/usr/include',
|
|
'/usr/lib',
|
|
'/usr/libdata',
|
|
'/usr/libexec',
|
|
'/usr/local/bin',
|
|
'/usr/local/src',
|
|
'/usr/obj',
|
|
'/usr/ports',
|
|
'/usr/sbin',
|
|
'/usr/share',
|
|
'/usr/src',
|
|
'/var',
|
|
'/var/log',
|
|
'/var/mail',
|
|
'/var/spool',
|
|
'/var/tmp',
|
|
'/var/yp'
|
|
],
|
|
|
|
// generators for $random* variables
|
|
dynamicGenerators = {
|
|
$guid: {
|
|
description: 'A v4 style guid',
|
|
generator: function () {
|
|
return uuid.v4();
|
|
}
|
|
},
|
|
|
|
$timestamp: {
|
|
description: 'The current timestamp',
|
|
generator: function () {
|
|
return Math.round(Date.now() / 1000);
|
|
}
|
|
},
|
|
|
|
$isoTimestamp: {
|
|
description: 'The current ISO timestamp at zero UTC',
|
|
generator: function () {
|
|
return new Date().toISOString();
|
|
}
|
|
},
|
|
|
|
$randomInt: {
|
|
description: 'A random integer between 0 and 1000',
|
|
generator: function () {
|
|
return ~~(Math.random() * (1000 + 1));
|
|
}
|
|
},
|
|
|
|
// faker.phone.phoneNumber returns phone number with or without
|
|
// extension randomly. this only returns a phone number without extension.
|
|
$randomPhoneNumber: {
|
|
description: 'A random 10-digit phone number',
|
|
generator: function () {
|
|
return faker.phone.phoneNumberFormat(0);
|
|
}
|
|
},
|
|
|
|
// faker.phone.phoneNumber returns phone number with or without
|
|
// extension randomly. this only returns a phone number with extension.
|
|
$randomPhoneNumberExt: {
|
|
description: 'A random phone number with extension (12 digits)',
|
|
generator: function () {
|
|
return faker.datatype.number({ min: 1, max: 99 }) + '-' + faker.phone.phoneNumberFormat(0);
|
|
}
|
|
},
|
|
|
|
// faker's random.locale only returns 'en'. this returns from a list of
|
|
// random locales
|
|
$randomLocale: {
|
|
description: 'A random two-letter language code (ISO 639-1)',
|
|
generator: function () {
|
|
return faker.random.arrayElement(LOCALES);
|
|
}
|
|
},
|
|
|
|
// fakers' random.words returns random number of words between 1, 3.
|
|
// this returns number of words between 2, 5.
|
|
$randomWords: {
|
|
description: 'Some random words',
|
|
generator: function () {
|
|
var words = [],
|
|
count = faker.datatype.number({ min: 2, max: 5 }),
|
|
i;
|
|
|
|
for (i = 0; i < count; i++) {
|
|
words.push(faker.random.word());
|
|
}
|
|
|
|
return words.join(' ');
|
|
}
|
|
},
|
|
|
|
// faker's system.filePath retuns nothing. this returns a path for a file.
|
|
$randomFilePath: {
|
|
description: 'A random file path',
|
|
generator: function () {
|
|
return dynamicGenerators.$randomDirectoryPath.generator() + '/' + faker.system.fileName();
|
|
}
|
|
},
|
|
|
|
// faker's system.directoryPath retuns nothing. this returns a path for
|
|
// a directory.
|
|
$randomDirectoryPath: {
|
|
description: 'A random directory path',
|
|
generator: function () {
|
|
return faker.random.arrayElement(DIRECTORY_PATHS);
|
|
}
|
|
},
|
|
|
|
$randomCity: {
|
|
description: 'A random city name',
|
|
generator: faker.address.city
|
|
},
|
|
$randomStreetName: {
|
|
description: 'A random street name',
|
|
generator: faker.address.streetName
|
|
},
|
|
$randomStreetAddress: {
|
|
description: 'A random street address (e.g. 1234 Main Street)',
|
|
generator: faker.address.streetAddress
|
|
},
|
|
$randomCountry: {
|
|
description: 'A random country',
|
|
generator: faker.address.country
|
|
},
|
|
$randomCountryCode: {
|
|
description: 'A random 2-letter country code (ISO 3166-1 alpha-2)',
|
|
generator: faker.address.countryCode
|
|
},
|
|
$randomLatitude: {
|
|
description: 'A random latitude coordinate',
|
|
generator: faker.address.latitude
|
|
},
|
|
$randomLongitude: {
|
|
description: 'A random longitude coordinate',
|
|
generator: faker.address.longitude
|
|
},
|
|
|
|
$randomColor: {
|
|
description: 'A random color',
|
|
generator: faker.commerce.color
|
|
},
|
|
$randomDepartment: {
|
|
description: 'A random commerce category (e.g. electronics, clothing)',
|
|
generator: faker.commerce.department
|
|
},
|
|
$randomProductName: {
|
|
description: 'A random product name (e.g. handmade concrete tuna)',
|
|
generator: faker.commerce.productName
|
|
},
|
|
$randomProductAdjective: {
|
|
description: 'A random product adjective (e.g. tasty, eco-friendly)',
|
|
generator: faker.commerce.productAdjective
|
|
},
|
|
$randomProductMaterial: {
|
|
description: 'A random product material (e.g. steel, plastic, leather)',
|
|
generator: faker.commerce.productMaterial
|
|
},
|
|
$randomProduct: {
|
|
description: 'A random product (e.g. shoes, table, chair)',
|
|
generator: faker.commerce.product
|
|
},
|
|
|
|
$randomCompanyName: {
|
|
description: 'A random company name',
|
|
generator: faker.company.companyName
|
|
},
|
|
$randomCompanySuffix: {
|
|
description: 'A random company suffix (e.g. Inc, LLC, Group)',
|
|
generator: faker.company.companySuffix
|
|
},
|
|
$randomCatchPhrase: {
|
|
description: 'A random catchphrase',
|
|
generator: faker.company.catchPhrase
|
|
},
|
|
$randomBs: {
|
|
description: 'A random phrase of business speak',
|
|
generator: faker.company.bs
|
|
},
|
|
$randomCatchPhraseAdjective: {
|
|
description: 'A random catchphrase adjective',
|
|
generator: faker.company.catchPhraseAdjective
|
|
},
|
|
$randomCatchPhraseDescriptor: {
|
|
description: 'A random catchphrase descriptor',
|
|
generator: faker.company.catchPhraseDescriptor
|
|
},
|
|
$randomCatchPhraseNoun: {
|
|
description: 'Randomly generates a catchphrase noun',
|
|
generator: faker.company.catchPhraseNoun
|
|
},
|
|
$randomBsAdjective: {
|
|
description: 'A random business speak adjective',
|
|
generator: faker.company.bsAdjective
|
|
},
|
|
$randomBsBuzz: {
|
|
description: 'A random business speak buzzword',
|
|
generator: faker.company.bsBuzz
|
|
},
|
|
$randomBsNoun: {
|
|
description: 'A random business speak noun',
|
|
generator: faker.company.bsNoun
|
|
},
|
|
|
|
$randomDatabaseColumn: {
|
|
description: 'A random database column name (e.g. updatedAt, token, group)',
|
|
generator: faker.database.column
|
|
},
|
|
$randomDatabaseType: {
|
|
description: 'A random database type (e.g. tiny int, double, point)',
|
|
generator: faker.database.type
|
|
},
|
|
$randomDatabaseCollation: {
|
|
description: 'A random database collation (e.g. cp1250_bin)',
|
|
generator: faker.database.collation
|
|
},
|
|
$randomDatabaseEngine: {
|
|
description: 'A random database engine (e.g. Memory, Archive, InnoDB)',
|
|
generator: faker.database.engine
|
|
},
|
|
|
|
$randomDatePast: {
|
|
description: 'A random past datetime',
|
|
generator: faker.date.past
|
|
},
|
|
$randomDateFuture: {
|
|
description: 'A random future datetime',
|
|
generator: faker.date.future
|
|
},
|
|
$randomDateRecent: {
|
|
description: 'A random recent datetime',
|
|
generator: faker.date.recent
|
|
},
|
|
$randomMonth: {
|
|
description: 'A random month',
|
|
generator: faker.date.month
|
|
},
|
|
$randomWeekday: {
|
|
description: 'A random weekday',
|
|
generator: faker.date.weekday
|
|
},
|
|
|
|
$randomBankAccount: {
|
|
description: 'A random 8-digit bank account number',
|
|
generator: faker.finance.account
|
|
},
|
|
$randomBankAccountName: {
|
|
description: 'A random bank account name (e.g. savings account, checking account)',
|
|
generator: faker.finance.accountName
|
|
},
|
|
$randomCreditCardMask: {
|
|
description: 'A random masked credit card number',
|
|
generator: faker.finance.mask
|
|
},
|
|
$randomPrice: {
|
|
description: 'A random price between 0.00 and 1000.00',
|
|
generator: faker.finance.amount
|
|
},
|
|
$randomTransactionType: {
|
|
description: 'A random transaction type (e.g. invoice, payment, deposit)',
|
|
generator: faker.finance.transactionType
|
|
},
|
|
$randomCurrencyCode: {
|
|
description: 'A random 3-letter currency code (ISO-4217)',
|
|
generator: faker.finance.currencyCode
|
|
},
|
|
$randomCurrencyName: {
|
|
description: 'A random currency name',
|
|
generator: faker.finance.currencyName
|
|
},
|
|
$randomCurrencySymbol: {
|
|
description: 'A random currency symbol',
|
|
generator: faker.finance.currencySymbol
|
|
},
|
|
$randomBitcoin: {
|
|
description: 'A random bitcoin address',
|
|
generator: faker.finance.bitcoinAddress
|
|
},
|
|
$randomBankAccountIban: {
|
|
description: 'A random 15-31 character IBAN (International Bank Account Number)',
|
|
generator: faker.finance.iban
|
|
},
|
|
$randomBankAccountBic: {
|
|
description: 'A random BIC (Bank Identifier Code)',
|
|
generator: faker.finance.bic
|
|
},
|
|
|
|
$randomAbbreviation: {
|
|
description: 'A random abbreviation',
|
|
generator: faker.hacker.abbreviation
|
|
},
|
|
$randomAdjective: {
|
|
description: 'A random adjective',
|
|
generator: faker.hacker.adjective
|
|
},
|
|
$randomNoun: {
|
|
description: 'A random noun',
|
|
generator: faker.hacker.noun
|
|
},
|
|
$randomVerb: {
|
|
description: 'A random verb',
|
|
generator: faker.hacker.verb
|
|
},
|
|
$randomIngverb: {
|
|
description: 'A random verb ending in “-ing”',
|
|
generator: faker.hacker.ingverb
|
|
},
|
|
$randomPhrase: {
|
|
description: 'A random phrase',
|
|
generator: faker.hacker.phrase
|
|
},
|
|
|
|
$randomAvatarImage: {
|
|
description: 'A random avatar image',
|
|
generator: faker.image.avatar
|
|
},
|
|
$randomImageUrl: {
|
|
description: 'A URL for a random image',
|
|
generator: faker.image.imageUrl
|
|
},
|
|
$randomAbstractImage: {
|
|
description: 'A URL for a random abstract image',
|
|
generator: faker.image.abstract
|
|
},
|
|
$randomAnimalsImage: {
|
|
description: 'A URL for a random animal image',
|
|
generator: faker.image.animals
|
|
},
|
|
$randomBusinessImage: {
|
|
description: 'A URL for a random stock business image',
|
|
generator: faker.image.business
|
|
},
|
|
$randomCatsImage: {
|
|
description: 'A URL for a random cat image',
|
|
generator: faker.image.cats
|
|
},
|
|
$randomCityImage: {
|
|
description: 'A URL for a random city image',
|
|
generator: faker.image.city
|
|
},
|
|
$randomFoodImage: {
|
|
description: 'A URL for a random food image',
|
|
generator: faker.image.food
|
|
},
|
|
$randomNightlifeImage: {
|
|
description: 'A URL for a random nightlife image',
|
|
generator: faker.image.nightlife
|
|
},
|
|
$randomFashionImage: {
|
|
description: 'A URL for a random fashion image',
|
|
generator: faker.image.fashion
|
|
},
|
|
$randomPeopleImage: {
|
|
description: 'A URL for a random image of a person',
|
|
generator: faker.image.people
|
|
},
|
|
$randomNatureImage: {
|
|
description: 'A URL for a random nature image',
|
|
generator: faker.image.nature
|
|
},
|
|
$randomSportsImage: {
|
|
description: 'A URL for a random sports image',
|
|
generator: faker.image.sports
|
|
},
|
|
$randomTransportImage: {
|
|
description: 'A URL for a random transportation image',
|
|
generator: faker.image.transport
|
|
},
|
|
$randomImageDataUri: {
|
|
description: 'A random image data URI',
|
|
generator: faker.image.dataUri
|
|
},
|
|
|
|
$randomEmail: {
|
|
description: 'A random email address',
|
|
generator: faker.internet.email
|
|
},
|
|
$randomExampleEmail: {
|
|
description: 'A random email address from an “example” domain (e.g. ben@example.com)',
|
|
generator: faker.internet.exampleEmail
|
|
},
|
|
$randomUserName: {
|
|
description: 'A random username',
|
|
generator: faker.internet.userName
|
|
},
|
|
$randomProtocol: {
|
|
description: 'A random internet protocol',
|
|
generator: faker.internet.protocol
|
|
},
|
|
$randomUrl: {
|
|
description: 'A random URL',
|
|
generator: faker.internet.url
|
|
},
|
|
$randomDomainName: {
|
|
description: 'A random domain name (e.g. gracie.biz, trevor.info)',
|
|
generator: faker.internet.domainName
|
|
},
|
|
$randomDomainSuffix: {
|
|
description: 'A random domain suffix (e.g. .com, .net, .org)',
|
|
generator: faker.internet.domainSuffix
|
|
},
|
|
$randomDomainWord: {
|
|
description: 'A random unqualified domain name (a name with no dots)',
|
|
generator: faker.internet.domainWord
|
|
},
|
|
$randomIP: {
|
|
description: 'A random IPv4 address',
|
|
generator: faker.internet.ip
|
|
},
|
|
$randomIPV6: {
|
|
description: 'A random IPv6 address',
|
|
generator: faker.internet.ipv6
|
|
},
|
|
$randomUserAgent: {
|
|
description: 'A random user agent',
|
|
generator: faker.internet.userAgent
|
|
},
|
|
$randomHexColor: {
|
|
description: 'A random hex value',
|
|
generator: faker.internet.color
|
|
},
|
|
$randomMACAddress: {
|
|
description: 'A random MAC address',
|
|
generator: faker.internet.mac
|
|
},
|
|
$randomPassword: {
|
|
description: 'A random 15-character alpha-numeric password',
|
|
generator: faker.internet.password
|
|
},
|
|
|
|
$randomLoremWord: {
|
|
description: 'A random word of lorem ipsum text',
|
|
generator: faker.lorem.word
|
|
},
|
|
$randomLoremWords: {
|
|
description: 'Some random words of lorem ipsum text',
|
|
generator: faker.lorem.words
|
|
},
|
|
$randomLoremSentence: {
|
|
description: 'A random sentence of lorem ipsum text',
|
|
generator: faker.lorem.sentence
|
|
},
|
|
$randomLoremSlug: {
|
|
description: 'A random lorem ipsum URL slug',
|
|
generator: faker.lorem.slug
|
|
},
|
|
$randomLoremSentences: {
|
|
description: 'A random 2-6 sentences of lorem ipsum text',
|
|
generator: faker.lorem.sentences
|
|
},
|
|
$randomLoremParagraph: {
|
|
description: 'A random paragraph of lorem ipsum text',
|
|
generator: faker.lorem.paragraph
|
|
},
|
|
$randomLoremParagraphs: {
|
|
description: '3 random paragraphs of lorem ipsum text',
|
|
generator: faker.lorem.paragraphs
|
|
},
|
|
$randomLoremText: {
|
|
description: 'A random amount of lorem ipsum text',
|
|
generator: faker.lorem.text
|
|
},
|
|
$randomLoremLines: {
|
|
description: '1-5 random lines of lorem ipsum',
|
|
generator: faker.lorem.lines
|
|
},
|
|
|
|
$randomFirstName: {
|
|
description: 'A random first name',
|
|
generator: faker.name.firstName
|
|
},
|
|
$randomLastName: {
|
|
description: 'A random last name',
|
|
generator: faker.name.lastName
|
|
},
|
|
$randomFullName: {
|
|
description: 'A random first and last name',
|
|
generator: faker.name.findName
|
|
},
|
|
$randomJobTitle: {
|
|
description: 'A random job title (e.g. senior software developer)',
|
|
generator: faker.name.jobTitle
|
|
},
|
|
$randomNamePrefix: {
|
|
description: 'A random name prefix (e.g. Mr., Mrs., Dr.)',
|
|
generator: faker.name.prefix
|
|
},
|
|
$randomNameSuffix: {
|
|
description: 'A random name suffix (e.g. Jr., MD, PhD)',
|
|
generator: faker.name.suffix
|
|
},
|
|
$randomJobDescriptor: {
|
|
description: 'A random job descriptor (e.g., senior, chief, corporate, etc.)',
|
|
generator: faker.name.jobDescriptor
|
|
},
|
|
$randomJobArea: {
|
|
description: 'A random job area (e.g. branding, functionality, usability)',
|
|
generator: faker.name.jobArea
|
|
},
|
|
$randomJobType: {
|
|
description: 'A random job type (e.g. supervisor, manager, coordinator, etc.)',
|
|
generator: faker.name.jobType
|
|
},
|
|
|
|
$randomUUID: {
|
|
description: 'A random 36-character UUID',
|
|
generator: faker.datatype.uuid
|
|
},
|
|
$randomBoolean: {
|
|
description: 'A random boolean value (true/false)',
|
|
generator: faker.datatype.boolean
|
|
},
|
|
$randomWord: {
|
|
description: 'A random word',
|
|
generator: faker.random.word
|
|
},
|
|
$randomAlphaNumeric: {
|
|
description: 'A random alpha-numeric character',
|
|
generator: faker.random.alphaNumeric
|
|
},
|
|
|
|
$randomFileName: {
|
|
description: 'A random file name (includes uncommon extensions)',
|
|
generator: faker.system.fileName
|
|
},
|
|
$randomCommonFileName: {
|
|
description: 'A random file name',
|
|
generator: faker.system.commonFileName
|
|
},
|
|
$randomMimeType: {
|
|
description: 'A random MIME type',
|
|
generator: faker.system.mimeType
|
|
},
|
|
$randomCommonFileType: {
|
|
description: 'A random, common file type (e.g., video, text, image, etc.)',
|
|
generator: faker.system.commonFileType
|
|
},
|
|
$randomCommonFileExt: {
|
|
description: 'A random, common file extension (.doc, .jpg, etc.)',
|
|
generator: faker.system.commonFileExt
|
|
},
|
|
$randomFileType: {
|
|
description: 'A random file type (includes uncommon file types)',
|
|
generator: faker.system.fileType
|
|
},
|
|
$randomFileExt: {
|
|
description: 'A random file extension (includes uncommon extensions)',
|
|
generator: faker.system.fileExt
|
|
},
|
|
$randomSemver: {
|
|
description: 'A random semantic version number',
|
|
generator: faker.system.semver
|
|
}
|
|
};
|
|
|
|
module.exports = dynamicGenerators;
|