Skip to content

Commit ccf119d

Browse files
authored
feat!: support tree-shaking (#152)
1 parent 3c90061 commit ccf119d

38 files changed

+122
-120
lines changed

build/gulp-tasks/browser.js

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,29 @@
66
*/
77

88
const browserify = require('browserify');
9-
const source = require('vinyl-source-stream');
9+
const source = require('vinyl-source-stream');
1010
const buffer = require('vinyl-buffer');
1111
const uglify = require('gulp-uglify');
1212
const rename = require('gulp-rename');
1313
const { src, dest } = require('gulp');
1414

1515
const files = {
16-
jsMain: './index.js',
17-
jsOutput: 'faker.js'
18-
}
16+
jsMain: './lib/index.js',
17+
jsOutput: 'faker.js',
18+
};
1919

20-
module.exports = function browser () {
20+
module.exports = function browser() {
2121
return browserify(files.jsMain, {
2222
standalone: 'faker',
23-
debug: true
23+
debug: true,
2424
})
25-
.bundle()
26-
.pipe(source(files.jsOutput))
27-
.pipe(buffer())
28-
.pipe(dest("examples/browser/js"))
29-
.pipe(dest('dist/'))
30-
.pipe(rename({ extname: ".min.js" }))
31-
.pipe(uglify())
32-
.pipe(dest("examples/browser/js"))
33-
.pipe(dest('dist/'));
25+
.bundle()
26+
.pipe(source(files.jsOutput))
27+
.pipe(buffer())
28+
.pipe(dest('examples/browser/js'))
29+
.pipe(dest('dist/'))
30+
.pipe(rename({ extname: '.min.js' }))
31+
.pipe(uglify())
32+
.pipe(dest('examples/browser/js'))
33+
.pipe(dest('dist/'));
3434
};
35-
Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,39 @@
1-
// This example shows the generation of a multilevel object and JSON document using various faker.js features
2-
// including name, address, company, date and commerce namespaces, moustache expressions and random element production
3-
// Using the helper function arr, randomly sized collections of elements are produced in the document.
4-
5-
var faker = require('../../index');
6-
var fs = require('fs');
7-
// produce array with random number of empty elements
8-
const arr = (maxNumberOfElements) => new Array(faker.datatype.number({min: 1, max: maxNumberOfElements})).fill()
9-
10-
const locales = ["nl","es","de","fr","en_AU"]
11-
const company =
12-
{ "name" : faker.company.companyName()
13-
, "country" : faker.address.country()
14-
, "departments" : arr(8).map(() => { faker.locale = faker.random.arrayElement(locales)
15-
return { "name" : faker.commerce.department()
16-
, "location" : faker.fake("{{address.city}} ({{address.country}})")
17-
, "employees": arr(20).map(() => {
18-
return { "name" : faker.fake("{{name.firstName}} {{name.lastName}}")
19-
, "job" : faker.name.jobTitle()
20-
, "hiredate" : faker.date.past(12).toISOString().split('T')[0]
21-
, "salary" : faker.datatype.number(700, 9000)
22-
}
23-
})
24-
}
25-
})
26-
}
27-
28-
console.log(JSON.stringify(company))
29-
fs.writeFile(__dirname + '/companyDataSet.json', JSON.stringify(company), function() {
30-
console.log("dataSet generated successfully!");
31-
});
1+
// This example shows the generation of a multilevel object and JSON document using various faker.js features
2+
// including name, address, company, date and commerce namespaces, moustache expressions and random element production
3+
// Using the helper function arr, randomly sized collections of elements are produced in the document.
4+
5+
var faker = require('../../lib').faker;
6+
var fs = require('fs');
7+
// produce array with random number of empty elements
8+
const arr = (maxNumberOfElements) =>
9+
new Array(faker.datatype.number({ min: 1, max: maxNumberOfElements })).fill();
10+
11+
const locales = ['nl', 'es', 'de', 'fr', 'en_AU'];
12+
const company = {
13+
name: faker.company.companyName(),
14+
country: faker.address.country(),
15+
departments: arr(8).map(() => {
16+
faker.locale = faker.random.arrayElement(locales);
17+
return {
18+
name: faker.commerce.department(),
19+
location: faker.fake('{{address.city}} ({{address.country}})'),
20+
employees: arr(20).map(() => {
21+
return {
22+
name: faker.fake('{{name.firstName}} {{name.lastName}}'),
23+
job: faker.name.jobTitle(),
24+
hiredate: faker.date.past(12).toISOString().split('T')[0],
25+
salary: faker.datatype.number(700, 9000),
26+
};
27+
}),
28+
};
29+
}),
30+
};
31+
32+
console.log(JSON.stringify(company));
33+
fs.writeFile(
34+
__dirname + '/companyDataSet.json',
35+
JSON.stringify(company),
36+
function () {
37+
console.log('dataSet generated successfully!');
38+
}
39+
);

examples/node/generateSet.js

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,26 @@
11
var fs = require('fs');
22

3-
var faker = require('../../index');
4-
3+
var faker = require('../../lib').faker;
54

65
// generate dataSet as example
7-
fs.writeFile(__dirname + '/dataSet.json', JSON.stringify(faker.helpers.userCard()), function() {
8-
console.log("dataSet generated successfully!");
9-
});
6+
fs.writeFile(
7+
__dirname + '/dataSet.json',
8+
JSON.stringify(faker.helpers.userCard()),
9+
function () {
10+
console.log('dataSet generated successfully!');
11+
}
12+
);
1013
// generate bigDataSet as example
1114
var bigSet = [];
1215

13-
for(var i = 20; i >= 0; i--){
16+
for (var i = 20; i >= 0; i--) {
1417
bigSet.push(faker.helpers.userCard());
15-
};
18+
}
1619

17-
fs.writeFile(__dirname + '/bigDataSet.json', JSON.stringify(bigSet), function() {
18-
console.log("bigDataSet generated successfully!");
19-
});
20+
fs.writeFile(
21+
__dirname + '/bigDataSet.json',
22+
JSON.stringify(bigSet),
23+
function () {
24+
console.log('bigDataSet generated successfully!');
25+
}
26+
);

examples/node/generators.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
var faker = require('../../index');
1+
var faker = require('../../lib').faker;
22

3-
faker.locale = "en";
3+
faker.locale = 'en';
44

55
console.log(faker.fake('{{random.uuid}}, {{name.firstName}} {{name.suffix}}'));
66

7-
87
return;
98

10-
119
console.log(faker.fake('{{finance.currencyName}} - {{finance.amount}}'));
1210

13-
14-
console.log(faker.fake('{{name.firstName}} {{name.lastName}}'));
11+
console.log(faker.fake('{{name.firstName}} {{name.lastName}}'));

examples/node/minimal-usage.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
#!/usr/bin/env node
22

3-
var faker = require('../../index');
4-
faker.locale = "fi";
3+
var faker = require('../../lib').faker;
4+
faker.locale = 'fi';
55

66
//console.log(faker.lorem.sentences())
77

8-
console.log(faker.name.findName())
8+
console.log(faker.name.findName());
99
return;
1010
//console.log(faker.address)
11-
console.log(faker.internet.email())
12-
console.log(faker.date.recent())
11+
console.log(faker.internet.email());
12+
console.log(faker.date.recent());
1313
console.log(faker.helpers.contextualCard());
1414

15-
faker.locale = "uk";
15+
faker.locale = 'uk';
1616

17-
console.log(faker.helpers.contextualCard());
17+
console.log(faker.helpers.contextualCard());

examples/node/unique-values.js

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
1-
var faker = require('../../index');
1+
var faker = require('../../lib').faker;
22

33
var emails = {};
44
var conflicts = 0;
55
// emails estimated: 1,055,881
66
// full names estimated: 1,185,139
77
for (var i = 0; i < 100000; i++) {
8-
98
// call function with no arguments
109
var email = faker.unique(faker.internet.email);
1110

1211
// or with function arguments as argument array
13-
// var email = faker.unique(faker.internet.email, [null, null, 'marak.com']);
12+
// var email = faker.unique(faker.internet.email, [null, null, 'marak.com']);
1413

1514
// or with custom options for maxTime as milliseconds or maxRetries
16-
// var email = faker.unique(faker.internet.email, [null, null, 'marak.com'], { maxRetries: 1, maxTime: 50 });
15+
// var email = faker.unique(faker.internet.email, [null, null, 'marak.com'], { maxRetries: 1, maxTime: 50 });
1716

1817
if (typeof emails[email] === 'undefined') {
1918
// found a unique new item
@@ -26,4 +25,4 @@ for (var i = 0; i < 100000; i++) {
2625
console.log('total conflicts', conflicts); // should be zero using faker.unique()
2726
console.log('total uniques generated', Object.keys(emails).length);
2827

29-
// console.log(emails);
28+
// console.log(emails);

index.d.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

index.js

Lines changed: 0 additions & 5 deletions
This file was deleted.

index.ts

Lines changed: 0 additions & 4 deletions
This file was deleted.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"url": "https://github.com/faker-js/faker.git"
2323
},
2424
"license": "MIT",
25-
"main": "index.js",
25+
"main": "lib/index.js",
2626
"scripts": {
2727
"browser": "gulp browser",
2828
"build": "tsc",

src/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,5 +271,9 @@ export class Faker {
271271
}
272272
}
273273

274-
export default Faker;
275-
module.exports = Faker;
274+
// since we are requiring the top level of faker, load all locales by default
275+
export const faker: Faker = new Faker({
276+
locales: require('./locales'),
277+
});
278+
279+
export default faker;

test/address.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('address.js', function () {

test/all.functional.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
var functionalHelpers = require('./support/function-helpers.js');

test/animal.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('animal.js', function () {

test/commerce.unit.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
2-
var assert = require('assert'),
3-
sinon = require('sinon'),
4-
faker = require('../index');
2+
var assert = require('assert');
3+
var sinon = require('sinon');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('commerce.js', function () {

test/company.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('company.js', function () {

test/database.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('database.js', function () {

test/datatype.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
44
var _ = require('lodash');
5-
var faker = require('../index');
5+
var faker = require('../lib').faker;
66
var mersenne = require('../vendor/mersenne');
77
}
88

test/date.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('date.js', function () {

test/fake.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('fake.js', function () {

test/finance.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
faker.seed(1234);

test/finance_iban.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
3-
var faker = require('../index');
3+
var faker = require('../lib').faker;
44
}
55

66
function getAnIbanByCountry(countryCode) {

test/git.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('git.js', function () {

test/helpers.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('helpers.js', function () {

test/image.unit.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
if (typeof module !== 'undefined') {
22
var assert = require('assert');
33
var sinon = require('sinon');
4-
var faker = require('../index');
4+
var faker = require('../lib').faker;
55
}
66

77
describe('image.js', function () {

0 commit comments

Comments
 (0)