All files / lib index.js

100% Statements 68/68
84.21% Branches 16/19
100% Functions 6/6
100% Lines 68/68

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159                                                  1x   1x     1x 1x 1x   1x 1x 1x   1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x 1x   1x                                     1x 15x 15x     15x 2x 2x     13x 73x   34305x       30178x     4127x                 1x 43x     1x 48x 48x 48x   1x  
/*
 
   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
 
*/
 
/**
 *
 * @namespace faker
 */
function Faker (opts) {
 
  var self = this;
 
  opts = opts || {};
 
  // assign options
  var locales = self.locales || opts.locales || {};
  var locale = self.locale || opts.locale || "en";
  var localeFallback = self.localeFallback || opts.localeFallback || "en";
 
  self.locales = locales;
  self.locale = locale;
  self.localeFallback = localeFallback;
 
  self.definitions = {};
 
  var Fake = require('./fake');
  self.fake = new Fake(self).fake;
 
  var Unique = require('./unique');
  self.unique = new Unique(self).unique;
 
  var Random = require('./random');
  self.random = new Random(self);
 
  var Helpers = require('./helpers');
  self.helpers = new Helpers(self);
 
  var Name = require('./name');
  self.name = new Name(self);
 
  var Address = require('./address');
  self.address = new Address(self);
 
  var Company = require('./company');
  self.company = new Company(self);
 
  var Finance = require('./finance');
  self.finance = new Finance(self);
 
  var Image = require('./image');
  self.image = new Image(self);
 
  var Lorem = require('./lorem');
  self.lorem = new Lorem(self);
 
  var Hacker = require('./hacker');
  self.hacker = new Hacker(self);
 
  var Internet = require('./internet');
  self.internet = new Internet(self);
 
  var Database = require('./database');
  self.database = new Database(self);
 
  var Phone = require('./phone_number');
  self.phone = new Phone(self);
 
  var _Date = require('./date');
  self.date = new _Date(self);
 
  var _Time = require('./time');
  self.time = new _Time(self);
 
  var Commerce = require('./commerce');
  self.commerce = new Commerce(self);
 
  var System = require('./system');
  self.system = new System(self);
 
  var Git = require('./git');
  self.git = new Git(self);
 
  var Vehicle = require('./vehicle');
  self.vehicle = new Vehicle(self);
 
  var _definitions = {
    "name": ["first_name", "last_name", "prefix", "suffix", "gender", "title", "male_prefix", "female_prefix", "male_first_name", "female_first_name", "male_middle_name", "female_middle_name", "male_last_name", "female_last_name"],
    "address": ["city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "state", "state_abbr", "street_prefix", "postcode", "postcode_by_state", "direction", "direction_abbr"],
    "company": ["adjective", "noun", "descriptor", "bs_adjective", "bs_noun", "bs_verb", "suffix"],
    "lorem": ["words"],
    "hacker": ["abbreviation", "adjective", "noun", "verb", "ingverb", "phrase"],
    "phone_number": ["formats"],
    "finance": ["account_type", "transaction_type", "currency", "iban", "credit_card"],
    "internet": ["avatar_uri", "domain_suffix", "free_email", "example_email", "password"],
    "commerce": ["color", "department", "product_name", "price", "categories", "product_description"],
    "database": ["collation", "column", "engine", "type"],
    "system": ["mimeTypes", "directoryPaths"],
    "date": ["month", "weekday"],
    "vehicle": ["vehicle", "manufacturer", "model", "type", "fuel", "vin", "color"],
    "title": "",
    "separator": ""
  };
 
  // Create a Getter for all definitions.foo.bar properties
  Object.keys(_definitions).forEach(function(d){
    Eif (typeof self.definitions[d] === "undefined") {
      self.definitions[d] = {};
    }
 
    if (typeof _definitions[d] === "string") {
        self.definitions[d] = _definitions[d];
      return;
    }
 
    _definitions[d].forEach(function(p){
      Object.defineProperty(self.definitions[d], p, {
        get: function () {
          if (typeof self.locales[self.locale][d] === "undefined" || typeof self.locales[self.locale][d][p] === "undefined") {
            // certain localization sets contain less data then others.
            // in the case of a missing definition, use the default localeFallback to substitute the missing set data
            // throw new Error('unknown property ' + d + p)
            return self.locales[localeFallback][d][p];
          } else {
            // return localized data
            return self.locales[self.locale][d][p];
          }
        }
      });
    });
  });
 
};
 
Faker.prototype.setLocale = function (locale) {
  this.locale = locale;
}
 
Faker.prototype.seed = function(value) {
  var Random = require('./random');
  this.seedValue = value;
  this.random = new Random(this, this.seedValue);
}
module['exports'] = Faker;