faker
Advanced tools
Comparing version 2.1.5 to 3.0.0
@@ -22,4 +22,6 @@ /* | ||
var transform = require('vinyl-transform'); | ||
var path = require('path'); | ||
var fs = require('fs'); | ||
var through = require('through2') | ||
gulp.task('browser-package', function() { | ||
@@ -70,7 +72,20 @@ | ||
var API = ''; | ||
var API = '', LOCALES = ''; | ||
var faker = require('../index'); | ||
// generate locale list | ||
for (var locale in faker.locales) { | ||
LOCALES += ' * ' + locale + '\n'; | ||
} | ||
var keys = Object.keys(faker); | ||
keys = keys.sort(); | ||
// generate nice tree of api for docs | ||
for (var module in faker) { | ||
keys.forEach(function(module){ | ||
// ignore certain properties | ||
var ignore = ['locale', 'localeFallback', 'definitions', 'locales']; | ||
if (ignore.indexOf(module) !== -1) { | ||
return; | ||
} | ||
API += '* ' + module + '\n'; | ||
@@ -80,3 +95,3 @@ for (var method in faker[module]) { | ||
} | ||
} | ||
}); | ||
@@ -86,2 +101,3 @@ return gulp.src('./src/docs.md') | ||
'API': API, | ||
'LOCALES': LOCALES, | ||
'startYear': 2010, | ||
@@ -95,2 +111,55 @@ 'currentYear': new Date().getFullYear() | ||
gulp.task('default', ['browser-package', 'documentation']); | ||
var tasks = ['nodeLocalRequires', 'browser-package', 'documentation']; | ||
// var tasks = []; | ||
var locales = require('../lib/locales'); | ||
var localTasks = Object.keys(locales); | ||
/* task for generating unique browser builds for every locale */ | ||
Object.keys(locales).forEach(function(locale, i) { | ||
if (i > 0) { | ||
// return; | ||
} | ||
tasks.push(locale + 'Task'); | ||
gulp.task(locale + 'Task', function() { | ||
var browserified = transform(function(filename) { | ||
// use browserify to create UMD stand-alone browser package | ||
var b = browserify(filename, { | ||
standalone: 'faker' | ||
}); | ||
return b.bundle(); | ||
}); | ||
process.chdir('../locale/'); | ||
return gulp.src('./' + locale + '.js') | ||
.pipe(browserified) | ||
.pipe(rename('faker.' + locale + '.js')) | ||
.pipe(gulp.dest('../build/build/locales/' + locale)) | ||
.pipe(gulp.dest('../examples/browser/locales/' + locale + "/")) | ||
.pipe(rename({ extname: ".min.js" })) | ||
.pipe(uglify()) | ||
.pipe(gulp.dest('../build/build/locales/' + locale)) | ||
.pipe(gulp.dest('../examples/browser/locales/' + locale + '/')) | ||
.pipe(rename('../examples/browser/locales/' + locale + '/' + 'faker.' + locale + 'min.js')); | ||
}); | ||
}); | ||
gulp.task('nodeLocalRequires', function (cb){ | ||
var locales = require('../lib/locales'); | ||
for (var locale in locales) { | ||
var localeFile = path.normalize(__dirname + "/../locale/" + locale + ".js"); | ||
var localeRequire = ''; | ||
localeRequire += "var Faker = require('../lib');\n"; | ||
localeRequire += "var faker = new Faker({ locale: '" + locale + "', localeFallback: 'en' });\n"; | ||
// TODO: better fallback support | ||
localeRequire += "faker.locales['" + locale + "'] = require('../lib/locales/" + locale + "');\n"; | ||
localeRequire += "faker.locales['" + 'en' + "'] = require('../lib/locales/" + 'en' + "');\n"; | ||
localeRequire += "module['exports'] = faker;\n"; | ||
fs.writeFileSync(localeFile, localeRequire); | ||
} | ||
cb(); | ||
}); | ||
gulp.task('default', tasks); |
@@ -5,3 +5,3 @@ # faker.js - generate massive amounts of fake data in the browser and node.js | ||
[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/Faker.js) | ||
[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/faker.js) | ||
@@ -27,3 +27,3 @@ [![npm version](https://badge.fury.io/js/faker.svg)](http://badge.fury.io/js/faker) | ||
var faker = require('./faker'); | ||
var faker = require('faker'); | ||
@@ -34,17 +34,24 @@ var randomName = faker.name.findName(); // Rowan Nikolaus | ||
## Dependent tools | ||
## API | ||
### Fake JSON Schema | ||
### Faker.fake() | ||
Use faker generators to populate JSON Schema samples. | ||
See: https://github.com/pateketrueke/json-schema-faker/ | ||
As of version `v3.0.0` faker.js contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format. | ||
### CLI | ||
**Example:** | ||
Run faker generators from Command Line. | ||
See: https://github.com/lestoni/faker-cli | ||
``` js | ||
console.log(faker.fake('{{name.lastName}}, {{name.firstName}} {{name.suffix}}')); | ||
// outputs: "Marks, Dean Sr." | ||
``` | ||
This will interpolate the format string with the value of methods `name.lastName()`, `name.firstName()`, and `name.suffix()` | ||
### API Methods | ||
{{{API}}} | ||
## Localization | ||
As of version `v2.0.0` faker.js supports 27 different language definition packs. | ||
As of version `v2.0.0` faker.js supports over 27 different language definition packs. | ||
@@ -59,8 +66,18 @@ The default language is set to English. | ||
``` | ||
Read further for complete list of locales. | ||
## API | ||
{{LOCALES}} | ||
{{{API}}} | ||
### Individual Localization Packages | ||
As of vesion `v3.0.0` faker.js supports incremental loading of locales. | ||
By default, requiring `faker` will include *all* locale data. | ||
In a production environment, you may only want to include the locale data for a specific set of locales. | ||
```js | ||
// loads only de locale | ||
var faker = require('faker/locale/de'); | ||
``` | ||
## Tests | ||
@@ -73,2 +90,29 @@ | ||
## Projects Built with faker.js | ||
### Fake JSON Schema | ||
Use faker generators to populate JSON Schema samples. | ||
See: https://github.com/pateketrueke/json-schema-faker/ | ||
### CLI | ||
Run faker generators from Command Line. | ||
See: https://github.com/lestoni/faker-cli | ||
**Want to see your project added here? Let us know!** | ||
### Meteor | ||
#### Meteor installation | ||
meteor add practicalmeteor:faker | ||
#### meteor usage, both client and server | ||
var randomName = faker.name.findName(); // Rowan Nikolaus | ||
var randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz | ||
var randomCard = faker.helpers.createCard(); // random contact card containing many properties | ||
## Authors | ||
@@ -75,0 +119,0 @@ |
#CHANGELOG | ||
## v3.0.0 - v2.0.0 - Missing | ||
See commit history on Github for change history | ||
http://github.com/marak/faker.js | ||
## v2.0.0 | ||
@@ -4,0 +9,0 @@ |
77
index.js
@@ -1,73 +0,4 @@ | ||
/* | ||
this index.js file is used for including the faker library as a CommonJS module, instead of a bundle | ||
you can include the faker library into your existing node.js application by requiring the entire /faker directory | ||
var faker = require(./faker); | ||
var randomName = faker.name.findName(); | ||
you can also simply include the "faker.js" file which is the auto-generated bundled version of the faker library | ||
var faker = require(./customAppPath/faker); | ||
var randomName = faker.name.findName(); | ||
if you plan on modifying the faker library you should be performing your changes in the /lib/ directory | ||
*/ | ||
exports.name = require('./lib/name'); | ||
exports.address = require('./lib/address'); | ||
exports.phone = require('./lib/phone_number'); | ||
exports.internet = require('./lib/internet'); | ||
exports.company = require('./lib/company'); | ||
exports.image = require('./lib/image'); | ||
exports.lorem = require('./lib/lorem'); | ||
exports.helpers = require('./lib/helpers'); | ||
exports.date = require('./lib/date'); | ||
exports.random = require('./lib/random'); | ||
exports.finance = require('./lib/finance'); | ||
exports.hacker = require('./lib/hacker'); | ||
var locales = exports.locales = require('./lib/locales'); | ||
// default locale | ||
exports.locale = "en"; | ||
// in case a locale is missing a definition, fallback to this locale | ||
exports.localeFallback = "en"; | ||
exports.definitions = {}; | ||
var _definitions = { | ||
"name": ["first_name", "last_name", "prefix", "suffix", "title"], | ||
"address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "state", "state_abbr"], | ||
"company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb"], | ||
"lorem": ["words"], | ||
"hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb"], | ||
"phone_number": ["formats"], | ||
"finance": ["account_type", "transaction_type", "currency"], | ||
"internet": ["avatar_uri", "domain_suffix", "free_email", "password"] | ||
}; | ||
// Create a Getter for all definitions.foo.bar propetries | ||
Object.keys(_definitions).forEach(function(d){ | ||
if (typeof exports.definitions[d] === "undefined") { | ||
exports.definitions[d] = {}; | ||
} | ||
_definitions[d].forEach(function(p){ | ||
Object.defineProperty(exports.definitions[d], p, { | ||
get: function () { | ||
if (typeof locales[exports.locale][d] === "undefined" || typeof locales[exports.locale][d][p] === "undefined") { | ||
// certain localization sets contain less data then others. | ||
// in the case of a missing defintion, use the default localeFallback to substitute the missing set data | ||
return locales[exports.localeFallback][d][p]; | ||
} else { | ||
// return localized data | ||
return locales[exports.locale][d][p]; | ||
} | ||
} | ||
}); | ||
}); | ||
}); | ||
// since we are requiring the top level of faker, load all locales by default | ||
var Faker = require('./lib'); | ||
var faker = new Faker({ locales: require('./lib/locales') }); | ||
module['exports'] = faker; |
@@ -1,107 +0,124 @@ | ||
var Helpers = require('./helpers'); | ||
var faker = require('../index'); | ||
function Address (faker) { | ||
var f = faker.fake, | ||
Helpers = faker.helpers; | ||
var address = { | ||
zipCode: function () { | ||
return Helpers.replaceSymbolWithNumber(faker.random.array_element(["#####", '#####-####'])); | ||
}, | ||
this.zipCode = function(format) { | ||
// if zip format is not specified, use the zip format defined for the locale | ||
if (typeof format === 'undefined') { | ||
var localeFormat = faker.definitions.address.postcode; | ||
if (typeof localeFormat === 'string') { | ||
format = localeFormat; | ||
} else { | ||
format = faker.random.arrayElement(localeFormat); | ||
} | ||
} | ||
return Helpers.replaceSymbols(format); | ||
} | ||
city: function () { | ||
var result; | ||
switch (faker.random.number(3)) { | ||
case 0: | ||
result = faker.address.cityPrefix() + " " + faker.name.firstName() + faker.address.citySuffix(); | ||
break; | ||
case 1: | ||
result = faker.address.cityPrefix() + " " + faker.name.firstName(); | ||
break; | ||
case 2: | ||
result = faker.name.firstName() + faker.address.citySuffix(); | ||
break; | ||
case 3: | ||
result = faker.name.lastName() + faker.address.citySuffix(); | ||
break; | ||
} | ||
return result; | ||
}, | ||
this.city = function (format) { | ||
var formats = [ | ||
'{{address.cityPrefix}} {{name.firstName}} {{address.citySuffix}}', | ||
'{{address.cityPrefix}} {{name.firstName}}', | ||
'{{name.firstName}} {{address.citySuffix}}', | ||
'{{name.lastName}} {{address.citySuffix}}' | ||
]; | ||
cityPrefix: function () { | ||
return faker.random.array_element(faker.definitions.address.city_prefix); | ||
}, | ||
if (typeof format !== "number") { | ||
format = faker.random.number(formats.length - 1); | ||
} | ||
citySuffix: function () { | ||
return faker.random.array_element(faker.definitions.address.city_suffix); | ||
}, | ||
return f(formats[format]); | ||
streetName: function () { | ||
var result; | ||
switch (faker.random.number(1)) { | ||
case 0: | ||
result = faker.name.lastName() + " " + faker.address.streetSuffix(); | ||
break; | ||
case 1: | ||
result = faker.name.firstName() + " " + faker.address.streetSuffix(); | ||
break; | ||
} | ||
return result; | ||
}, | ||
} | ||
// | ||
// TODO: change all these methods that accept a boolean to instead accept an options hash. | ||
// | ||
streetAddress: function (useFullAddress) { | ||
if (useFullAddress === undefined) { useFullAddress = false; } | ||
var address = ""; | ||
switch (faker.random.number(2)) { | ||
case 0: | ||
address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName(); | ||
break; | ||
case 1: | ||
address = Helpers.replaceSymbolWithNumber("####") + " " + faker.address.streetName(); | ||
break; | ||
case 2: | ||
address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName(); | ||
break; | ||
} | ||
return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address; | ||
}, | ||
this.cityPrefix = function () { | ||
return faker.random.arrayElement(faker.definitions.address.city_prefix); | ||
} | ||
streetSuffix: function () { | ||
return faker.random.array_element(faker.definitions.address.street_suffix); | ||
}, | ||
this.citySuffix = function () { | ||
return faker.random.arrayElement(faker.definitions.address.city_suffix); | ||
} | ||
secondaryAddress: function () { | ||
return Helpers.replaceSymbolWithNumber(faker.random.array_element( | ||
[ | ||
'Apt. ###', | ||
'Suite ###' | ||
] | ||
)); | ||
}, | ||
this.streetName = function () { | ||
var result; | ||
switch (faker.random.number(1)) { | ||
case 0: | ||
result = faker.name.lastName() + " " + faker.address.streetSuffix(); | ||
break; | ||
case 1: | ||
result = faker.name.firstName() + " " + faker.address.streetSuffix(); | ||
break; | ||
} | ||
return result; | ||
} | ||
county: function () { | ||
return faker.random.array_element(faker.definitions.address.county); | ||
}, | ||
// | ||
// TODO: change all these methods that accept a boolean to instead accept an options hash. | ||
// | ||
this.streetAddress = function (useFullAddress) { | ||
if (useFullAddress === undefined) { useFullAddress = false; } | ||
var address = ""; | ||
switch (faker.random.number(2)) { | ||
case 0: | ||
address = Helpers.replaceSymbolWithNumber("#####") + " " + faker.address.streetName(); | ||
break; | ||
case 1: | ||
address = Helpers.replaceSymbolWithNumber("####") + " " + faker.address.streetName(); | ||
break; | ||
case 2: | ||
address = Helpers.replaceSymbolWithNumber("###") + " " + faker.address.streetName(); | ||
break; | ||
} | ||
return useFullAddress ? (address + " " + faker.address.secondaryAddress()) : address; | ||
} | ||
country: function () { | ||
return faker.random.array_element(faker.definitions.address.country); | ||
}, | ||
this.streetSuffix = function () { | ||
return faker.random.arrayElement(faker.definitions.address.street_suffix); | ||
} | ||
this.streetPrefix = function () { | ||
return faker.random.arrayElement(faker.definitions.address.street_prefix); | ||
} | ||
state: function (useAbbr) { | ||
return faker.random.array_element(faker.definitions.address.state); | ||
}, | ||
this.secondaryAddress = function () { | ||
return Helpers.replaceSymbolWithNumber(faker.random.arrayElement( | ||
[ | ||
'Apt. ###', | ||
'Suite ###' | ||
] | ||
)); | ||
} | ||
stateAbbr: function () { | ||
return faker.random.array_element(faker.definitions.address.state_abbr); | ||
}, | ||
this.county = function () { | ||
return faker.random.arrayElement(faker.definitions.address.county); | ||
} | ||
latitude: function () { | ||
return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4); | ||
}, | ||
this.country = function () { | ||
return faker.random.arrayElement(faker.definitions.address.country); | ||
} | ||
longitude: function () { | ||
return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4); | ||
} | ||
}; | ||
this.countryCode = function () { | ||
return faker.random.arrayElement(faker.definitions.address.country_code); | ||
} | ||
module.exports = address; | ||
this.state = function (useAbbr) { | ||
return faker.random.arrayElement(faker.definitions.address.state); | ||
} | ||
this.stateAbbr = function () { | ||
return faker.random.arrayElement(faker.definitions.address.state_abbr); | ||
} | ||
this.latitude = function () { | ||
return (faker.random.number(180 * 10000) / 10000.0 - 90.0).toFixed(4); | ||
} | ||
this.longitude = function () { | ||
return (faker.random.number(360 * 10000) / 10000.0 - 180.0).toFixed(4); | ||
} | ||
return this; | ||
} | ||
module.exports = Address; |
@@ -1,62 +0,64 @@ | ||
var faker = require('../index'); | ||
var Company = function (faker) { | ||
var self = this; | ||
var f = faker.fake; | ||
this.suffixes = function () { | ||
// Don't want the source array exposed to modification, so return a copy | ||
return faker.definitions.company.suffix.slice(0); | ||
} | ||
var company = { | ||
this.companyName = function (format) { | ||
suffixes: function () { | ||
return ["Inc", "and Sons", "LLC", "Group", "and Daughters"]; | ||
}, | ||
var formats = [ | ||
'{{name.lastName}} {{company.companySuffix}}', | ||
'{{name.lastName}} - {{name.lastName}}', | ||
'{{name.lastName}}, {{name.lastName}} and {{name.lastName}}' | ||
]; | ||
companyName: function (format) { | ||
switch ((format ? format : faker.random.number(2))) { | ||
case 0: | ||
return faker.name.lastName() + " " + faker.company.companySuffix(); | ||
case 1: | ||
return faker.name.lastName() + "-" + faker.name.lastName(); | ||
case 2: | ||
return faker.name.lastName() + ", " + faker.name.lastName() + " and " + faker.name.lastName(); | ||
} | ||
}, | ||
if (typeof format !== "number") { | ||
format = faker.random.number(formats.length - 1); | ||
} | ||
companySuffix: function () { | ||
return faker.random.array_element(faker.company.suffixes()); | ||
}, | ||
return f(formats[format]); | ||
} | ||
catchPhrase: function () { | ||
return faker.company.catchPhraseAdjective() + " " + | ||
faker.company.catchPhraseDescriptor() + " " + | ||
faker.company.catchPhraseNoun(); | ||
}, | ||
this.companySuffix = function () { | ||
return faker.random.arrayElement(faker.company.suffixes()); | ||
} | ||
bs: function () { | ||
return faker.company.bsAdjective() + " " + | ||
faker.company.bsBuzz() + " " + | ||
faker.company.bsNoun(); | ||
}, | ||
this.catchPhrase = function () { | ||
return f('{{company.catchPhraseAdjective}} {{company.catchPhraseDescriptor}} {{company.catchPhraseNoun}}') | ||
} | ||
catchPhraseAdjective: function () { | ||
return faker.random.array_element(faker.definitions.company.adjective); | ||
}, | ||
this.bs = function () { | ||
return f('{{company.bsAdjective}} {{company.bsBuzz}} {{company.bsNoun}}'); | ||
} | ||
catchPhraseDescriptor: function () { | ||
return faker.random.array_element(faker.definitions.company.descriptor); | ||
}, | ||
this.catchPhraseAdjective = function () { | ||
return faker.random.arrayElement(faker.definitions.company.adjective); | ||
} | ||
catchPhraseNoun: function () { | ||
return faker.random.array_element(faker.definitions.company.noun); | ||
}, | ||
this.catchPhraseDescriptor = function () { | ||
return faker.random.arrayElement(faker.definitions.company.descriptor); | ||
} | ||
bsAdjective: function () { | ||
return faker.random.array_element(faker.definitions.company.bs_adjective); | ||
}, | ||
this.catchPhraseNoun = function () { | ||
return faker.random.arrayElement(faker.definitions.company.noun); | ||
} | ||
bsBuzz: function () { | ||
return faker.random.array_element(faker.definitions.company.bs_verb); | ||
}, | ||
this.bsAdjective = function () { | ||
return faker.random.arrayElement(faker.definitions.company.bs_adjective); | ||
} | ||
bsNoun: function () { | ||
return faker.random.array_element(faker.definitions.company.bs_noun); | ||
} | ||
this.bsBuzz = function () { | ||
return faker.random.arrayElement(faker.definitions.company.bs_verb); | ||
} | ||
}; | ||
this.bsNoun = function () { | ||
return faker.random.arrayElement(faker.definitions.company.bs_noun); | ||
} | ||
} | ||
module.exports = company; | ||
module['exports'] = Company; |
@@ -1,56 +0,58 @@ | ||
var faker = require("../index"); | ||
var _Date = function (faker) { | ||
var self = this; | ||
self.past = function (years, refDate) { | ||
var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); | ||
var range = { | ||
min: 1000, | ||
max: (years || 1) * 365 * 24 * 3600 * 1000 | ||
}; | ||
var date = { | ||
var past = date.getTime(); | ||
past -= faker.random.number(range); // some time from now to N years ago, in milliseconds | ||
date.setTime(past); | ||
past: function (years, refDate) { | ||
var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); | ||
var range = { | ||
min: 1000, | ||
max: (years || 1) * 365 * 24 * 3600 * 1000 | ||
}; | ||
return date; | ||
}; | ||
var past = date.getTime(); | ||
past -= faker.random.number(range); // some time from now to N years ago, in milliseconds | ||
date.setTime(past); | ||
self.future = function (years, refDate) { | ||
var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); | ||
var range = { | ||
min: 1000, | ||
max: (years || 1) * 365 * 24 * 3600 * 1000 | ||
}; | ||
return date; | ||
}, | ||
var future = date.getTime(); | ||
future += faker.random.number(range); // some time from now to N years later, in milliseconds | ||
date.setTime(future); | ||
future: function (years, refDate) { | ||
var date = (refDate) ? new Date(Date.parse(refDate)) : new Date(); | ||
var range = { | ||
min: 1000, | ||
max: (years || 1) * 365 * 24 * 3600 * 1000 | ||
}; | ||
return date; | ||
}; | ||
var future = date.getTime(); | ||
future += faker.random.number(range); // some time from now to N years later, in milliseconds | ||
date.setTime(future); | ||
self.between = function (from, to) { | ||
var fromMilli = Date.parse(from); | ||
var dateOffset = faker.random.number(Date.parse(to) - fromMilli); | ||
return date; | ||
}, | ||
var newDate = new Date(fromMilli + dateOffset); | ||
between: function (from, to) { | ||
var fromMilli = Date.parse(from); | ||
var dateOffset = faker.random.number(Date.parse(to) - fromMilli); | ||
return newDate; | ||
}; | ||
var newDate = new Date(fromMilli + dateOffset); | ||
self.recent = function (days) { | ||
var date = new Date(); | ||
var range = { | ||
min: 1000, | ||
max: (days || 1) * 24 * 3600 * 1000 | ||
}; | ||
return newDate; | ||
}, | ||
var future = date.getTime(); | ||
future -= faker.random.number(range); // some time from now to N days ago, in milliseconds | ||
date.setTime(future); | ||
recent: function (days) { | ||
var date = new Date(); | ||
var range = { | ||
min: 1000, | ||
max: (days || 1) * 24 * 3600 * 1000 | ||
}; | ||
return date; | ||
} | ||
return self; | ||
}; | ||
var future = date.getTime(); | ||
future -= faker.random.number(range); // some time from now to N days ago, in milliseconds | ||
date.setTime(future); | ||
return date; | ||
} | ||
}; | ||
module.exports = date; | ||
module['exports'] = _Date; |
@@ -1,87 +0,86 @@ | ||
var Helpers = require('./helpers'), | ||
faker = require('../index'); | ||
var Finance = function (faker) { | ||
var Helpers = faker.helpers, | ||
self = this; | ||
var finance = { | ||
self.account = function (length) { | ||
account: function (length) { | ||
length = length || 8; | ||
length = length || 8; | ||
var template = ''; | ||
var template = ''; | ||
for (var i = 0; i < length; i++) { | ||
template = template + '#'; | ||
} | ||
length = null; | ||
return Helpers.replaceSymbolWithNumber(template); | ||
} | ||
for (var i = 0; i < length; i++) { | ||
template = template + '#'; | ||
} | ||
length = null; | ||
return Helpers.replaceSymbolWithNumber(template); | ||
}, | ||
self.accountName = function () { | ||
accountName: function () { | ||
return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' '); | ||
} | ||
return [Helpers.randomize(faker.definitions.finance.account_type), 'Account'].join(' '); | ||
}, | ||
self.mask = function (length, parens, elipsis) { | ||
mask: function (length, parens, elipsis) { | ||
//set defaults | ||
length = (length == 0 || !length || typeof length == 'undefined') ? 4 : length; | ||
parens = (parens === null) ? true : parens; | ||
elipsis = (elipsis === null) ? true : elipsis; | ||
//set defaults | ||
length = (length == 0 || !length || typeof length == 'undefined') ? 4 : length; | ||
parens = (parens === null) ? true : parens; | ||
elipsis = (elipsis === null) ? true : elipsis; | ||
//create a template for length | ||
var template = ''; | ||
//create a template for length | ||
var template = ''; | ||
for (var i = 0; i < length; i++) { | ||
template = template + '#'; | ||
} | ||
for (var i = 0; i < length; i++) { | ||
template = template + '#'; | ||
} | ||
//prefix with elipsis | ||
template = (elipsis) ? ['...', template].join('') : template; | ||
//prefix with elipsis | ||
template = (elipsis) ? ['...', template].join('') : template; | ||
template = (parens) ? ['(', template, ')'].join('') : template; | ||
template = (parens) ? ['(', template, ')'].join('') : template; | ||
//generate random numbers | ||
template = Helpers.replaceSymbolWithNumber(template); | ||
//generate random numbers | ||
template = Helpers.replaceSymbolWithNumber(template); | ||
return template; | ||
return template; | ||
} | ||
}, | ||
//min and max take in minimum and maximum amounts, dec is the decimal place you want rounded to, symbol is $, €, £, etc | ||
//NOTE: this returns a string representation of the value, if you want a number use parseFloat and no symbol | ||
//min and max take in minimum and maximum amounts, dec is the decimal place you want rounded to, symbol is $, €, £, etc | ||
//NOTE: this returns a string representation of the value, if you want a number use parseFloat and no symbol | ||
self.amount = function (min, max, dec, symbol) { | ||
amount: function (min, max, dec, symbol) { | ||
min = min || 0; | ||
max = max || 1000; | ||
dec = dec || 2; | ||
symbol = symbol || ''; | ||
min = min || 0; | ||
max = max || 1000; | ||
dec = dec || 2; | ||
symbol = symbol || ''; | ||
return symbol + (Math.round((Math.random() * (max - min) + min) * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec); | ||
return symbol + (Math.round((Math.random() * (max - min) + min) * Math.pow(10, dec)) / Math.pow(10, dec)).toFixed(dec); | ||
} | ||
}, | ||
self.transactionType = function () { | ||
return Helpers.randomize(faker.definitions.finance.transaction_type); | ||
} | ||
transactionType: function () { | ||
return Helpers.randomize(faker.definitions.finance.transaction_type); | ||
}, | ||
self.currencyCode = function () { | ||
return faker.random.objectElement(faker.definitions.finance.currency)['code']; | ||
} | ||
currencyCode: function () { | ||
return faker.random.object_element(faker.definitions.finance.currency)['code']; | ||
}, | ||
self.currencyName = function () { | ||
return faker.random.objectElement(faker.definitions.finance.currency, 'key'); | ||
} | ||
currencyName: function () { | ||
return faker.random.object_element(faker.definitions.finance.currency, 'key'); | ||
}, | ||
self.currencySymbol = function () { | ||
var symbol; | ||
currencySymbol: function () { | ||
var symbol; | ||
while (!symbol) { | ||
symbol = faker.random.objectElement(faker.definitions.finance.currency)['symbol']; | ||
} | ||
return symbol; | ||
} | ||
} | ||
while (!symbol) { | ||
symbol = faker.random.object_element(faker.definitions.finance.currency)['symbol']; | ||
} | ||
return symbol; | ||
} | ||
}; | ||
module.exports = finance; | ||
module['exports'] = Finance; |
@@ -1,36 +0,35 @@ | ||
var faker = require('../index'); | ||
var Hacker = function (faker) { | ||
var self = this; | ||
self.abbreviation = function () { | ||
return faker.random.arrayElement(faker.definitions.hacker.abbreviation); | ||
}; | ||
var hacker = { | ||
self.adjective = function () { | ||
return faker.random.arrayElement(faker.definitions.hacker.adjective); | ||
}; | ||
abbreviation : function () { | ||
return faker.random.array_element(faker.definitions.hacker.abbreviation); | ||
}, | ||
self.noun = function () { | ||
return faker.random.arrayElement(faker.definitions.hacker.noun); | ||
}; | ||
adjective : function () { | ||
return faker.random.array_element(faker.definitions.hacker.adjective); | ||
}, | ||
self.verb = function () { | ||
return faker.random.arrayElement(faker.definitions.hacker.verb); | ||
}; | ||
noun : function () { | ||
return faker.random.array_element(faker.definitions.hacker.noun); | ||
}, | ||
self.ingverb = function () { | ||
return faker.random.arrayElement(faker.definitions.hacker.ingverb); | ||
}; | ||
verb : function () { | ||
return faker.random.array_element(faker.definitions.hacker.verb); | ||
}, | ||
self.phrase = function () { | ||
ingverb : function () { | ||
return faker.random.array_element(faker.definitions.hacker.ingverb); | ||
}, | ||
phrase : function () { | ||
var data = { | ||
abbreviation: hacker.abbreviation(), | ||
adjective: hacker.adjective(), | ||
ingverb: hacker.ingverb(), | ||
noun: hacker.noun(), | ||
verb: hacker.verb() | ||
abbreviation: self.abbreviation(), | ||
adjective: self.adjective(), | ||
ingverb: self.ingverb(), | ||
noun: self.noun(), | ||
verb: self.verb() | ||
}; | ||
var phrase = faker.random.array_element([ "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!", | ||
var phrase = faker.random.arrayElement([ "If we {{verb}} the {{noun}}, we can get to the {{abbreviation}} {{noun}} through the {{adjective}} {{abbreviation}} {{noun}}!", | ||
"We need to {{verb}} the {{adjective}} {{abbreviation}} {{noun}}!", | ||
@@ -47,7 +46,7 @@ "Try to {{verb}} the {{abbreviation}} {{noun}}, maybe it will {{verb}} the {{adjective}} {{noun}}!", | ||
}, | ||
}; | ||
return self; | ||
}; | ||
module.exports = hacker; | ||
module['exports'] = Hacker; |
@@ -1,139 +0,132 @@ | ||
var faker = require('../index'); | ||
var Helpers = function (faker) { | ||
// backword-compatibility | ||
exports.randomNumber = function (range) { | ||
return faker.random.number(range); | ||
}; | ||
var self = this; | ||
// backword-compatibility | ||
exports.randomize = function (array) { | ||
array = array || ["a", "b", "c"]; | ||
return faker.random.array_element(array); | ||
}; | ||
// backword-compatibility | ||
self.randomize = function (array) { | ||
array = array || ["a", "b", "c"]; | ||
return faker.random.arrayElement(array); | ||
}; | ||
// slugifies string | ||
exports.slugify = function (string) { | ||
string = string || ""; | ||
return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); | ||
}; | ||
// slugifies string | ||
self.slugify = function (string) { | ||
string = string || ""; | ||
return string.replace(/ /g, '-').replace(/[^\w\.\-]+/g, ''); | ||
}; | ||
// parses string for a symbol and replace it with a random number from 1-10 | ||
exports.replaceSymbolWithNumber = function (string, symbol) { | ||
string = string || ""; | ||
// default symbol is '#' | ||
if (symbol === undefined) { | ||
symbol = '#'; | ||
} | ||
// parses string for a symbol and replace it with a random number from 1-10 | ||
self.replaceSymbolWithNumber = function (string, symbol) { | ||
string = string || ""; | ||
// default symbol is '#' | ||
if (symbol === undefined) { | ||
symbol = '#'; | ||
} | ||
var str = ''; | ||
for (var i = 0; i < string.length; i++) { | ||
if (string.charAt(i) == symbol) { | ||
str += faker.random.number(9); | ||
} else { | ||
str += string.charAt(i); | ||
} | ||
} | ||
return str; | ||
}; | ||
var str = ''; | ||
for (var i = 0; i < string.length; i++) { | ||
if (string.charAt(i) == symbol) { | ||
str += faker.random.number(9); | ||
} else { | ||
str += string.charAt(i); | ||
} | ||
} | ||
return str; | ||
}; | ||
// takes an array and returns it randomized | ||
exports.shuffle = function (o) { | ||
o = o || ["a", "b", "c"]; | ||
for (var j, x, i = o.length-1; i; j = faker.random.number(i), x = o[--i], o[i] = o[j], o[j] = x); | ||
return o; | ||
}; | ||
// parses string for symbols (numbers or letters) and replaces them appropriately | ||
self.replaceSymbols = function (string) { | ||
string = string || ""; | ||
var alpha = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] | ||
var str = ''; | ||
exports.mustache = function (str, data) { | ||
for(var p in data) { | ||
var re = new RegExp('{{' + p + '}}', 'g') | ||
str = str.replace(re, data[p]); | ||
} | ||
return str; | ||
}; | ||
exports.createCard = function () { | ||
return { | ||
"name": faker.name.findName(), | ||
"username": faker.internet.userName(), | ||
"email": faker.internet.email(), | ||
"address": { | ||
"streetA": faker.address.streetName(), | ||
"streetB": faker.address.streetAddress(), | ||
"streetC": faker.address.streetAddress(true), | ||
"streetD": faker.address.secondaryAddress(), | ||
"city": faker.address.city(), | ||
"state": faker.address.state(), | ||
"country": faker.address.country(), | ||
"zipcode": faker.address.zipCode(), | ||
"geo": { | ||
"lat": faker.address.latitude(), | ||
"lng": faker.address.longitude() | ||
} | ||
}, | ||
"phone": faker.phone.phoneNumber(), | ||
"website": faker.internet.domainName(), | ||
"company": { | ||
"name": faker.company.companyName(), | ||
"catchPhrase": faker.company.catchPhrase(), | ||
"bs": faker.company.bs() | ||
}, | ||
"posts": [ | ||
{ | ||
"words": faker.lorem.words(), | ||
"sentence": faker.lorem.sentence(), | ||
"sentences": faker.lorem.sentences(), | ||
"paragraph": faker.lorem.paragraph() | ||
}, | ||
{ | ||
"words": faker.lorem.words(), | ||
"sentence": faker.lorem.sentence(), | ||
"sentences": faker.lorem.sentences(), | ||
"paragraph": faker.lorem.paragraph() | ||
}, | ||
{ | ||
"words": faker.lorem.words(), | ||
"sentence": faker.lorem.sentence(), | ||
"sentences": faker.lorem.sentences(), | ||
"paragraph": faker.lorem.paragraph() | ||
} | ||
], | ||
"accountHistory": [faker.helpers.createTransaction(), faker.helpers.createTransaction(), faker.helpers.createTransaction()] | ||
}; | ||
}; | ||
exports.contextualCard = function () { | ||
var name = faker.name.firstName(), | ||
userName = faker.internet.userName(name); | ||
return { | ||
"name": name, | ||
"username": userName, | ||
"avatar": faker.internet.avatar(), | ||
"email": faker.internet.email(userName), | ||
"dob": faker.date.past(50, new Date("Sat Sep 20 1992 21:35:02 GMT+0200 (CEST)")), | ||
"phone": faker.phone.phoneNumber(), | ||
"address": { | ||
"street": faker.address.streetName(true), | ||
"suite": faker.address.secondaryAddress(), | ||
"city": faker.address.city(), | ||
"zipcode": faker.address.zipCode(), | ||
"geo": { | ||
"lat": faker.address.latitude(), | ||
"lng": faker.address.longitude() | ||
for (var i = 0; i < string.length; i++) { | ||
if (string.charAt(i) == "#") { | ||
str += faker.random.number(9); | ||
} else if (string.charAt(i) == "?") { | ||
str += alpha[Math.floor(Math.random() * alpha.length)]; | ||
} else { | ||
str += string.charAt(i); | ||
} | ||
}, | ||
"website": faker.internet.domainName(), | ||
"company": { | ||
"name": faker.company.companyName(), | ||
"catchPhrase": faker.company.catchPhrase(), | ||
"bs": faker.company.bs() | ||
} | ||
return str; | ||
}; | ||
}; | ||
// takes an array and returns it randomized | ||
self.shuffle = function (o) { | ||
o = o || ["a", "b", "c"]; | ||
for (var j, x, i = o.length-1; i; j = faker.random.number(i), x = o[--i], o[i] = o[j], o[j] = x); | ||
return o; | ||
}; | ||
exports.userCard = function () { | ||
self.mustache = function (str, data) { | ||
if (typeof str === 'undefined') { | ||
return ''; | ||
} | ||
for(var p in data) { | ||
var re = new RegExp('{{' + p + '}}', 'g') | ||
str = str.replace(re, data[p]); | ||
} | ||
return str; | ||
}; | ||
self.createCard = function () { | ||
return { | ||
"name": faker.name.findName(), | ||
"username": faker.internet.userName(), | ||
"email": faker.internet.email(), | ||
"address": { | ||
"streetA": faker.address.streetName(), | ||
"streetB": faker.address.streetAddress(), | ||
"streetC": faker.address.streetAddress(true), | ||
"streetD": faker.address.secondaryAddress(), | ||
"city": faker.address.city(), | ||
"state": faker.address.state(), | ||
"country": faker.address.country(), | ||
"zipcode": faker.address.zipCode(), | ||
"geo": { | ||
"lat": faker.address.latitude(), | ||
"lng": faker.address.longitude() | ||
} | ||
}, | ||
"phone": faker.phone.phoneNumber(), | ||
"website": faker.internet.domainName(), | ||
"company": { | ||
"name": faker.company.companyName(), | ||
"catchPhrase": faker.company.catchPhrase(), | ||
"bs": faker.company.bs() | ||
}, | ||
"posts": [ | ||
{ | ||
"words": faker.lorem.words(), | ||
"sentence": faker.lorem.sentence(), | ||
"sentences": faker.lorem.sentences(), | ||
"paragraph": faker.lorem.paragraph() | ||
}, | ||
{ | ||
"words": faker.lorem.words(), | ||
"sentence": faker.lorem.sentence(), | ||
"sentences": faker.lorem.sentences(), | ||
"paragraph": faker.lorem.paragraph() | ||
}, | ||
{ | ||
"words": faker.lorem.words(), | ||
"sentence": faker.lorem.sentence(), | ||
"sentences": faker.lorem.sentences(), | ||
"paragraph": faker.lorem.paragraph() | ||
} | ||
], | ||
"accountHistory": [faker.helpers.createTransaction(), faker.helpers.createTransaction(), faker.helpers.createTransaction()] | ||
}; | ||
}; | ||
self.contextualCard = function () { | ||
var name = faker.name.firstName(), | ||
userName = faker.internet.userName(name); | ||
return { | ||
"name": faker.name.findName(), | ||
"username": faker.internet.userName(), | ||
"email": faker.internet.email(), | ||
"name": name, | ||
"username": userName, | ||
"avatar": faker.internet.avatar(), | ||
"email": faker.internet.email(userName), | ||
"dob": faker.date.past(50, new Date("Sat Sep 20 1992 21:35:02 GMT+0200 (CEST)")), | ||
"phone": faker.phone.phoneNumber(), | ||
"address": { | ||
@@ -149,3 +142,2 @@ "street": faker.address.streetName(true), | ||
}, | ||
"phone": faker.phone.phoneNumber(), | ||
"website": faker.internet.domainName(), | ||
@@ -158,15 +150,46 @@ "company": { | ||
}; | ||
}; | ||
}; | ||
exports.createTransaction = function(){ | ||
return { | ||
"amount" : faker.finance.amount(), | ||
"date" : new Date(2012, 1, 2), //TODO: add a ranged date method | ||
"business": faker.company.companyName(), | ||
"name": [faker.finance.accountName(), faker.finance.mask()].join(' '), | ||
"type" : exports.randomize(faker.definitions.finance.transaction_type), | ||
"account" : faker.finance.account() | ||
self.userCard = function () { | ||
return { | ||
"name": faker.name.findName(), | ||
"username": faker.internet.userName(), | ||
"email": faker.internet.email(), | ||
"address": { | ||
"street": faker.address.streetName(true), | ||
"suite": faker.address.secondaryAddress(), | ||
"city": faker.address.city(), | ||
"zipcode": faker.address.zipCode(), | ||
"geo": { | ||
"lat": faker.address.latitude(), | ||
"lng": faker.address.longitude() | ||
} | ||
}, | ||
"phone": faker.phone.phoneNumber(), | ||
"website": faker.internet.domainName(), | ||
"company": { | ||
"name": faker.company.companyName(), | ||
"catchPhrase": faker.company.catchPhrase(), | ||
"bs": faker.company.bs() | ||
} | ||
}; | ||
}; | ||
self.createTransaction = function(){ | ||
return { | ||
"amount" : faker.finance.amount(), | ||
"date" : new Date(2012, 1, 2), //TODO: add a ranged date method | ||
"business": faker.company.companyName(), | ||
"name": [faker.finance.accountName(), faker.finance.mask()].join(' '), | ||
"type" : self.randomize(faker.definitions.finance.transaction_type), | ||
"account" : faker.finance.account() | ||
}; | ||
}; | ||
return self; | ||
}; | ||
/* | ||
@@ -180,1 +203,2 @@ String.prototype.capitalize = function () { //v1.0 | ||
module['exports'] = Helpers; |
@@ -1,12 +0,13 @@ | ||
var faker = require('../index'); | ||
var Image = function (faker) { | ||
var image = { | ||
image: function () { | ||
var self = this; | ||
self.image = function () { | ||
var categories = ["abstract", "animals", "business", "cats", "city", "food", "nightlife", "fashion", "people", "nature", "sports", "technics", "transport"]; | ||
return image[faker.random.array_element(categories)](); | ||
}, | ||
avatar: function () { | ||
return self[faker.random.arrayElement(categories)](); | ||
}; | ||
self.avatar = function () { | ||
return faker.internet.avatar(); | ||
}, | ||
imageUrl: function (width, height, category) { | ||
}; | ||
self.imageUrl = function (width, height, category) { | ||
var width = width || 640; | ||
@@ -20,44 +21,44 @@ var height = height || 480; | ||
return url; | ||
}, | ||
abstract: function (width, height) { | ||
}; | ||
self.abstract = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'abstract'); | ||
}, | ||
animals: function (width, height) { | ||
}; | ||
self.animals = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'animals'); | ||
}, | ||
business: function (width, height) { | ||
}; | ||
self.business = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'business'); | ||
}, | ||
cats: function (width, height) { | ||
}; | ||
self.cats = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'cats'); | ||
}, | ||
city: function (width, height) { | ||
}; | ||
self.city = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'city'); | ||
}, | ||
food: function (width, height) { | ||
}; | ||
self.food = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'food'); | ||
}, | ||
nightlife: function (width, height) { | ||
}; | ||
self.nightlife = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'nightlife'); | ||
}, | ||
fashion: function (width, height) { | ||
}; | ||
self.fashion = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'fashion'); | ||
}, | ||
people: function (width, height) { | ||
}; | ||
self.people = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'people'); | ||
}, | ||
nature: function (width, height) { | ||
}; | ||
self.nature = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'nature'); | ||
}, | ||
sports: function (width, height) { | ||
}; | ||
self.sports = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'sports'); | ||
}, | ||
technics: function (width, height) { | ||
}; | ||
self.technics = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'technics'); | ||
}, | ||
transport: function (width, height) { | ||
}; | ||
self.transport = function (width, height) { | ||
return faker.image.imageUrl(width, height, 'transport'); | ||
} | ||
}; | ||
} | ||
} | ||
module.exports = image; | ||
module["exports"] = Image; |
@@ -1,101 +0,113 @@ | ||
var faker = require('../index'), | ||
password_generator = require('../vendor/password-generator.js'), | ||
var password_generator = require('../vendor/password-generator.js'), | ||
random_ua = require('../vendor/user-agent'); | ||
var internet = { | ||
var Internet = function (faker) { | ||
var self = this; | ||
self.avatar = function () { | ||
return faker.random.arrayElement(faker.definitions.internet.avatar_uri); | ||
}; | ||
avatar: function () { | ||
return faker.random.array_element(faker.definitions.internet.avatar_uri); | ||
}, | ||
self.email = function (firstName, lastName, provider) { | ||
provider = provider || faker.random.arrayElement(faker.definitions.internet.free_email); | ||
return faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider; | ||
}; | ||
email: function (firstName, lastName, provider) { | ||
provider = provider || faker.random.array_element(faker.definitions.internet.free_email); | ||
return faker.helpers.slugify(faker.internet.userName(firstName, lastName)) + "@" + provider; | ||
}, | ||
self.userName = function (firstName, lastName) { | ||
var result; | ||
firstName = firstName || faker.name.firstName(); | ||
lastName = lastName || faker.name.lastName(); | ||
switch (faker.random.number(2)) { | ||
case 0: | ||
result = firstName + faker.random.number(99); | ||
break; | ||
case 1: | ||
result = firstName + faker.random.arrayElement([".", "_"]) + lastName; | ||
break; | ||
case 2: | ||
result = firstName + faker.random.arrayElement([".", "_"]) + lastName + faker.random.number(99); | ||
break; | ||
} | ||
result = result.toString().replace(/'/g, ""); | ||
result = result.replace(/ /g, ""); | ||
return result; | ||
}; | ||
userName: function (firstName, lastName) { | ||
var result; | ||
firstName = firstName || faker.name.firstName(); | ||
lastName = lastName || faker.name.lastName(); | ||
switch (faker.random.number(2)) { | ||
case 0: | ||
result = firstName + faker.random.number(99); | ||
break; | ||
case 1: | ||
result = firstName + faker.random.array_element([".", "_"]) + lastName; | ||
break; | ||
case 2: | ||
result = firstName + faker.random.array_element([".", "_"]) + lastName + faker.random.number(99); | ||
break; | ||
} | ||
result = result.replace(/'/g, ""); | ||
result = result.replace(/ /g, ""); | ||
return result; | ||
}, | ||
self.protocol = function () { | ||
var protocols = ['http','https']; | ||
return faker.random.arrayElement(protocols); | ||
}; | ||
protocol: function () { | ||
var protocols = ['http','https']; | ||
return faker.random.array_element(protocols); | ||
}, | ||
self.url = function () { | ||
return faker.internet.protocol() + '://' + faker.internet.domainName(); | ||
}; | ||
url: function () { | ||
return faker.internet.protocol() + '://' + faker.internet.domainName(); | ||
}, | ||
self.domainName = function () { | ||
return faker.internet.domainWord() + "." + faker.internet.domainSuffix(); | ||
}; | ||
domainName: function () { | ||
return faker.internet.domainWord() + "." + faker.internet.domainSuffix(); | ||
}, | ||
self.domainSuffix = function () { | ||
return faker.random.arrayElement(faker.definitions.internet.domain_suffix); | ||
}; | ||
domainSuffix: function () { | ||
return faker.random.array_element(faker.definitions.internet.domain_suffix); | ||
}, | ||
self.domainWord = function () { | ||
return faker.name.firstName().replace(/([\\~#&*{}/:<>?|\"])/ig, '').toLowerCase(); | ||
}; | ||
domainWord: function () { | ||
return faker.name.firstName().replace(/([^A-Z0-9._%+-])/ig, '').toLowerCase(); | ||
}, | ||
self.ip = function () { | ||
var randNum = function () { | ||
return (faker.random.number(255)).toFixed(0); | ||
}; | ||
ip: function () { | ||
var randNum = function () { | ||
return (faker.random.number(255)).toFixed(0); | ||
}; | ||
var result = []; | ||
for (var i = 0; i < 4; i++) { | ||
result[i] = randNum(); | ||
} | ||
var result = []; | ||
for (var i = 0; i < 4; i++) { | ||
result[i] = randNum(); | ||
} | ||
return result.join("."); | ||
}; | ||
return result.join("."); | ||
}, | ||
self.userAgent = function () { | ||
return random_ua.generate(); | ||
}; | ||
userAgent: function () { | ||
return random_ua.generate(); | ||
}, | ||
self.color = function (baseRed255, baseGreen255, baseBlue255) { | ||
baseRed255 = baseRed255 || 0; | ||
baseGreen255 = baseGreen255 || 0; | ||
baseBlue255 = baseBlue255 || 0; | ||
// based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette | ||
var red = Math.floor((faker.random.number(256) + baseRed255) / 2); | ||
var green = Math.floor((faker.random.number(256) + baseGreen255) / 2); | ||
var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2); | ||
var redStr = red.toString(16); | ||
var greenStr = green.toString(16); | ||
var blueStr = blue.toString(16); | ||
return '#' + | ||
(redStr.length === 1 ? '0' : '') + redStr + | ||
(greenStr.length === 1 ? '0' : '') + greenStr + | ||
(blueStr.length === 1 ? '0': '') + blueStr; | ||
color: function (baseRed255, baseGreen255, baseBlue255) { | ||
baseRed255 = baseRed255 || 0; | ||
baseGreen255 = baseGreen255 || 0; | ||
baseBlue255 = baseBlue255 || 0; | ||
// based on awesome response : http://stackoverflow.com/questions/43044/algorithm-to-randomly-generate-an-aesthetically-pleasing-color-palette | ||
var red = Math.floor((faker.random.number(256) + baseRed255) / 2); | ||
var green = Math.floor((faker.random.number(256) + baseGreen255) / 2); | ||
var blue = Math.floor((faker.random.number(256) + baseBlue255) / 2); | ||
var redStr = red.toString(16); | ||
var greenStr = green.toString(16); | ||
var blueStr = blue.toString(16); | ||
return '#' + | ||
(redStr.length === 1 ? '0' : '') + redStr + | ||
(greenStr.length === 1 ? '0' : '') + greenStr + | ||
(blueStr.length === 1 ? '0': '') + blueStr; | ||
}; | ||
}, | ||
self.mac = function(){ | ||
var i, mac = ""; | ||
for (i=0; i < 12; i++) { | ||
mac+= parseInt(Math.random()*16).toString(16); | ||
if (i%2==1 && i != 11) { | ||
mac+=":"; | ||
} | ||
} | ||
return mac; | ||
}; | ||
password: function (len, memorable, pattern, prefix) { | ||
len = len || 15; | ||
if (typeof memorable === "undefined") { | ||
memorable = false; | ||
} | ||
return password_generator(len, memorable, pattern, prefix); | ||
self.password = function (len, memorable, pattern, prefix) { | ||
len = len || 15; | ||
if (typeof memorable === "undefined") { | ||
memorable = false; | ||
} | ||
return password_generator(len, memorable, pattern, prefix); | ||
} | ||
}; | ||
module.exports = internet; | ||
module["exports"] = Internet; |
@@ -1,31 +0,33 @@ | ||
var faker = require('../index'); | ||
exports['de'] = require('./locales/de.js'); | ||
exports['de_AT'] = require('./locales/de_AT.js'); | ||
exports['de_CH'] = require('./locales/de_CH.js'); | ||
exports['en'] = require('./locales/en.js'); | ||
exports['en_AU'] = require('./locales/en_AU.js'); | ||
exports['en_BORK'] = require('./locales/en_BORK.js'); | ||
exports['en_CA'] = require('./locales/en_CA.js'); | ||
exports['en_GB'] = require('./locales/en_GB.js'); | ||
exports['en_IND'] = require('./locales/en_IND.js'); | ||
exports['en_US'] = require('./locales/en_US.js'); | ||
exports['en_au_ocker'] = require('./locales/en_au_ocker.js'); | ||
exports['es'] = require('./locales/es.js'); | ||
exports['fa'] = require('./locales/fa.js'); | ||
exports['fr'] = require('./locales/fr.js'); | ||
exports['ge'] = require('./locales/ge.js'); | ||
exports['it'] = require('./locales/it.js'); | ||
exports['ja'] = require('./locales/ja.js'); | ||
exports['ko'] = require('./locales/ko.js'); | ||
exports['nb_NO'] = require('./locales/nb_NO.js'); | ||
exports['nep'] = require('./locales/nep.js'); | ||
exports['nl'] = require('./locales/nl.js'); | ||
exports['pl'] = require('./locales/pl.js'); | ||
exports['pt_BR'] = require('./locales/pt_BR.js'); | ||
exports['ru'] = require('./locales/ru.js'); | ||
exports['sk'] = require('./locales/sk.js'); | ||
exports['sv'] = require('./locales/sv.js'); | ||
exports['tr'] = require('./locales/tr.js'); | ||
exports['vi'] = require('./locales/vi.js'); | ||
exports['zh_CN'] = require('./locales/zh_CN.js'); | ||
exports['zh_TW'] = require('./locales/zh_TW.js'); | ||
exports['de'] = require('./locales/de'); | ||
exports['de_AT'] = require('./locales/de_AT'); | ||
exports['de_CH'] = require('./locales/de_CH'); | ||
exports['en'] = require('./locales/en'); | ||
exports['en_AU'] = require('./locales/en_AU'); | ||
exports['en_BORK'] = require('./locales/en_BORK'); | ||
exports['en_CA'] = require('./locales/en_CA'); | ||
exports['en_GB'] = require('./locales/en_GB'); | ||
exports['en_IE'] = require('./locales/en_IE'); | ||
exports['en_IND'] = require('./locales/en_IND'); | ||
exports['en_US'] = require('./locales/en_US'); | ||
exports['en_au_ocker'] = require('./locales/en_au_ocker'); | ||
exports['es'] = require('./locales/es'); | ||
exports['fa'] = require('./locales/fa'); | ||
exports['fr'] = require('./locales/fr'); | ||
exports['fr_CA'] = require('./locales/fr_CA'); | ||
exports['ge'] = require('./locales/ge'); | ||
exports['it'] = require('./locales/it'); | ||
exports['ja'] = require('./locales/ja'); | ||
exports['ko'] = require('./locales/ko'); | ||
exports['nb_NO'] = require('./locales/nb_NO'); | ||
exports['nep'] = require('./locales/nep'); | ||
exports['nl'] = require('./locales/nl'); | ||
exports['pl'] = require('./locales/pl'); | ||
exports['pt_BR'] = require('./locales/pt_BR'); | ||
exports['ru'] = require('./locales/ru'); | ||
exports['sk'] = require('./locales/sk'); | ||
exports['sv'] = require('./locales/sv'); | ||
exports['tr'] = require('./locales/tr'); | ||
exports['uk'] = require('./locales/uk'); | ||
exports['vi'] = require('./locales/vi'); | ||
exports['zh_CN'] = require('./locales/zh_CN'); | ||
exports['zh_TW'] = require('./locales/zh_TW'); |
@@ -1,44 +0,51 @@ | ||
var faker = require('../index'); | ||
var Helpers = require('./helpers'); | ||
var lorem = { | ||
words: function (num) { | ||
if (typeof num == 'undefined') { num = 3; } | ||
return Helpers.shuffle(faker.definitions.lorem.words).slice(0, num); | ||
}, | ||
var Lorem = function (faker) { | ||
var self = this; | ||
var Helpers = faker.helpers; | ||
sentence: function (wordCount, range) { | ||
if (typeof wordCount == 'undefined') { wordCount = 3; } | ||
if (typeof range == 'undefined') { range = 7; } | ||
self.words = function (num) { | ||
if (typeof num == 'undefined') { num = 3; } | ||
return Helpers.shuffle(faker.definitions.lorem.words).slice(0, num); | ||
}; | ||
// strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back | ||
//return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize(); | ||
self.sentence = function (wordCount, range) { | ||
if (typeof wordCount == 'undefined') { wordCount = 3; } | ||
if (typeof range == 'undefined') { range = 7; } | ||
return faker.lorem.words(wordCount + faker.random.number(range)).join(' '); | ||
}, | ||
// strange issue with the node_min_test failing for captialize, please fix and add faker.lorem.back | ||
//return faker.lorem.words(wordCount + Helpers.randomNumber(range)).join(' ').capitalize(); | ||
sentences: function (sentenceCount) { | ||
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } | ||
var sentences = []; | ||
for (sentenceCount; sentenceCount > 0; sentenceCount--) { | ||
sentences.push(faker.lorem.sentence()); | ||
} | ||
return sentences.join("\n"); | ||
}, | ||
return faker.lorem.words(wordCount + faker.random.number(range)).join(' '); | ||
}; | ||
paragraph: function (sentenceCount) { | ||
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } | ||
return faker.lorem.sentences(sentenceCount + faker.random.number(3)); | ||
}, | ||
self.sentences = function (sentenceCount) { | ||
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } | ||
var sentences = []; | ||
for (sentenceCount; sentenceCount > 0; sentenceCount--) { | ||
sentences.push(faker.lorem.sentence()); | ||
} | ||
return sentences.join("\n"); | ||
}; | ||
paragraphs: function (paragraphCount) { | ||
if (typeof paragraphCount == 'undefined') { paragraphCount = 3; } | ||
var paragraphs = []; | ||
for (paragraphCount; paragraphCount > 0; paragraphCount--) { | ||
paragraphs.push(faker.lorem.paragraph()); | ||
} | ||
return paragraphs.join("\n \r\t"); | ||
self.paragraph = function (sentenceCount) { | ||
if (typeof sentenceCount == 'undefined') { sentenceCount = 3; } | ||
return faker.lorem.sentences(sentenceCount + faker.random.number(3)); | ||
}; | ||
self.paragraphs = function (paragraphCount, separator) { | ||
if (typeof separator === "undefined") { | ||
separator = "\n \r"; | ||
} | ||
if (typeof paragraphCount == 'undefined') { paragraphCount = 3; } | ||
var paragraphs = []; | ||
for (paragraphCount; paragraphCount > 0; paragraphCount--) { | ||
paragraphs.push(faker.lorem.paragraph()); | ||
} | ||
return paragraphs.join(separator); | ||
} | ||
return self; | ||
}; | ||
module.exports = lorem; | ||
module["exports"] = Lorem; |
136
lib/name.js
@@ -1,65 +0,97 @@ | ||
var faker = require('../index'); | ||
function Name (faker) { | ||
var _name = { | ||
this.firstName = function (gender) { | ||
if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") { | ||
// some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets, | ||
// we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback ) | ||
if (typeof gender !== 'number') { | ||
gender = faker.random.number(1); | ||
} | ||
if (gender === 0) { | ||
return faker.random.arrayElement(faker.locales[faker.locale].name.male_first_name) | ||
} else { | ||
return faker.random.arrayElement(faker.locales[faker.locale].name.female_first_name); | ||
} | ||
} | ||
return faker.random.arrayElement(faker.definitions.name.first_name); | ||
}; | ||
firstName: function () { | ||
if (typeof faker.definitions.name.male_first_name !== "undefined" && typeof faker.definitions.name.female_first_name !== "undefined") { | ||
// some locale datasets ( like ru ) have first_name split by gender. since the name.first_name field does not exist in these datasets, | ||
// we must randomly pick a name from either gender array so faker.name.firstName will return the correct locale data ( and not fallback ) | ||
var rand = faker.random.number(1); | ||
if (rand === 0) { | ||
return faker.random.array_element(faker.locales[faker.locale].name.male_first_name); | ||
} else { | ||
return faker.random.array_element(faker.locales[faker.locale].name.female_first_name); | ||
} | ||
this.lastName = function (gender) { | ||
if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.definitions.name.female_last_name !== "undefined") { | ||
// some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian | ||
// see above comment of firstName method | ||
if (typeof gender !== 'number') { | ||
gender = faker.random.number(1); | ||
} | ||
return faker.random.array_element(faker.definitions.name.first_name); | ||
}, | ||
if (gender === 0) { | ||
return faker.random.arrayElement(faker.locales[faker.locale].name.male_last_name); | ||
} else { | ||
return faker.random.arrayElement(faker.locales[faker.locale].name.female_last_name); | ||
} | ||
} | ||
return faker.random.arrayElement(faker.definitions.name.last_name); | ||
}; | ||
lastName: function () { | ||
if (typeof faker.definitions.name.male_last_name !== "undefined" && typeof faker.defintions.name.female_last_name !== "undefined") { | ||
// some locale datasets ( like ru ) have last_name split by gender. i have no idea how last names can have genders, but also i do not speak russian | ||
// see above comment of firstName method | ||
var rand = faker.random.number(1); | ||
if (rand === 0) { | ||
return faker.random.array_element(faker.locales[faker.locale].name.male_last_name); | ||
} else { | ||
return faker.random.array_element(faker.locales[faker.locale].name.female_last_name); | ||
} | ||
this.findName = function (firstName, lastName, gender) { | ||
var r = faker.random.number(8); | ||
var prefix, suffix; | ||
// in particular locales first and last names split by gender, | ||
// thus we keep consistency by passing 0 as male and 1 as female | ||
if (typeof gender !== 'number') { | ||
gender = faker.random.number(1); | ||
} | ||
return faker.random.array_element(faker.definitions.name.last_name); | ||
}, | ||
firstName = firstName || faker.name.firstName(gender); | ||
lastName = lastName || faker.name.lastName(gender); | ||
switch (r) { | ||
case 0: | ||
prefix = faker.name.prefix(); | ||
if (prefix) { | ||
return prefix + " " + firstName + " " + lastName; | ||
} | ||
case 1: | ||
suffix = faker.name.prefix(); | ||
if (suffix) { | ||
return firstName + " " + lastName + " " + suffix; | ||
} | ||
} | ||
findName: function (firstName, lastName) { | ||
var r = faker.random.number(8); | ||
firstName = firstName || faker.name.firstName(); | ||
lastName = lastName || faker.name.lastName(); | ||
switch (r) { | ||
case 0: | ||
return faker.name.prefix() + " " + firstName + " " + lastName; | ||
case 1: | ||
return firstName + " " + lastName + " " + faker.name.suffix(); | ||
} | ||
return firstName + " " + lastName; | ||
}; | ||
return firstName + " " + lastName; | ||
}, | ||
this.jobTitle = function () { | ||
return faker.name.jobDescriptor() + " " + | ||
faker.name.jobArea() + " " + | ||
faker.name.jobType(); | ||
}; | ||
prefix: function () { | ||
return faker.random.array_element(faker.definitions.name.prefix); | ||
}, | ||
this.prefix = function () { | ||
return faker.random.arrayElement(faker.definitions.name.prefix); | ||
}; | ||
suffix: function () { | ||
return faker.random.array_element(faker.definitions.name.suffix); | ||
}, | ||
this.suffix = function () { | ||
return faker.random.arrayElement(faker.definitions.name.suffix); | ||
}; | ||
title: function() { | ||
var descriptor = faker.random.array_element(faker.definitions.name.title.descriptor), | ||
level = faker.random.array_element(faker.definitions.name.title.level), | ||
job = faker.random.array_element(faker.definitions.name.title.job); | ||
this.title = function() { | ||
var descriptor = faker.random.arrayElement(faker.definitions.name.title.descriptor), | ||
level = faker.random.arrayElement(faker.definitions.name.title.level), | ||
job = faker.random.arrayElement(faker.definitions.name.title.job); | ||
return descriptor + " " + level + " " + job; | ||
} | ||
return descriptor + " " + level + " " + job; | ||
}; | ||
}; | ||
this.jobDescriptor = function () { | ||
return faker.random.arrayElement(faker.definitions.name.title.descriptor); | ||
}; | ||
module.exports = _name; | ||
this.jobArea = function () { | ||
return faker.random.arrayElement(faker.definitions.name.title.level); | ||
}; | ||
this.jobType = function () { | ||
return faker.random.arrayElement(faker.definitions.name.title.job); | ||
}; | ||
} | ||
module['exports'] = Name; |
@@ -1,21 +0,23 @@ | ||
var faker = require('../index'); | ||
var Phone = function (faker) { | ||
var self = this; | ||
var phone = { | ||
phoneNumber: function (format) { | ||
format = format || faker.phone.phoneFormats(); | ||
return faker.helpers.replaceSymbolWithNumber(format); | ||
}, | ||
self.phoneNumber = function (format) { | ||
format = format || faker.phone.phoneFormats(); | ||
return faker.helpers.replaceSymbolWithNumber(format); | ||
}; | ||
// FIXME: this is strange passing in an array index. | ||
phoneNumberFormat: function (phoneFormatsArrayIndex) { | ||
phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0; | ||
return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]); | ||
}, | ||
// FIXME: this is strange passing in an array index. | ||
self.phoneNumberFormat = function (phoneFormatsArrayIndex) { | ||
phoneFormatsArrayIndex = phoneFormatsArrayIndex || 0; | ||
return faker.helpers.replaceSymbolWithNumber(faker.definitions.phone_number.formats[phoneFormatsArrayIndex]); | ||
}; | ||
phoneFormats: function () { | ||
return faker.random.array_element(faker.definitions.phone_number.formats); | ||
} | ||
self.phoneFormats = function () { | ||
return faker.random.arrayElement(faker.definitions.phone_number.formats); | ||
}; | ||
return self; | ||
}; | ||
module.exports = phone; | ||
module['exports'] = Phone; |
var mersenne = require('../vendor/mersenne'); | ||
var faker = require('../index'); | ||
var random = { | ||
// returns a single random number based on a max number or range | ||
number: function (options) { | ||
function Random (faker) { | ||
// returns a single random number based on a max number or range | ||
this.number = function (options) { | ||
if (typeof options === "number") { | ||
options = { | ||
max: options | ||
}; | ||
} | ||
if (typeof options === "number") { | ||
options = { | ||
max: options | ||
}; | ||
} | ||
options = options || {}; | ||
options = options || {}; | ||
if (typeof options.min === "undefined") { | ||
options.min = 0; | ||
} | ||
if (typeof options.min === "undefined") { | ||
options.min = 0; | ||
} | ||
if (typeof options.max === "undefined") { | ||
options.max = 1; | ||
} | ||
if (typeof options.precision === "undefined") { | ||
options.precision = 1; | ||
} | ||
if (typeof options.max === "undefined") { | ||
options.max = 99999; | ||
} | ||
if (typeof options.precision === "undefined") { | ||
options.precision = 1; | ||
} | ||
// Make the range inclusive of the max value | ||
var max = options.max; | ||
if (max >= 0) { | ||
max += options.precision; | ||
} | ||
var randomNumber = options.precision * Math.floor( | ||
mersenne.rand(max / options.precision, options.min / options.precision)); | ||
// Make the range inclusive of the max value | ||
var max = options.max; | ||
if (max >= 0) { | ||
max += options.precision; | ||
} | ||
return randomNumber; | ||
var randomNumber = options.precision * Math.floor( | ||
mersenne.rand(max / options.precision, options.min / options.precision)); | ||
}, | ||
return randomNumber; | ||
// takes an array and returns a random element of the array | ||
array_element: function (array) { | ||
array = array || ["a", "b", "c"]; | ||
var r = faker.random.number({ max: array.length - 1 }); | ||
return array[r]; | ||
}, | ||
} | ||
// takes an object and returns the randomly key or value | ||
object_element: function (object, field) { | ||
object = object || {}; | ||
var array = Object.keys(object); | ||
var key = faker.random.array_element(array); | ||
// takes an array and returns a random element of the array | ||
this.arrayElement = function (array) { | ||
array = array || ["a", "b", "c"]; | ||
var r = faker.random.number({ max: array.length - 1 }); | ||
return array[r]; | ||
} | ||
return field === "key" ? key : object[key]; | ||
}, | ||
// takes an object and returns the randomly key or value | ||
this.objectElement = function (object, field) { | ||
object = object || { "foo": "bar", "too": "car" }; | ||
var array = Object.keys(object); | ||
var key = faker.random.arrayElement(array); | ||
uuid : function () { | ||
var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; | ||
var replacePlaceholders = function (placeholder) { | ||
var random = Math.random()*16|0; | ||
var value = placeholder == 'x' ? random : (random &0x3 | 0x8); | ||
return value.toString(16); | ||
}; | ||
return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders); | ||
}, | ||
return field === "key" ? key : object[key]; | ||
} | ||
boolean: function () { | ||
return !!faker.random.number(1) | ||
} | ||
}; | ||
this.uuid = function () { | ||
var RFC4122_TEMPLATE = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'; | ||
var replacePlaceholders = function (placeholder) { | ||
var random = Math.random()*16|0; | ||
var value = placeholder == 'x' ? random : (random &0x3 | 0x8); | ||
return value.toString(16); | ||
}; | ||
return RFC4122_TEMPLATE.replace(/[xy]/g, replacePlaceholders); | ||
} | ||
module.exports = random; | ||
this.boolean =function () { | ||
return !!faker.random.number(1) | ||
} | ||
return this; | ||
} | ||
module['exports'] = Random; | ||
// module.exports = random; |
@@ -1,2 +0,2 @@ | ||
faker.js - Copyright (c) 2014-2015 | ||
faker.js - Copyright (c) 2010-2015 | ||
Matthew Bergman & Marak Squires | ||
@@ -27,2 +27,2 @@ http://github.com/marak/faker.js/ | ||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
{ | ||
"name": "faker", | ||
"description": "Generate massive amounts of fake contextual data", | ||
"version": "2.1.5", | ||
"version": "3.0.0", | ||
"contributors": [ | ||
"Marak Squires <marak.squires@gmail.com>", | ||
"Matthew Bergman <matt@novafabrica.com>", | ||
"Tomasz Ducin <tomasz.ducin@gmail.com>" | ||
"Matthew Bergman <matt@novafabrica.com>" | ||
], | ||
@@ -10,0 +9,0 @@ "repository": { |
294
Readme.md
@@ -5,3 +5,3 @@ # faker.js - generate massive amounts of fake data in the browser and node.js | ||
[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/Faker.js) | ||
[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/faker.js) | ||
@@ -27,3 +27,3 @@ [![npm version](https://badge.fury.io/js/faker.svg)](http://badge.fury.io/js/faker) | ||
var faker = require('./faker'); | ||
var faker = require('faker'); | ||
@@ -34,36 +34,19 @@ var randomName = faker.name.findName(); // Rowan Nikolaus | ||
## Dependent tools | ||
## API | ||
### Fake JSON Schema | ||
### Faker.fake() | ||
Use faker generators to populate JSON Schema samples. | ||
See: https://github.com/pateketrueke/json-schema-faker/ | ||
As of version `v3.0.0` faker.js contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format. | ||
### CLI | ||
**Example:** | ||
Run faker generators from Command Line. | ||
See: https://github.com/lestoni/faker-cli | ||
``` js | ||
console.log(faker.fake(', ')); | ||
// outputs: "Marks, Dean Sr." | ||
``` | ||
## Localization | ||
This will interpolate the format string with the value of methods `name.lastName()`, `name.firstName()`, and `name.suffix()` | ||
As of version `v2.0.0` faker.js supports 27 different language definition packs. | ||
### API Methods | ||
The default language is set to English. | ||
Setting a new locale is simple: | ||
```js | ||
// sets locale to de | ||
faker.locale = "de"; | ||
``` | ||
Read further for complete list of locales. | ||
## API | ||
* name | ||
* firstName | ||
* lastName | ||
* findName | ||
* prefix | ||
* suffix | ||
* address | ||
@@ -77,5 +60,7 @@ * zipCode | ||
* streetSuffix | ||
* streetPrefix | ||
* secondaryAddress | ||
* county | ||
* country | ||
* countryCode | ||
* state | ||
@@ -85,17 +70,10 @@ * stateAbbr | ||
* longitude | ||
* phone | ||
* phoneNumber | ||
* phoneNumberFormat | ||
* phoneFormats | ||
* internet | ||
* avatar | ||
* userName | ||
* domainName | ||
* domainSuffix | ||
* domainWord | ||
* ip | ||
* userAgent | ||
* commerce | ||
* color | ||
* password | ||
* department | ||
* productName | ||
* price | ||
* productAdjective | ||
* productMaterial | ||
* product | ||
* company | ||
@@ -113,2 +91,35 @@ * suffixes | ||
* bsNoun | ||
* date | ||
* past | ||
* future | ||
* between | ||
* recent | ||
* fake | ||
* finance | ||
* account | ||
* accountName | ||
* mask | ||
* amount | ||
* transactionType | ||
* currencyCode | ||
* currencyName | ||
* currencySymbol | ||
* hacker | ||
* abbreviation | ||
* adjective | ||
* noun | ||
* verb | ||
* ingverb | ||
* phrase | ||
* helpers | ||
* randomize | ||
* slugify | ||
* replaceSymbolWithNumber | ||
* replaceSymbols | ||
* shuffle | ||
* mustache | ||
* createCard | ||
* contextualCard | ||
* userCard | ||
* createTransaction | ||
* image | ||
@@ -131,2 +142,16 @@ * image | ||
* transport | ||
* internet | ||
* avatar | ||
* userName | ||
* protocol | ||
* url | ||
* domainName | ||
* domainSuffix | ||
* domainWord | ||
* ip | ||
* userAgent | ||
* color | ||
* mac | ||
* password | ||
* lorem | ||
@@ -138,84 +163,86 @@ * words | ||
* paragraphs | ||
* helpers | ||
* randomNumber | ||
* randomize | ||
* slugify | ||
* replaceSymbolWithNumber | ||
* shuffle | ||
* mustache | ||
* createCard | ||
* contextualCard | ||
* userCard | ||
* createTransaction | ||
* date | ||
* past | ||
* future | ||
* between | ||
* recent | ||
* name | ||
* firstName | ||
* lastName | ||
* findName | ||
* jobTitle | ||
* prefix | ||
* suffix | ||
* title | ||
* jobDescriptor | ||
* jobArea | ||
* jobType | ||
* phone | ||
* phoneNumber | ||
* phoneNumberFormat | ||
* phoneFormats | ||
* random | ||
* number | ||
* array_element | ||
* object_element | ||
* arrayElement | ||
* objectElement | ||
* uuid | ||
* finance | ||
* account | ||
* accountName | ||
* mask | ||
* amount | ||
* transactionType | ||
* currencyCode | ||
* currencyName | ||
* currencySymbol | ||
* hacker | ||
* abbreviation | ||
* adjective | ||
* noun | ||
* verb | ||
* ingverb | ||
* phrase | ||
* locales | ||
* de | ||
* de_AT | ||
* de_CH | ||
* en | ||
* en_AU | ||
* en_BORK | ||
* en_CA | ||
* en_GB | ||
* en_IND | ||
* en_US | ||
* en_au_ocker | ||
* es | ||
* fa | ||
* fr | ||
* it | ||
* ja | ||
* ko | ||
* nb_NO | ||
* nep | ||
* nl | ||
* pl | ||
* pt_BR | ||
* ru | ||
* sk | ||
* sv | ||
* vi | ||
* zh_CN | ||
* locale | ||
* 0 | ||
* 1 | ||
* localeFallback | ||
* 0 | ||
* 1 | ||
* definitions | ||
* name | ||
* address | ||
* company | ||
* lorem | ||
* hacker | ||
* phone_number | ||
* finance | ||
* internet | ||
* boolean | ||
## Localization | ||
As of version `v2.0.0` faker.js supports over 27 different language definition packs. | ||
The default language is set to English. | ||
Setting a new locale is simple: | ||
```js | ||
// sets locale to de | ||
faker.locale = "de"; | ||
``` | ||
* de | ||
* de_AT | ||
* de_CH | ||
* en | ||
* en_AU | ||
* en_BORK | ||
* en_CA | ||
* en_GB | ||
* en_IE | ||
* en_IND | ||
* en_US | ||
* en_au_ocker | ||
* es | ||
* fa | ||
* fr | ||
* fr_CA | ||
* ge | ||
* it | ||
* ja | ||
* ko | ||
* nb_NO | ||
* nep | ||
* nl | ||
* pl | ||
* pt_BR | ||
* ru | ||
* sk | ||
* sv | ||
* tr | ||
* uk | ||
* vi | ||
* zh_CN | ||
* zh_TW | ||
### Individual Localization Packages | ||
As of vesion `v3.0.0` faker.js supports incremental loading of locales. | ||
By default, requiring `faker` will include *all* locale data. | ||
In a production environment, you may only want to include the locale data for a specific set of locales. | ||
```js | ||
// loads only de locale | ||
var faker = require('faker/locale/de'); | ||
``` | ||
## Tests | ||
@@ -228,2 +255,29 @@ | ||
## Projects Built with faker.js | ||
### Fake JSON Schema | ||
Use faker generators to populate JSON Schema samples. | ||
See: https://github.com/pateketrueke/json-schema-faker/ | ||
### CLI | ||
Run faker generators from Command Line. | ||
See: https://github.com/lestoni/faker-cli | ||
**Want to see your project added here? Let us know!** | ||
### Meteor | ||
#### Meteor installation | ||
meteor add practicalmeteor:faker | ||
#### meteor usage, both client and server | ||
var randomName = faker.name.findName(); // Rowan Nikolaus | ||
var randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz | ||
var randomCard = faker.helpers.createCard(); // random contact card containing many properties | ||
## Authors | ||
@@ -230,0 +284,0 @@ |
@@ -66,4 +66,4 @@ if (typeof module !== 'undefined') { | ||
}); | ||
describe("streetName()", function () { | ||
@@ -104,5 +104,5 @@ beforeEach(function () { | ||
}); | ||
describe("streetAddress()", function () { | ||
@@ -162,7 +162,7 @@ beforeEach(function () { | ||
}); | ||
describe("secondaryAddress()", function () { | ||
it("randomly chooses an Apt or Suite number", function () { | ||
sinon.spy(faker.random, 'array_element'); | ||
sinon.spy(faker.random, 'arrayElement'); | ||
@@ -177,4 +177,4 @@ var address = faker.address.secondaryAddress(); | ||
assert.ok(address); | ||
assert.ok(faker.random.array_element.calledWith(expected_array)); | ||
faker.random.array_element.restore(); | ||
assert.ok(faker.random.arrayElement.calledWith(expected_array)); | ||
faker.random.arrayElement.restore(); | ||
}); | ||
@@ -203,2 +203,12 @@ }); | ||
describe("countryCode()", function () { | ||
it("returns random countryCode", function () { | ||
sinon.spy(faker.address, 'countryCode'); | ||
var countryCode = faker.address.countryCode(); | ||
assert.ok(countryCode); | ||
assert.ok(faker.address.countryCode.called); | ||
faker.address.countryCode.restore(); | ||
}); | ||
}); | ||
describe("state()", function () { | ||
@@ -214,2 +224,27 @@ it("returns random state", function () { | ||
describe("zipCode()", function () { | ||
it("returns random zipCode", function () { | ||
sinon.spy(faker.address, 'zipCode'); | ||
var zipCode = faker.address.zipCode(); | ||
assert.ok(zipCode); | ||
assert.ok(faker.address.zipCode.called); | ||
faker.address.zipCode.restore(); | ||
}); | ||
it("returns random zipCode - user specified format", function () { | ||
var zipCode = faker.address.zipCode("?#? #?#"); | ||
assert.ok(zipCode.match(/^[A-Za-z]\d[A-Za-z]\s\d[A-Za-z]\d$/)); | ||
// try another format | ||
zipCode = faker.address.zipCode("###-###"); | ||
assert.ok(zipCode.match(/^\d{3}-\d{3}$/)); | ||
}); | ||
it("returns zipCode with proper locale format", function () { | ||
// we'll use the en_CA locale.. | ||
faker.locale = "en_CA"; | ||
var zipCode = faker.address.zipCode(); | ||
assert.ok(zipCode.match(/^[A-Za-z]\d[A-Za-z]\s?\d[A-Za-z]\d$/)); | ||
}); | ||
}); | ||
describe("latitude()", function () { | ||
@@ -216,0 +251,0 @@ it("returns random latitude", function () { |
@@ -21,3 +21,3 @@ if (typeof module !== 'undefined') { | ||
name: ['firstName', 'lastName', 'findName'], | ||
name: ['firstName', 'lastName', 'findName', 'jobTitle'], | ||
@@ -27,2 +27,4 @@ phone: ['phoneNumber'], | ||
finance: ['account', 'accountName', 'mask', 'amount', 'transactionType', 'currencyCode', 'currencyName', 'currencySymbol'] | ||
// commerce: ['color', 'department', 'productName', 'price'] | ||
}; | ||
@@ -29,0 +31,0 @@ |
@@ -62,3 +62,3 @@ if (typeof module !== 'undefined') { | ||
it("returns phrase comprising of a catch phrase adjective, descriptor, and noun", function () { | ||
sinon.spy(faker.random, 'array_element'); | ||
sinon.spy(faker.random, 'arrayElement'); | ||
sinon.spy(faker.company, 'catchPhraseAdjective'); | ||
@@ -70,3 +70,3 @@ sinon.spy(faker.company, 'catchPhraseDescriptor'); | ||
assert.ok(phrase.split(' ').length >= 3); | ||
assert.ok(faker.random.array_element.calledThrice); | ||
assert.ok(faker.random.arrayElement.calledThrice); | ||
assert.ok(faker.company.catchPhraseAdjective.calledOnce); | ||
@@ -76,3 +76,3 @@ assert.ok(faker.company.catchPhraseDescriptor.calledOnce); | ||
faker.random.array_element.restore(); | ||
faker.random.arrayElement.restore(); | ||
faker.company.catchPhraseAdjective.restore(); | ||
@@ -86,3 +86,3 @@ faker.company.catchPhraseDescriptor.restore(); | ||
it("returns phrase comprising of a BS adjective, buzz, and noun", function () { | ||
sinon.spy(faker.random, 'array_element'); | ||
sinon.spy(faker.random, 'arrayElement'); | ||
sinon.spy(faker.company, 'bsAdjective'); | ||
@@ -94,3 +94,3 @@ sinon.spy(faker.company, 'bsBuzz'); | ||
assert.ok(typeof bs === 'string'); | ||
assert.ok(faker.random.array_element.calledThrice); | ||
assert.ok(faker.random.arrayElement.calledThrice); | ||
assert.ok(faker.company.bsAdjective.calledOnce); | ||
@@ -100,3 +100,3 @@ assert.ok(faker.company.bsBuzz.calledOnce); | ||
faker.random.array_element.restore(); | ||
faker.random.arrayElement.restore(); | ||
faker.company.bsAdjective.restore(); | ||
@@ -103,0 +103,0 @@ faker.company.bsBuzz.restore(); |
@@ -56,10 +56,2 @@ if (typeof module !== 'undefined') { | ||
// Make sure we keep this function for backward-compatibility. | ||
describe("randomNumber()", function () { | ||
it("returns an integer", function () { | ||
var num = faker.helpers.randomNumber(); | ||
assert.ok(typeof num === 'number'); | ||
}); | ||
}); | ||
// Make sure we keep this function for backward-compatibility. | ||
describe("randomize()", function () { | ||
@@ -66,0 +58,0 @@ it("returns a random element from an array", function () { |
@@ -36,3 +36,3 @@ if (typeof module !== 'undefined') { | ||
sinon.spy(faker.name, 'lastName'); | ||
sinon.spy(faker.random, 'array_element'); | ||
sinon.spy(faker.random, 'arrayElement'); | ||
var username = faker.internet.userName(); | ||
@@ -43,3 +43,3 @@ | ||
assert.ok(faker.name.lastName.called); | ||
assert.ok(faker.random.array_element.calledWith(['.', '_'])); | ||
assert.ok(faker.random.arrayElement.calledWith(['.', '_'])); | ||
@@ -49,2 +49,3 @@ faker.random.number.restore(); | ||
faker.name.lastName.restore(); | ||
faker.random.arrayElement.restore(); | ||
}); | ||
@@ -138,2 +139,9 @@ }); | ||
}); | ||
describe("mac()", function () { | ||
it("returns a random MAC address with 6 hexadecimal digits", function () { | ||
var mac = faker.internet.mac(); | ||
assert.ok(mac.match(/^([a-f0-9]{2}:){5}[a-f0-9]{2}$/)); | ||
}); | ||
}); | ||
}); |
@@ -161,3 +161,3 @@ if (typeof module !== 'undefined') { | ||
assert.ok(typeof paragraphs === 'string'); | ||
var parts = paragraphs.split('\n \r\t'); | ||
var parts = paragraphs.split('\n \r'); | ||
assert.equal(parts.length, 3); | ||
@@ -176,3 +176,3 @@ assert.ok(faker.lorem.paragraph.calledThrice); | ||
assert.ok(typeof paragraphs === 'string'); | ||
var parts = paragraphs.split('\n \r\t'); | ||
var parts = paragraphs.split('\n \r'); | ||
assert.equal(parts.length, 5); | ||
@@ -179,0 +179,0 @@ |
@@ -72,12 +72,33 @@ if (typeof module !== 'undefined') { | ||
describe("title()", function () { | ||
it("returns a random title", function () { | ||
sinon.stub(faker.name, 'title').returns('Lead Solutions Supervisor'); | ||
it("returns a random title", function () { | ||
sinon.stub(faker.name, 'title').returns('Lead Solutions Supervisor'); | ||
var title = faker.name.title(); | ||
var title = faker.name.title(); | ||
assert.equal(title, 'Lead Solutions Supervisor'); | ||
assert.equal(title, 'Lead Solutions Supervisor'); | ||
faker.name.title.restore(); | ||
faker.name.title.restore(); | ||
}); | ||
}); | ||
describe("jobTitle()", function () { | ||
it("returns a job title consisting of a descriptor, area, and type", function () { | ||
sinon.spy(faker.random, 'arrayElement'); | ||
sinon.spy(faker.name, 'jobDescriptor'); | ||
sinon.spy(faker.name, 'jobArea'); | ||
sinon.spy(faker.name, 'jobType'); | ||
var jobTitle = faker.name.jobTitle(); | ||
assert.ok(typeof jobTitle === 'string'); | ||
assert.ok(faker.random.arrayElement.calledThrice); | ||
assert.ok(faker.name.jobDescriptor.calledOnce); | ||
assert.ok(faker.name.jobArea.calledOnce); | ||
assert.ok(faker.name.jobType.calledOnce); | ||
faker.random.arrayElement.restore(); | ||
faker.name.jobDescriptor.restore(); | ||
faker.name.jobArea.restore(); | ||
faker.name.jobType.restore(); | ||
}); | ||
}); | ||
}); |
@@ -74,6 +74,6 @@ if (typeof module !== 'undefined') { | ||
describe('array_element', function() { | ||
describe('arrayElement', function() { | ||
it('returns a random element in the array', function() { | ||
var testArray = ['hello', 'to', 'you', 'my', 'friend']; | ||
assert.ok(testArray.indexOf(faker.random.array_element(testArray)) > -1); | ||
assert.ok(testArray.indexOf(faker.random.arrayElement(testArray)) > -1); | ||
}); | ||
@@ -83,3 +83,3 @@ | ||
var testArray = ['hello']; | ||
assert.ok(testArray.indexOf(faker.random.array_element(testArray)) > -1); | ||
assert.ok(testArray.indexOf(faker.random.arrayElement(testArray)) > -1); | ||
}); | ||
@@ -86,0 +86,0 @@ }); |
@@ -266,3 +266,3 @@ // this program is a JavaScript version of Mersenne Twister, with concealment and encapsulation in class, | ||
exports.rand = function(max, min) { | ||
if (!max) | ||
if (max === undefined) | ||
{ | ||
@@ -269,0 +269,0 @@ min = 0; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
NPM Shrinkwrap
Supply chain riskPackage contains a shrinkwrap file. This may allow the package to bypass normal install procedures.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
36091106
1085
947681
307
69
1
285
4