From 4c627e6d2fdf29ecba9d31dcd37476a93615d57b Mon Sep 17 00:00:00 2001 From: Eric Jeker Date: Tue, 11 Jan 2022 18:01:58 +0800 Subject: [PATCH 1/5] chore: add typedoc --- .gitignore | 3 ++ package-lock.json | 126 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 + 3 files changed, 131 insertions(+) diff --git a/.gitignore b/.gitignore index 08b50ad7499..39f01b1de6c 100644 --- a/.gitignore +++ b/.gitignore @@ -72,6 +72,9 @@ versions.json # Dist /dist +# TypeDoc +/docs + # Faker TAGS REVISION diff --git a/package-lock.json b/package-lock.json index 80b79f260e9..2a94f35de9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "prettier": "2.5.1", "sinon": "^9.0.3", "through2": "2.0.0", + "typedoc": "^0.22.10", "typescript": "~4.5.4", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", @@ -7710,6 +7711,12 @@ "json5": "lib/cli.js" } }, + "node_modules/jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "node_modules/jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -8573,6 +8580,12 @@ "yallist": "^2.1.2" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "node_modules/magic-string": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.20.0.tgz", @@ -12246,6 +12259,17 @@ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, + "node_modules/shiki": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", + "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", + "dev": true, + "dependencies": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, "node_modules/signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", @@ -13717,6 +13741,40 @@ "is-typedarray": "^1.0.0" } }, + "node_modules/typedoc": { + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz", + "integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==", + "dev": true, + "dependencies": { + "glob": "^7.2.0", + "lunr": "^2.3.9", + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + }, + "bin": { + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 12.10.0" + }, + "peerDependencies": { + "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x" + } + }, + "node_modules/typedoc/node_modules/marked": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", + "dev": true, + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 12" + } + }, "node_modules/typescript": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", @@ -14474,6 +14532,18 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "node_modules/vscode-oniguruma": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", + "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", + "dev": true + }, + "node_modules/vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -21154,6 +21224,12 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, + "jsonc-parser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true + }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -21863,6 +21939,12 @@ "yallist": "^2.1.2" } }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, "magic-string": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.20.0.tgz", @@ -24782,6 +24864,17 @@ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, + "shiki": { + "version": "0.9.15", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", + "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", + "dev": true, + "requires": { + "jsonc-parser": "^3.0.0", + "vscode-oniguruma": "^1.6.1", + "vscode-textmate": "5.2.0" + } + }, "signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", @@ -25974,6 +26067,27 @@ "is-typedarray": "^1.0.0" } }, + "typedoc": { + "version": "0.22.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz", + "integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==", + "dev": true, + "requires": { + "glob": "^7.2.0", + "lunr": "^2.3.9", + "marked": "^3.0.8", + "minimatch": "^3.0.4", + "shiki": "^0.9.12" + }, + "dependencies": { + "marked": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", + "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", + "dev": true + } + } + }, "typescript": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", @@ -26628,6 +26742,18 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, + "vscode-oniguruma": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", + "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", + "dev": true + }, + "vscode-textmate": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", + "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", + "dev": true + }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index 25d24aefaac..4cc1943b9c1 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "browser": "./node_modules/.bin/gulp browser", "jsdoc": "./node_modules/.bin/gulp jsdoc", "build": "tsc", + "typedoc": "typedoc src/index.ts", "format": "prettier --write .", "lint": "node_modules/.bin/eslint ./lib/animal.js", "test": "node_modules/.bin/mocha test/*.*.js", @@ -64,6 +65,7 @@ "prettier": "2.5.1", "sinon": "^9.0.3", "through2": "2.0.0", + "typedoc": "^0.22.10", "typescript": "~4.5.4", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", From 3a3ce172cadef56581bca36d27e98835afff321e Mon Sep 17 00:00:00 2001 From: Eric Jeker Date: Tue, 11 Jan 2022 19:00:22 +0800 Subject: [PATCH 2/5] Add definitions in Faker object --- src/index.ts | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) diff --git a/src/index.ts b/src/index.ts index ea724d0440e..f94dcb09ae2 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,11 +8,54 @@ export interface FakerOptions { localeFallback?: string; } +export interface DefinitionTypes { + name: string[]; + address: string[]; + animal: string[]; + company: string[]; + lorem: string[]; + hacker: string[]; + phone_number: string[]; + finance: string[]; + internet: string[]; + commerce: string[]; + database: string[]; + system: string[]; + date: string[]; + vehicle: string[]; + music: string[]; + word: string[]; + title: string | string[]; + separator: string | string[]; +} + export class Faker { locales: string[] | {}; locale: string; localeFallback: string; + definitions = {}; + definitionTypes: DefinitionTypes = { + "name": ["first_name", "last_name", "prefix", "suffix", "binary_gender", "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_name", "city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "country_code_alpha_3", "state", "state_abbr", "street_prefix", "postcode", "postcode_by_state", "direction", "direction_abbr", "time_zone"], + "animal": ["dog", "cat", "snake", "bear", "lion", "cetacean", "insect", "crocodilia", "cow", "bird", "fish", "rabbit", "horse", "type"], + "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"], + "music": ["genre"], + "word": ["adjective", "adverb", "conjunction", "interjection", "noun", "preposition", "verb"], + "title": "", + "separator": "" + }; + seedValue?: any[] | any; readonly mersenne: Mersenne = new Mersenne(); @@ -23,6 +66,46 @@ export class Faker { this.locales = this.locales || opts.locales || {}; this.locale = this.locale || opts.locale || 'en'; this.localeFallback = this.localeFallback || opts.localeFallback || 'en'; + + this.loadDefinitions(this.definitionTypes) + } + + /** + * Load the definitions contained in the locales file for the given types + * + * @param types + */ + loadDefinitions(types: DefinitionTypes) { + Object.keys(types).forEach((t: string) => { + if (typeof this.definitions[t] === 'undefined') { + this.definitions[t] = {}; + } + + if (typeof types[t] === 'string') { + this.definitions[t] = types[t]; + return; + } + + types[t].forEach((p) => { + Object.defineProperty(this.definitions[t], p, { + get: () => { + if ( + typeof this.locales[this.locale][t] === 'undefined' || + typeof this.locales[this.locale][t][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 this.locales[this.localeFallback][t][p]; + } else { + // return localized data + return this.locales[this.locale][t][p]; + } + } + }); + }); + }); } seed(value?: any[] | any) { @@ -30,6 +113,15 @@ export class Faker { this.random = new Random(this, this.seedValue); this.datatype = new Datatype(this, this.seedValue); } + + /** + * Set Faker's locale + * + * @param locale + */ + setLocale(locale: string) { + this.locale = locale; + } } export default Faker; From 612a8409d184c2e8e76439e43df8b397e513f02e Mon Sep 17 00:00:00 2001 From: Eric Jeker Date: Tue, 11 Jan 2022 19:23:21 +0800 Subject: [PATCH 3/5] Revert "chore: add typedoc" This reverts commit 4c627e6d2fdf29ecba9d31dcd37476a93615d57b. --- .gitignore | 3 -- package-lock.json | 126 ---------------------------------------------- package.json | 2 - 3 files changed, 131 deletions(-) diff --git a/.gitignore b/.gitignore index 39f01b1de6c..08b50ad7499 100644 --- a/.gitignore +++ b/.gitignore @@ -72,9 +72,6 @@ versions.json # Dist /dist -# TypeDoc -/docs - # Faker TAGS REVISION diff --git a/package-lock.json b/package-lock.json index 2a94f35de9a..80b79f260e9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,7 +29,6 @@ "prettier": "2.5.1", "sinon": "^9.0.3", "through2": "2.0.0", - "typedoc": "^0.22.10", "typescript": "~4.5.4", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", @@ -7711,12 +7710,6 @@ "json5": "lib/cli.js" } }, - "node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true - }, "node_modules/jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -8580,12 +8573,6 @@ "yallist": "^2.1.2" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, "node_modules/magic-string": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.20.0.tgz", @@ -12259,17 +12246,6 @@ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, - "node_modules/shiki": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", - "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", - "dev": true, - "dependencies": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" - } - }, "node_modules/signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", @@ -13741,40 +13717,6 @@ "is-typedarray": "^1.0.0" } }, - "node_modules/typedoc": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz", - "integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==", - "dev": true, - "dependencies": { - "glob": "^7.2.0", - "lunr": "^2.3.9", - "marked": "^3.0.8", - "minimatch": "^3.0.4", - "shiki": "^0.9.12" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 12.10.0" - }, - "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x" - } - }, - "node_modules/typedoc/node_modules/marked": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", - "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">= 12" - } - }, "node_modules/typescript": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", @@ -14532,18 +14474,6 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "node_modules/vscode-oniguruma": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", - "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", - "dev": true - }, - "node_modules/vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -21224,12 +21154,6 @@ "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, - "jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", - "dev": true - }, "jsonify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", @@ -21939,12 +21863,6 @@ "yallist": "^2.1.2" } }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, "magic-string": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.20.0.tgz", @@ -24864,17 +24782,6 @@ "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==", "dev": true }, - "shiki": { - "version": "0.9.15", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.9.15.tgz", - "integrity": "sha512-/Y0z9IzhJ8nD9nbceORCqu6NgT9X6I8Fk8c3SICHI5NbZRLdZYFaB233gwct9sU0vvSypyaL/qaKvzyQGJBZSw==", - "dev": true, - "requires": { - "jsonc-parser": "^3.0.0", - "vscode-oniguruma": "^1.6.1", - "vscode-textmate": "5.2.0" - } - }, "signal-exit": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", @@ -26067,27 +25974,6 @@ "is-typedarray": "^1.0.0" } }, - "typedoc": { - "version": "0.22.10", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.10.tgz", - "integrity": "sha512-hQYZ4WtoMZ61wDC6w10kxA42+jclWngdmztNZsDvIz7BMJg7F2xnT+uYsUa7OluyKossdFj9E9Ye4QOZKTy8SA==", - "dev": true, - "requires": { - "glob": "^7.2.0", - "lunr": "^2.3.9", - "marked": "^3.0.8", - "minimatch": "^3.0.4", - "shiki": "^0.9.12" - }, - "dependencies": { - "marked": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/marked/-/marked-3.0.8.tgz", - "integrity": "sha512-0gVrAjo5m0VZSJb4rpL59K1unJAMb/hm8HRXqasD8VeC8m91ytDPMritgFSlKonfdt+rRYYpP/JfLxgIX8yoSw==", - "dev": true - } - } - }, "typescript": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", @@ -26742,18 +26628,6 @@ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "vscode-oniguruma": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", - "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", - "dev": true - }, - "vscode-textmate": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", - "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", - "dev": true - }, "wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index 4cc1943b9c1..25d24aefaac 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,6 @@ "browser": "./node_modules/.bin/gulp browser", "jsdoc": "./node_modules/.bin/gulp jsdoc", "build": "tsc", - "typedoc": "typedoc src/index.ts", "format": "prettier --write .", "lint": "node_modules/.bin/eslint ./lib/animal.js", "test": "node_modules/.bin/mocha test/*.*.js", @@ -65,7 +64,6 @@ "prettier": "2.5.1", "sinon": "^9.0.3", "through2": "2.0.0", - "typedoc": "^0.22.10", "typescript": "~4.5.4", "vinyl-buffer": "^1.0.1", "vinyl-source-stream": "^2.0.0", From e0803fcdc914ab770a616da5082d484c64b94922 Mon Sep 17 00:00:00 2001 From: Eric Jeker Date: Tue, 11 Jan 2022 19:26:58 +0800 Subject: [PATCH 4/5] Prettify --- src/index.ts | 131 +++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 111 insertions(+), 20 deletions(-) diff --git a/src/index.ts b/src/index.ts index f94dcb09ae2..e0d8b317a0d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -36,24 +36,115 @@ export class Faker { definitions = {}; definitionTypes: DefinitionTypes = { - "name": ["first_name", "last_name", "prefix", "suffix", "binary_gender", "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_name", "city_prefix", "city_suffix", "street_suffix", "county", "country", "country_code", "country_code_alpha_3", "state", "state_abbr", "street_prefix", "postcode", "postcode_by_state", "direction", "direction_abbr", "time_zone"], - "animal": ["dog", "cat", "snake", "bear", "lion", "cetacean", "insect", "crocodilia", "cow", "bird", "fish", "rabbit", "horse", "type"], - "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"], - "music": ["genre"], - "word": ["adjective", "adverb", "conjunction", "interjection", "noun", "preposition", "verb"], - "title": "", - "separator": "" + name: [ + 'first_name', + 'last_name', + 'prefix', + 'suffix', + 'binary_gender', + '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_name', + 'city_prefix', + 'city_suffix', + 'street_suffix', + 'county', + 'country', + 'country_code', + 'country_code_alpha_3', + 'state', + 'state_abbr', + 'street_prefix', + 'postcode', + 'postcode_by_state', + 'direction', + 'direction_abbr', + 'time_zone', + ], + animal: [ + 'dog', + 'cat', + 'snake', + 'bear', + 'lion', + 'cetacean', + 'insect', + 'crocodilia', + 'cow', + 'bird', + 'fish', + 'rabbit', + 'horse', + 'type', + ], + 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', + ], + music: ['genre'], + word: [ + 'adjective', + 'adverb', + 'conjunction', + 'interjection', + 'noun', + 'preposition', + 'verb', + ], + title: '', + separator: '', }; seedValue?: any[] | any; @@ -67,7 +158,7 @@ export class Faker { this.locale = this.locale || opts.locale || 'en'; this.localeFallback = this.localeFallback || opts.localeFallback || 'en'; - this.loadDefinitions(this.definitionTypes) + this.loadDefinitions(this.definitionTypes); } /** @@ -102,7 +193,7 @@ export class Faker { // return localized data return this.locales[this.locale][t][p]; } - } + }, }); }); }); From 555ab985bdb74ba3d0787619f3bf242e93d29a89 Mon Sep 17 00:00:00 2001 From: Shinigami Date: Tue, 11 Jan 2022 12:48:53 +0100 Subject: [PATCH 5/5] chore: improve with TS --- src/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/index.ts b/src/index.ts index e0d8b317a0d..103746d2c01 100644 --- a/src/index.ts +++ b/src/index.ts @@ -34,8 +34,8 @@ export class Faker { locale: string; localeFallback: string; - definitions = {}; - definitionTypes: DefinitionTypes = { + readonly definitions = {}; + private readonly definitionTypes: DefinitionTypes = { name: [ 'first_name', 'last_name', @@ -166,7 +166,7 @@ export class Faker { * * @param types */ - loadDefinitions(types: DefinitionTypes) { + private loadDefinitions(types: DefinitionTypes): void { Object.keys(types).forEach((t: string) => { if (typeof this.definitions[t] === 'undefined') { this.definitions[t] = {}; @@ -210,7 +210,7 @@ export class Faker { * * @param locale */ - setLocale(locale: string) { + setLocale(locale: string): void { this.locale = locale; } }