UNPKG

18.6 kBMarkdownView Raw
1# faker.js - generate massive amounts of fake data in the browser and node.js
2
3![Faker.js](https://raw.githubusercontent.com/Marak/faker.js/master/logo.png)
4
5[![Build Status](https://travis-ci.org/Marak/faker.js.svg?branch=master)](https://travis-ci.org/Marak/faker.js) [![Coverage Status](https://coveralls.io/repos/github/Marak/faker.js/badge.svg?branch=master)](https://coveralls.io/github/Marak/faker.js?branch=master)
6
7[![npm version](https://badge.fury.io/js/faker.svg)](http://badge.fury.io/js/faker)
8
9[![OpenCollective](https://opencollective.com/fakerjs/backers/badge.svg)](#backers)
10[![OpenCollective](https://opencollective.com/fakerjs/sponsors/badge.svg)](#sponsors)
11[![Gitter chat](https://badges.gitter.im/marak/faker.js.png)](https://gitter.im/Faker-js/community)
12
13## Demo
14
15[https://rawgit.com/Marak/faker.js/master/examples/browser/index.html](https://rawgit.com/Marak/faker.js/master/examples/browser/index.html)
16
17### Faker Cloud
18
19Don't have a local development setup ready?
20
21Try our hosted version of Faker at [https://fakercloud.com/api](https://fakercloud.com/api)
22
23https://github.com/faker/faker-cloud
24
25## Usage
26
27### Browser
28
29```html
30 <script src = "faker.js" type = "text/javascript"></script>
31 <script>
32 var randomName = faker.name.findName(); // Caitlyn Kerluke
33 var randomEmail = faker.internet.email(); // Rusty@arne.info
34 var randomCard = faker.helpers.createCard(); // random contact card containing many properties
35 </script>
36```
37
38### Node.js
39
40```js
41 var faker = require('faker');
42
43 var randomName = faker.name.findName(); // Rowan Nikolaus
44 var randomEmail = faker.internet.email(); // Kassandra.Haley@erich.biz
45 var randomCard = faker.helpers.createCard(); // random contact card containing many properties
46```
47
48## API
49
50### JSDoc API Browser
51
52[http://marak.github.io/faker.js/](http://marak.github.io/faker.js/)
53
54### API Methods
55
56* address
57 * zipCode
58 * zipCodeByState
59 * city
60 * cityPrefix
61 * citySuffix
62 * cityName
63 * streetName
64 * streetAddress
65 * streetSuffix
66 * streetPrefix
67 * secondaryAddress
68 * county
69 * country
70 * countryCode
71 * state
72 * stateAbbr
73 * latitude
74 * longitude
75 * direction
76 * cardinalDirection
77 * ordinalDirection
78 * nearbyGPSCoordinate
79 * timeZone
80* animal
81 * dog
82 * cat
83 * snake
84 * bear
85 * lion
86 * cetacean
87 * horse
88 * bird
89 * cow
90 * fish
91 * crocodilia
92 * insect
93 * rabbit
94 * type
95* commerce
96 * color
97 * department
98 * productName
99 * price
100 * productAdjective
101 * productMaterial
102 * product
103 * productDescription
104* company
105 * suffixes
106 * companyName
107 * companySuffix
108 * catchPhrase
109 * bs
110 * catchPhraseAdjective
111 * catchPhraseDescriptor
112 * catchPhraseNoun
113 * bsAdjective
114 * bsBuzz
115 * bsNoun
116* database
117 * column
118 * type
119 * collation
120 * engine
121* datatype
122 * number
123 * float
124 * datetime
125 * string
126 * uuid
127 * boolean
128 * hexaDecimal
129 * json
130 * array
131* date
132 * past
133 * future
134 * between
135 * betweens
136 * recent
137 * soon
138 * month
139 * weekday
140* fake
141* finance
142 * account
143 * accountName
144 * routingNumber
145 * mask
146 * amount
147 * transactionType
148 * currencyCode
149 * currencyName
150 * currencySymbol
151 * bitcoinAddress
152 * litecoinAddress
153 * creditCardNumber
154 * creditCardCVV
155 * ethereumAddress
156 * iban
157 * bic
158 * transactionDescription
159* git
160 * branch
161 * commitEntry
162 * commitMessage
163 * commitSha
164 * shortSha
165* hacker
166 * abbreviation
167 * adjective
168 * noun
169 * verb
170 * ingverb
171 * phrase
172* helpers
173 * randomize
174 * slugify
175 * replaceSymbolWithNumber
176 * replaceSymbols
177 * replaceCreditCardSymbols
178 * repeatString
179 * regexpStyleStringParse
180 * shuffle
181 * mustache
182 * createCard
183 * contextualCard
184 * userCard
185 * createTransaction
186* image
187 * image
188 * avatar
189 * imageUrl
190 * abstract
191 * animals
192 * business
193 * cats
194 * city
195 * food
196 * nightlife
197 * fashion
198 * people
199 * nature
200 * sports
201 * technics
202 * transport
203 * dataUri
204 * lorempixel
205 * unsplash
206 * lorempicsum
207* internet
208 * avatar
209 * email
210 * exampleEmail
211 * userName
212 * protocol
213 * httpMethod
214 * url
215 * domainName
216 * domainSuffix
217 * domainWord
218 * ip
219 * ipv6
220 * port
221 * userAgent
222 * color
223 * mac
224 * password
225* lorem
226 * word
227 * words
228 * sentence
229 * slug
230 * sentences
231 * paragraph
232 * paragraphs
233 * text
234 * lines
235* mersenne
236 * rand
237 * seed
238 * seed_array
239* music
240 * genre
241* name
242 * firstName
243 * lastName
244 * middleName
245 * findName
246 * jobTitle
247 * gender
248 * prefix
249 * suffix
250 * title
251 * jobDescriptor
252 * jobArea
253 * jobType
254* phone
255 * phoneNumber
256 * phoneNumberFormat
257 * phoneFormats
258* random
259 * number
260 * float
261 * arrayElement
262 * arrayElements
263 * objectElement
264 * uuid
265 * boolean
266 * word
267 * words
268 * image
269 * locale
270 * alpha
271 * alphaNumeric
272 * hexaDecimal
273* system
274 * fileName
275 * commonFileName
276 * mimeType
277 * commonFileType
278 * commonFileExt
279 * fileType
280 * fileExt
281 * directoryPath
282 * filePath
283 * semver
284* time
285 * recent
286* unique
287* vehicle
288 * vehicle
289 * manufacturer
290 * model
291 * type
292 * fuel
293 * vin
294 * color
295 * vrm
296 * bicycle
297
298
299### Faker.fake()
300
301faker.js contains a super useful generator method `Faker.fake` for combining faker API methods using a mustache string format.
302
303**Example:**
304
305
306``` js
307console.log(faker.fake("{{name.lastName}}, {{name.firstName}} {{name.suffix}}"));
308// outputs: "Marks, Dean Sr."
309```
310
311
312This will interpolate the format string with the value of methods `name.lastName()`, `name.firstName()`, and `name.suffix()`
313
314## Localization
315
316As of version `v2.0.0` faker.js has support for multiple localities.
317
318The default language locale is set to English.
319
320Setting a new locale is simple:
321
322```js
323// sets locale to de
324faker.locale = "de";
325```
326
327 * az
328 * ar
329 * cz
330 * de
331 * de_AT
332 * de_CH
333 * en
334 * en_AU
335 * en_AU_ocker
336 * en_BORK
337 * en_CA
338 * en_GB
339 * en_IE
340 * en_IND
341 * en_US
342 * en_ZA
343 * es
344 * es_MX
345 * fa
346 * fi
347 * fr
348 * fr_CA
349 * fr_CH
350 * ge
351 * hy
352 * hr
353 * id_ID
354 * it
355 * ja
356 * ko
357 * nb_NO
358 * ne
359 * nl
360 * nl_BE
361 * pl
362 * pt_BR
363 * pt_PT
364 * ro
365 * ru
366 * sk
367 * sv
368 * tr
369 * uk
370 * vi
371 * zh_CN
372 * zh_TW
373
374
375### Individual Localization Packages
376
377faker.js supports incremental loading of locales.
378
379By default, requiring `faker` will include *all* locale data.
380
381In a production environment, you may only want to include the locale data for a specific set of locales.
382
383```js
384// loads only de locale
385var faker = require('faker/locale/de');
386```
387
388## Setting a randomness seed
389
390If you want consistent results, you can set your own seed:
391
392```js
393faker.seed(123);
394
395var firstRandom = faker.datatype.number();
396
397// Setting the seed again resets the sequence.
398faker.seed(123);
399
400var secondRandom = faker.datatype.number();
401
402console.log(firstRandom === secondRandom);
403```
404
405## Tests
406
407```shell
408npm install .
409make test
410```
411
412You can view a code coverage report generated in coverage/lcov-report/index.html.
413
414## Building faker.js
415
416faker uses [gulp](http://gulpjs.com/) to automate its build process. Each build operation is a separate task which can be run independently.
417
418### Browser Bundle
419
420```shell
421npm run browser
422```
423
424### Building JSDocs
425
426[JSDOC](https://jsdoc.app/) v3 HTML API documentation
427
428```shell
429npm run jsdoc
430```
431
432### Building ReadMe
433
434The `ReadMe.md` file for `faker.js` is automatically generated and should not be modified directly. All updates to `ReadMe.md` should be performed in `./build/src/docs.md` and then the build script should be run.
435
436```shell
437npm run readme
438```
439
440## Version Release Schedule
441
442faker.js is a popular project used by many organizations and individuals in production settings. Major and Minor version releases are generally on a monthly schedule. Bugs fixes are addressed by severity and fixed as soon as possible.
443
444If you require the absolute latest version of `faker.js` the `master` branch @ <http://github.com/marak/faker.js/> should always be up to date and working.
445
446## Maintainer
447
448#### Marak Squires
449
450faker.js - Copyright (c) 2020
451Marak Squires
452www.marak.com
453http://github.com/marak/faker.js/
454
455faker.js was inspired by and has used data definitions from:
456
457 * <https://github.com/stympy/faker/> - Copyright (c) 2007-2010 Benjamin Curtis
458 * <http://search.cpan.org/~jasonk/Data-Faker-0.07/> - Copyright 2004-2005 by Jason Kohles
459
460Permission is hereby granted, free of charge, to any person obtaining
461a copy of this software and associated documentation files (the
462"Software"), to deal in the Software without restriction, including
463without limitation the rights to use, copy, modify, merge, publish,
464distribute, sublicense, and/or sell copies of the Software, and to
465permit persons to whom the Software is furnished to do so, subject to
466the following conditions:
467
468The above copyright notice and this permission notice shall be
469included in all copies or substantial portions of the Software.
470
471THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
472EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
473MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
474NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
475LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
476OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
477WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
478
479## Backers
480
481Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/fakerjs#backer)]
482
483<a href="https://opencollective.com/fakerjs/backer/0/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/0/avatar.svg"></a>
484<a href="https://opencollective.com/fakerjs/backer/1/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/1/avatar.svg"></a>
485<a href="https://opencollective.com/fakerjs/backer/2/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/2/avatar.svg"></a>
486<a href="https://opencollective.com/fakerjs/backer/3/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/3/avatar.svg"></a>
487<a href="https://opencollective.com/fakerjs/backer/4/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/4/avatar.svg"></a>
488<a href="https://opencollective.com/fakerjs/backer/5/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/5/avatar.svg"></a>
489<a href="https://opencollective.com/fakerjs/backer/6/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/6/avatar.svg"></a>
490<a href="https://opencollective.com/fakerjs/backer/7/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/7/avatar.svg"></a>
491<a href="https://opencollective.com/fakerjs/backer/8/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/8/avatar.svg"></a>
492<a href="https://opencollective.com/fakerjs/backer/9/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/9/avatar.svg"></a>
493<a href="https://opencollective.com/fakerjs/backer/10/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/10/avatar.svg"></a>
494<a href="https://opencollective.com/fakerjs/backer/11/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/11/avatar.svg"></a>
495<a href="https://opencollective.com/fakerjs/backer/12/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/12/avatar.svg"></a>
496<a href="https://opencollective.com/fakerjs/backer/13/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/13/avatar.svg"></a>
497<a href="https://opencollective.com/fakerjs/backer/14/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/14/avatar.svg"></a>
498<a href="https://opencollective.com/fakerjs/backer/15/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/15/avatar.svg"></a>
499<a href="https://opencollective.com/fakerjs/backer/16/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/16/avatar.svg"></a>
500<a href="https://opencollective.com/fakerjs/backer/17/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/17/avatar.svg"></a>
501<a href="https://opencollective.com/fakerjs/backer/18/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/18/avatar.svg"></a>
502<a href="https://opencollective.com/fakerjs/backer/19/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/19/avatar.svg"></a>
503<a href="https://opencollective.com/fakerjs/backer/20/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/20/avatar.svg"></a>
504<a href="https://opencollective.com/fakerjs/backer/21/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/21/avatar.svg"></a>
505<a href="https://opencollective.com/fakerjs/backer/22/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/22/avatar.svg"></a>
506<a href="https://opencollective.com/fakerjs/backer/23/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/23/avatar.svg"></a>
507<a href="https://opencollective.com/fakerjs/backer/24/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/24/avatar.svg"></a>
508<a href="https://opencollective.com/fakerjs/backer/25/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/25/avatar.svg"></a>
509<a href="https://opencollective.com/fakerjs/backer/26/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/26/avatar.svg"></a>
510<a href="https://opencollective.com/fakerjs/backer/27/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/27/avatar.svg"></a>
511<a href="https://opencollective.com/fakerjs/backer/28/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/28/avatar.svg"></a>
512<a href="https://opencollective.com/fakerjs/backer/29/website" target="_blank"><img src="https://opencollective.com/fakerjs/backer/29/avatar.svg"></a>
513
514## Sponsors
515
516Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/fakerjs#sponsor)]
517
518<a href="https://opencollective.com/fakerjs/sponsor/0/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/0/avatar.svg"></a>
519<a href="https://opencollective.com/fakerjs/sponsor/1/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/1/avatar.svg"></a>
520<a href="https://opencollective.com/fakerjs/sponsor/2/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/2/avatar.svg"></a>
521<a href="https://opencollective.com/fakerjs/sponsor/3/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/3/avatar.svg"></a>
522<a href="https://opencollective.com/fakerjs/sponsor/4/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/4/avatar.svg"></a>
523<a href="https://opencollective.com/fakerjs/sponsor/5/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/5/avatar.svg"></a>
524<a href="https://opencollective.com/fakerjs/sponsor/6/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/6/avatar.svg"></a>
525<a href="https://opencollective.com/fakerjs/sponsor/7/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/7/avatar.svg"></a>
526<a href="https://opencollective.com/fakerjs/sponsor/8/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/8/avatar.svg"></a>
527<a href="https://opencollective.com/fakerjs/sponsor/9/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/9/avatar.svg"></a>
528<a href="https://opencollective.com/fakerjs/sponsor/10/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/10/avatar.svg"></a>
529<a href="https://opencollective.com/fakerjs/sponsor/11/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/11/avatar.svg"></a>
530<a href="https://opencollective.com/fakerjs/sponsor/12/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/12/avatar.svg"></a>
531<a href="https://opencollective.com/fakerjs/sponsor/13/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/13/avatar.svg"></a>
532<a href="https://opencollective.com/fakerjs/sponsor/14/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/14/avatar.svg"></a>
533<a href="https://opencollective.com/fakerjs/sponsor/15/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/15/avatar.svg"></a>
534<a href="https://opencollective.com/fakerjs/sponsor/16/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/16/avatar.svg"></a>
535<a href="https://opencollective.com/fakerjs/sponsor/17/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/17/avatar.svg"></a>
536<a href="https://opencollective.com/fakerjs/sponsor/18/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/18/avatar.svg"></a>
537<a href="https://opencollective.com/fakerjs/sponsor/19/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/19/avatar.svg"></a>
538<a href="https://opencollective.com/fakerjs/sponsor/20/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/20/avatar.svg"></a>
539<a href="https://opencollective.com/fakerjs/sponsor/21/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/21/avatar.svg"></a>
540<a href="https://opencollective.com/fakerjs/sponsor/22/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/22/avatar.svg"></a>
541<a href="https://opencollective.com/fakerjs/sponsor/23/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/23/avatar.svg"></a>
542<a href="https://opencollective.com/fakerjs/sponsor/24/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/24/avatar.svg"></a>
543<a href="https://opencollective.com/fakerjs/sponsor/25/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/25/avatar.svg"></a>
544<a href="https://opencollective.com/fakerjs/sponsor/26/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/26/avatar.svg"></a>
545<a href="https://opencollective.com/fakerjs/sponsor/27/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/27/avatar.svg"></a>
546<a href="https://opencollective.com/fakerjs/sponsor/28/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/28/avatar.svg"></a>
547<a href="https://opencollective.com/fakerjs/sponsor/29/website" target="_blank"><img src="https://opencollective.com/fakerjs/sponsor/29/avatar.svg"></a>