mimic-data 1.2.1 โ 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +326 -215
- package/dist/index.d.mts +134 -11
- package/dist/index.d.ts +134 -11
- package/dist/index.js +31421 -2441
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +31421 -2441
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -2,228 +2,340 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/mimic-data)
|
|
4
4
|
[](https://www.npmjs.com/package/mimic-data)
|
|
5
|
-
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
[](https://www.typescriptlang.org/)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
A lightweight TypeScript library with zero runtime dependencies for generating realistic, locale-aware dummy data. Inspired by Faker.js, but smaller and focused on accurate localization.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Features
|
|
11
11
|
|
|
12
|
-
- ๐ **
|
|
13
|
-
- ๐ชถ **
|
|
14
|
-
- ๐ฆ **Tree-shakeable**
|
|
15
|
-
- ๐ง **TypeScript Native**
|
|
16
|
-
- ๐ฏ **
|
|
12
|
+
- ๐ **212 Locales** covering 150+ countries and territories across 6 continents
|
|
13
|
+
- ๐ชถ **Lightweight** โ zero runtime dependencies (~650KB bundled with all locales)
|
|
14
|
+
- ๐ฆ **Tree-shakeable** โ import only what you need
|
|
15
|
+
- ๐ง **TypeScript Native** โ full type safety with generics
|
|
16
|
+
- ๐ฏ **Locale-First** โ each locale has native-language data, proper address formats, and region-specific phone/zip patterns
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## Installation
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
npm install mimic-data
|
|
22
|
-
#
|
|
22
|
+
# or
|
|
23
23
|
yarn add mimic-data
|
|
24
|
-
#
|
|
24
|
+
# or
|
|
25
25
|
pnpm add mimic-data
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## Quick Start
|
|
29
29
|
|
|
30
30
|
```typescript
|
|
31
31
|
import { createMimic } from 'mimic-data';
|
|
32
32
|
|
|
33
|
-
// Buat instance dengan locale tertentu
|
|
34
33
|
const mimic = createMimic('id_ID');
|
|
35
34
|
|
|
36
|
-
// Generate data
|
|
37
35
|
console.log(mimic.identity.fullName());
|
|
38
|
-
//
|
|
36
|
+
// "Budi Santoso"
|
|
39
37
|
|
|
40
38
|
console.log(mimic.location.fullAddress());
|
|
41
|
-
//
|
|
39
|
+
// "Jl. Merdeka No. 123, RT 5/RW 3, Jakarta, DKI Jakarta 12345"
|
|
42
40
|
```
|
|
43
41
|
|
|
44
|
-
##
|
|
42
|
+
## API Overview
|
|
45
43
|
|
|
46
44
|
### `createMimic(locale?: string): Mimic`
|
|
47
|
-
|
|
45
|
+
|
|
46
|
+
Creates a Mimic instance for the specified locale. Defaults to `en_US` when omitted.
|
|
48
47
|
|
|
49
48
|
```typescript
|
|
50
49
|
const mimic = createMimic('ja_JP');
|
|
51
|
-
const mimicDefault = createMimic(); //
|
|
50
|
+
const mimicDefault = createMimic(); // uses en_US
|
|
52
51
|
```
|
|
53
52
|
|
|
54
53
|
### Module Exports
|
|
55
54
|
|
|
56
|
-
| Export
|
|
57
|
-
|
|
58
|
-
| `createMimic`
|
|
59
|
-
| `Mimic`
|
|
60
|
-
| `locales`
|
|
61
|
-
| `Random`
|
|
62
|
-
| `localeRegistry`
|
|
63
|
-
| `getAvailableLocales()` |
|
|
64
|
-
| `getAllLocaleCodes()` |
|
|
55
|
+
| Export | Description |
|
|
56
|
+
| ----------------------- | -------------------------------------- |
|
|
57
|
+
| `createMimic` | Factory function to create Mimic |
|
|
58
|
+
| `Mimic` | Main data generation class |
|
|
59
|
+
| `locales` | Object with all locale definitions |
|
|
60
|
+
| `Random` | Random number utility class |
|
|
61
|
+
| `localeRegistry` | Locale registry for advanced usage |
|
|
62
|
+
| `getAvailableLocales()` | Returns canonical locale codes |
|
|
63
|
+
| `getAllLocaleCodes()` | Returns locale codes + aliases |
|
|
65
64
|
|
|
66
65
|
### Mimic Methods
|
|
67
66
|
|
|
68
|
-
| Module
|
|
69
|
-
|
|
70
|
-
| `identity` | `firstName(gender?)`
|
|
71
|
-
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
|
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
| `location` | `street()`
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
| `physical` | `height()`
|
|
88
|
-
|
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
| `work`
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
| `contact`
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
| `company`
|
|
103
|
-
|
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
| `Mimic`
|
|
108
|
-
|
|
|
109
|
-
|
|
|
110
|
-
|
|
111
|
-
##
|
|
112
|
-
|
|
113
|
-
### Americas ๐ (
|
|
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
|
-
- `
|
|
160
|
-
- `
|
|
161
|
-
- `
|
|
162
|
-
- `
|
|
163
|
-
- `
|
|
164
|
-
- `
|
|
165
|
-
- `
|
|
166
|
-
- `
|
|
167
|
-
- `
|
|
168
|
-
- `
|
|
169
|
-
- `
|
|
170
|
-
- `
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
- `
|
|
174
|
-
- `
|
|
175
|
-
- `
|
|
176
|
-
- `
|
|
177
|
-
- `
|
|
178
|
-
- `
|
|
179
|
-
- `
|
|
180
|
-
- `
|
|
181
|
-
- `
|
|
182
|
-
- `
|
|
183
|
-
- `
|
|
184
|
-
- `
|
|
185
|
-
- `
|
|
186
|
-
- `
|
|
187
|
-
- `
|
|
188
|
-
- `
|
|
189
|
-
- `
|
|
190
|
-
- `
|
|
191
|
-
- `
|
|
192
|
-
- `
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
- `
|
|
196
|
-
- `
|
|
197
|
-
- `
|
|
198
|
-
- `
|
|
199
|
-
- `
|
|
200
|
-
- `
|
|
201
|
-
- `
|
|
202
|
-
- `
|
|
203
|
-
- `
|
|
204
|
-
- `
|
|
205
|
-
- `
|
|
206
|
-
- `
|
|
207
|
-
- `
|
|
208
|
-
- `
|
|
209
|
-
- `
|
|
210
|
-
- `
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
- `
|
|
215
|
-
- `
|
|
216
|
-
- `
|
|
217
|
-
- `
|
|
218
|
-
- `
|
|
219
|
-
- `
|
|
220
|
-
- `
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
67
|
+
| Module | Method | Description |
|
|
68
|
+
| ---------- | --------------------------------------------- | -------------------------------------- |
|
|
69
|
+
| `identity` | `firstName(gender?)` | Random first name (male/female/random) |
|
|
70
|
+
| | `lastName()` | Random last name |
|
|
71
|
+
| | `fullName(gender?)` | Full name in locale format |
|
|
72
|
+
| | `gender()` | Random gender |
|
|
73
|
+
| | `age(range?)` | Age (default 18-65) |
|
|
74
|
+
| | `dateOfBirth(range?)` | Date of birth as Date object |
|
|
75
|
+
| | `person(gender?, range?)` | Complete person data |
|
|
76
|
+
| | `persons(count, gender?, range?)` | Multiple persons |
|
|
77
|
+
| | `uniquePersons(count, gender?, range?)` | Unique persons (by full name) |
|
|
78
|
+
| `location` | `street()` | Random street name |
|
|
79
|
+
| | `city()` | Random city |
|
|
80
|
+
| | `state()` | Random state/province |
|
|
81
|
+
| | `zipCode()` | Random zip/postal code |
|
|
82
|
+
| | `fullAddress()` | Formatted full address |
|
|
83
|
+
| | `address()` | Complete address data |
|
|
84
|
+
| | `addresses(count)` | Multiple addresses |
|
|
85
|
+
| | `uniqueAddresses(count)` | Unique addresses |
|
|
86
|
+
| `physical` | `height()` | Height + weight (metric or imperial) |
|
|
87
|
+
| | `weight()` | Weight + height (metric or imperial) |
|
|
88
|
+
| | `data()` | Complete physical data |
|
|
89
|
+
| | `datas(count)` | Multiple physical data |
|
|
90
|
+
| `work` | `jobTitle()` | Random job title |
|
|
91
|
+
| | `department()` | Random department |
|
|
92
|
+
| | `data()` | Complete work data |
|
|
93
|
+
| | `datas(count)` | Multiple work data |
|
|
94
|
+
| | `uniqueJobTitles(count)` | Unique job titles |
|
|
95
|
+
| | `uniqueDepartments(count)` | Unique departments |
|
|
96
|
+
| `contact` | `email(firstName?, lastName?)` | Email address |
|
|
97
|
+
| | `phone()` | Phone number (region-appropriate) |
|
|
98
|
+
| | `website(name?)` | Website URL from company name |
|
|
99
|
+
| | `data(firstName?, lastName?)` | Complete contact data |
|
|
100
|
+
| | `datas(count)` | Multiple contact data |
|
|
101
|
+
| `company` | `name()` | Company name |
|
|
102
|
+
| | `industry()` | Industry |
|
|
103
|
+
| | `catchPhrase()` | Company tagline |
|
|
104
|
+
| | `data()` | Complete company data |
|
|
105
|
+
| | `datas(count)` | Multiple company data |
|
|
106
|
+
| `Mimic` | `setLocale(locale)` | Switch locale |
|
|
107
|
+
| | `generateMockEntities(count, options?)` | Generate complete entities |
|
|
108
|
+
| | `generateUniqueMockEntities(count, options?)` | Unique complete entities |
|
|
109
|
+
|
|
110
|
+
## Available Locales (212 Total)
|
|
111
|
+
|
|
112
|
+
### Americas ๐ (37) โ unchanged
|
|
113
|
+
|
|
114
|
+
- `en_US` / `en` / `us` / `usa` โ ๐บ๐ธ USA (imperial)
|
|
115
|
+
- `es_US` / `es-us` โ ๐บ๐ธ USA (Spanish)
|
|
116
|
+
- `en_CA` / `en-ca` / `canada` โ ๐จ๐ฆ Canada (metric)
|
|
117
|
+
- `fr_CA` / `fr-ca` โ ๐จ๐ฆ Canada (French)
|
|
118
|
+
- `es_MX` / `mx` / `mexico` โ ๐ฒ๐ฝ Mexico
|
|
119
|
+
- `pt_BR` / `pt` / `br` / `brazil` โ ๐ง๐ท Brazil
|
|
120
|
+
- `es_AR` / `ar` / `argentina` โ ๐ฆ๐ท Argentina
|
|
121
|
+
- `es_CL` / `cl` / `chile` โ ๐จ๐ฑ Chile
|
|
122
|
+
- `es_CO` / `co` / `colombia` โ ๐จ๐ด Colombia
|
|
123
|
+
- `es_PE` / `pe` / `peru` โ ๐ต๐ช Peru
|
|
124
|
+
- `es_VE` / `ve` / `venezuela` โ ๐ป๐ช Venezuela
|
|
125
|
+
- `es_EC` / `ec` / `ecuador` โ ๐ช๐จ Ecuador
|
|
126
|
+
- `es_BO` / `bo` / `bolivia` โ ๐ง๐ด Bolivia
|
|
127
|
+
- `es_PY` / `py` / `paraguay` โ ๐ต๐พ Paraguay
|
|
128
|
+
- `es_GT` / `gt` / `guatemala` โ ๐ฌ๐น Guatemala
|
|
129
|
+
- `es_CR` / `cr` / `costa-rica` โ ๐จ๐ท Costa Rica
|
|
130
|
+
- `es_DO` / `do` / `dominican-republic` โ ๐ฉ๐ด Dominican Republic
|
|
131
|
+
- `es_CU` / `cu` / `cuba` โ ๐จ๐บ Cuba
|
|
132
|
+
- `es_SV` / `es-sv` / `el-salvador` โ ๐ธ๐ป El Salvador
|
|
133
|
+
- `es_HN` / `hn` / `honduras` โ ๐ญ๐ณ Honduras
|
|
134
|
+
- `es_NI` / `ni` / `nicaragua` โ ๐ณ๐ฎ Nicaragua
|
|
135
|
+
- `es_PA` / `pa` / `panama` โ ๐ต๐ฆ Panama
|
|
136
|
+
- `es_UY` / `uy` / `uruguay` โ ๐บ๐พ Uruguay
|
|
137
|
+
- `en_JM` / `jm` / `jamaica` โ ๐ฏ๐ฒ Jamaica
|
|
138
|
+
- `en_TT` / `tt` / `trinidad-and-tobago` โ ๐น๐น Trinidad & Tobago
|
|
139
|
+
- `en_GY` / `gy` / `guyana` โ ๐ฌ๐พ Guyana
|
|
140
|
+
- `en_BZ` / `bz` / `belize` โ ๐ง๐ฟ Belize
|
|
141
|
+
- `en_BS` / `bs` / `bahamas` โ ๐ง๐ธ Bahamas
|
|
142
|
+
- `en_BB` / `bb` / `barbados` โ ๐ง๐ง Barbados
|
|
143
|
+
- `en_AG` / `ag` / `antigua-and-barbuda` โ ๐ฆ๐ฌ Antigua & Barbuda
|
|
144
|
+
- `en_DM` / `dm` / `dominica` โ ๐ฉ๐ฒ Dominica
|
|
145
|
+
- `en_GD` / `gd` / `grenada` โ ๐ฌ๐ฉ Grenada
|
|
146
|
+
- `en_KN` / `kn` / `saint-kitts-and-nevis` โ ๐ฐ๐ณ St. Kitts & Nevis
|
|
147
|
+
- `en_LC` / `lc` / `saint-lucia` โ ๐ฑ๐จ St. Lucia
|
|
148
|
+
- `en_VC` / `vc` / `saint-vincent` โ ๐ป๐จ St. Vincent & Grenadines
|
|
149
|
+
- `fr_HT` / `ht` / `haiti` โ ๐ญ๐น Haiti
|
|
150
|
+
- `nl_SR` / `sr` / `suriname` โ ๐ธ๐ท Suriname
|
|
151
|
+
|
|
152
|
+
### Europe ๐ (56)
|
|
153
|
+
|
|
154
|
+
- `en_GB` / `gb` / `uk` โ ๐ฌ๐ง UK
|
|
155
|
+
- `en_IE` / `ie` / `ireland` โ ๐ฎ๐ช Ireland (English)
|
|
156
|
+
- `ga_IE` / `ga` / `gaeilge` โ ๐ฎ๐ช Ireland (Irish Gaelic)
|
|
157
|
+
- `cy_GB` / `cy` / `wales` โ ๐ด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ Wales (Welsh)
|
|
158
|
+
- `de_DE` / `de` / `germany` โ ๐ฉ๐ช Germany
|
|
159
|
+
- `de_AT` / `at` / `austria` โ ๐ฆ๐น Austria
|
|
160
|
+
- `de_CH` / `ch` / `switzerland` โ ๐จ๐ญ Switzerland (German)
|
|
161
|
+
- `fr_CH` / `fr-ch` โ ๐จ๐ญ Switzerland (French)
|
|
162
|
+
- `it_CH` / `it-ch` โ ๐จ๐ญ Switzerland (Italian)
|
|
163
|
+
- `fr_FR` / `fr` / `france` โ ๐ซ๐ท France
|
|
164
|
+
- `fr_BE` / `fr-be` โ ๐ง๐ช Belgium (French)
|
|
165
|
+
- `nl_BE` / `be` / `belgium` โ ๐ง๐ช Belgium (Dutch)
|
|
166
|
+
- `it_IT` / `it` / `italy` โ ๐ฎ๐น Italy
|
|
167
|
+
- `es_ES` / `es` / `spain` โ ๐ช๐ธ Spain
|
|
168
|
+
- `ca_ES` / `catalonia` / `catalan` โ ๐ช๐ธ Spain (Catalan)
|
|
169
|
+
- `pt_PT` / `portugal` โ ๐ต๐น Portugal
|
|
170
|
+
- `nl_NL` / `nl` / `netherlands` โ ๐ณ๐ฑ Netherlands
|
|
171
|
+
- `de_LU` / `de-lu` โ ๐ฑ๐บ Luxembourg (German)
|
|
172
|
+
- `fr_LU` / `fr-lu` โ ๐ฑ๐บ Luxembourg (French)
|
|
173
|
+
- `de_LI` / `li` / `liechtenstein` โ ๐ฑ๐ฎ Liechtenstein
|
|
174
|
+
- `ru_RU` / `ru` / `russia` โ ๐ท๐บ Russia
|
|
175
|
+
- `pl_PL` / `pl` / `poland` โ ๐ต๐ฑ Poland
|
|
176
|
+
- `tr_TR` / `tr` / `turkey` โ ๐น๐ท Turkey
|
|
177
|
+
- `sv_SE` / `sv` / `se` / `sweden` โ ๐ธ๐ช Sweden
|
|
178
|
+
- `nb_NO` / `no` / `norway` โ ๐ณ๐ด Norway
|
|
179
|
+
- `da_DK` / `da` / `dk` / `denmark` โ ๐ฉ๐ฐ Denmark
|
|
180
|
+
- `fi_FI` / `fi` / `finland` โ ๐ซ๐ฎ Finland
|
|
181
|
+
- `el_GR` / `el` / `gr` / `greece` โ ๐ฌ๐ท Greece
|
|
182
|
+
- `cs_CZ` / `cs` / `cz` / `czech` โ ๐จ๐ฟ Czech Republic
|
|
183
|
+
- `hu_HU` / `hu` / `hungary` โ ๐ญ๐บ Hungary
|
|
184
|
+
- `ro_RO` / `ro` / `romania` โ ๐ท๐ด Romania
|
|
185
|
+
- `uk_UA` / `ua` / `ukraine` โ ๐บ๐ฆ Ukraine
|
|
186
|
+
- `sk_SK` / `sk` / `slovakia` โ ๐ธ๐ฐ Slovakia
|
|
187
|
+
- `hr_HR` / `hr` / `croatia` โ ๐ญ๐ท Croatia
|
|
188
|
+
- `rs_RS` / `rs` / `serbia` โ ๐ท๐ธ Serbia
|
|
189
|
+
- `lt_LT` / `lt` / `lithuania` โ ๐ฑ๐น Lithuania
|
|
190
|
+
- `lv_LV` / `lv` / `latvia` โ ๐ฑ๐ป Latvia
|
|
191
|
+
- `et_EE` / `ee` / `estonia` โ ๐ช๐ช Estonia
|
|
192
|
+
- `bg_BG` / `bg` / `bulgaria` โ ๐ง๐ฌ Bulgaria
|
|
193
|
+
- `is_IS` / `is` / `iceland` โ ๐ฎ๐ธ Iceland
|
|
194
|
+
- `sq_AL` / `al` / `albania` โ ๐ฆ๐ฑ Albania
|
|
195
|
+
- `bs_BA` / `ba` / `bosnia-herzegovina` โ ๐ง๐ฆ Bosnia & Herzegovina
|
|
196
|
+
- `mk_MK` / `mk` / `north-macedonia` โ ๐ฒ๐ฐ North Macedonia
|
|
197
|
+
- `sl_SI` / `si` / `slovenia` โ ๐ธ๐ฎ Slovenia
|
|
198
|
+
- `mt_MT` / `mt` / `malta` โ ๐ฒ๐น Malta
|
|
199
|
+
- `be_BY` / `by` / `belarus` โ ๐ง๐พ Belarus
|
|
200
|
+
- `sr_ME` / `me` / `montenegro` โ ๐ฒ๐ช Montenegro
|
|
201
|
+
- `ro_MD` / `md` / `moldova` โ ๐ฒ๐ฉ Moldova
|
|
202
|
+
- `el_CY` / `el-cy` / `cyprus` โ ๐จ๐พ Cyprus (Greek)
|
|
203
|
+
- `tr_CY` / `tr-cy` โ ๐จ๐พ Cyprus (Turkish)
|
|
204
|
+
- `fo_FO` / `fo` / `faroe-islands` โ ๐ซ๐ด Faroe Islands
|
|
205
|
+
- `ca_AD` / `ad` / `andorra` โ ๐ฆ๐ฉ Andorra
|
|
206
|
+
- `fr_MC` / `mc` / `monaco` โ ๐ฒ๐จ Monaco
|
|
207
|
+
- `it_SM` / `sm` / `san-marino` โ ๐ธ๐ฒ San Marino
|
|
208
|
+
- `it_VA` / `va` / `vatican` โ ๐ป๐ฆ Vatican City
|
|
209
|
+
- `en_GI` / `gi` / `gibraltar` โ ๐ฌ๐ฎ Gibraltar
|
|
210
|
+
|
|
211
|
+
### Asia-Pacific ๐ (44)
|
|
212
|
+
|
|
213
|
+
- `zh_CN` / `zh` / `cn` / `china` โ ๐จ๐ณ China
|
|
214
|
+
- `zh_TW` / `tw` / `taiwan` โ ๐น๐ผ Taiwan
|
|
215
|
+
- `zh_HK` / `hk` / `hongkong` โ ๐ญ๐ฐ Hong Kong
|
|
216
|
+
- `ja_JP` / `ja` / `jp` / `japan` โ ๐ฏ๐ต Japan
|
|
217
|
+
- `ko_KR` / `ko` / `kr` / `korea` โ ๐ฐ๐ท South Korea
|
|
218
|
+
- `id_ID` / `id` / `indonesia` โ ๐ฎ๐ฉ Indonesia
|
|
219
|
+
- `ms_MY` / `ms` / `my` / `malaysia` โ ๐ฒ๐พ Malaysia
|
|
220
|
+
- `th_TH` / `th` / `thailand` โ ๐น๐ญ Thailand
|
|
221
|
+
- `vi_VN` / `vi` / `vn` / `vietnam` โ ๐ป๐ณ Vietnam
|
|
222
|
+
- `km_KH` / `kh` / `cambodia` โ ๐ฐ๐ญ Cambodia
|
|
223
|
+
- `lo_LA` / `la` / `laos` โ ๐ฑ๐ฆ Laos
|
|
224
|
+
- `my_MM` / `mm` / `myanmar` โ ๐ฒ๐ฒ Myanmar
|
|
225
|
+
- `mn_MN` / `mn` / `mongolia` โ ๐ฒ๐ณ Mongolia
|
|
226
|
+
- `en_SG` / `sg` / `singapore` โ ๐ธ๐ฌ Singapore
|
|
227
|
+
- `en_PH` / `ph` / `philippines` โ ๐ต๐ญ Philippines
|
|
228
|
+
- `en_AU` / `au` / `australia` โ ๐ฆ๐บ Australia
|
|
229
|
+
- `en_NZ` / `nz` / `new-zealand` โ ๐ณ๐ฟ New Zealand
|
|
230
|
+
- `en_IN` / `in` / `india` โ ๐ฎ๐ณ India (English)
|
|
231
|
+
- `hi_IN` / `hi` / `hindi` โ ๐ฎ๐ณ India (Hindi)
|
|
232
|
+
- `bn_IN` / `bn-in` โ ๐ฎ๐ณ India (Bengali)
|
|
233
|
+
- `si_LK` / `lk` / `sri-lanka` โ ๐ฑ๐ฐ Sri Lanka
|
|
234
|
+
- `bn_BD` / `bd` / `bangladesh` โ ๐ง๐ฉ Bangladesh
|
|
235
|
+
- `ne_NP` / `np` / `nepal` โ ๐ณ๐ต Nepal
|
|
236
|
+
- `dz_BT` / `bt` / `bhutan` โ ๐ง๐น Bhutan
|
|
237
|
+
- `dv_MV` / `mv` / `maldives` โ ๐ฒ๐ป Maldives
|
|
238
|
+
- `ur_PK` / `ur` / `urdu` โ ๐ต๐ฐ Pakistan (Urdu)
|
|
239
|
+
- `en_PK` / `pk` / `pakistan` โ ๐ต๐ฐ Pakistan (English)
|
|
240
|
+
- `ps_AF` / `af` / `afghanistan` โ ๐ฆ๐ซ Afghanistan
|
|
241
|
+
- `kk_KZ` / `kz` / `kazakhstan` โ ๐ฐ๐ฟ Kazakhstan
|
|
242
|
+
- `ky_KG` / `kg` / `kyrgyzstan` โ ๐ฐ๐ฌ Kyrgyzstan
|
|
243
|
+
- `tg_TJ` / `tj` / `tajikistan` โ ๐น๐ฏ Tajikistan
|
|
244
|
+
- `tk_TM` / `tm` / `turkmenistan` โ ๐น๐ฒ Turkmenistan
|
|
245
|
+
- `uz_UZ` / `uz` / `uzbekistan` โ ๐บ๐ฟ Uzbekistan
|
|
246
|
+
- `ka_GE` / `ge` / `georgia` โ ๐ฌ๐ช Georgia
|
|
247
|
+
- `hy_AM` / `hy` / `armenia` โ ๐ฆ๐ฒ Armenia
|
|
248
|
+
- `az_AZ` / `az` / `azerbaijan` โ ๐ฆ๐ฟ Azerbaijan
|
|
249
|
+
- `ms_BN` / `bn` / `brunei` โ ๐ง๐ณ Brunei
|
|
250
|
+
- `pt_TL` / `tl` / `timor-leste` โ ๐น๐ฑ Timor-Leste
|
|
251
|
+
- `zh_MO` / `mo` / `macau` โ ๐ฒ๐ด Macau (Chinese)
|
|
252
|
+
- `pt_MO` / `pt-mo` / `macau-portuguese` โ ๐ฒ๐ด Macau (Portuguese)
|
|
253
|
+
|
|
254
|
+
### Middle East & Africa ๐ (75)
|
|
255
|
+
|
|
256
|
+
**Middle East (19):**
|
|
257
|
+
- `ar_SA` / `sa` / `saudi` โ ๐ธ๐ฆ Saudi Arabia
|
|
258
|
+
- `ar_AE` / `ae` / `uae` โ ๐ฆ๐ช UAE
|
|
259
|
+
- `ar_EG` / `eg` / `egypt` โ ๐ช๐ฌ Egypt
|
|
260
|
+
- `ar_MA` / `ma` / `morocco` โ ๐ฒ๐ฆ Morocco
|
|
261
|
+
- `ar_DZ` / `dz` / `algeria` โ ๐ฉ๐ฟ Algeria
|
|
262
|
+
- `ar_TN` / `tn` / `tunisia` โ ๐น๐ณ Tunisia
|
|
263
|
+
- `ar_LY` / `ly` / `libya` โ ๐ฑ๐พ Libya
|
|
264
|
+
- `ar_SD` / `sd` / `sudan` โ ๐ธ๐ฉ Sudan
|
|
265
|
+
- `ar_IQ` / `iq` / `iraq` โ ๐ฎ๐ถ Iraq
|
|
266
|
+
- `ar_KW` / `kw` / `kuwait` โ ๐ฐ๐ผ Kuwait
|
|
267
|
+
- `ar_QA` / `qa` / `qatar` โ ๐ถ๐ฆ Qatar
|
|
268
|
+
- `ar_BH` / `bh` / `bahrain` โ ๐ง๐ญ Bahrain
|
|
269
|
+
- `ar_OM` / `om` / `oman` โ ๐ด๐ฒ Oman
|
|
270
|
+
- `ar_YE` / `ye` / `yemen` โ ๐พ๐ช Yemen
|
|
271
|
+
- `ar_JO` / `jo` / `jordan` โ ๐ฏ๐ด Jordan
|
|
272
|
+
- `ar_LB` / `lb` / `lebanon` โ ๐ฑ๐ง Lebanon
|
|
273
|
+
- `ar_SY` / `sy` / `syria` โ ๐ธ๐พ Syria
|
|
274
|
+
- `he_IL` / `he` / `il` / `israel` โ ๐ฎ๐ฑ Israel
|
|
275
|
+
- `fa_IR` / `fa` / `iran` โ ๐ฎ๐ท Iran
|
|
276
|
+
- `ar_PS` / `ps` / `palestine` โ ๐ต๐ธ Palestine
|
|
277
|
+
- `ar_MR` / `mr` / `mauritania` โ ๐ฒ๐ท Mauritania
|
|
278
|
+
|
|
279
|
+
**Sub-Saharan Africa (67):**
|
|
280
|
+
- `en_ZA` / `za` / `south-africa` โ ๐ฟ๐ฆ South Africa (English)
|
|
281
|
+
- `af_ZA` / `af` / `afrikaans` โ ๐ฟ๐ฆ South Africa (Afrikaans)
|
|
282
|
+
- `en_NA` / `na` / `namibia` โ ๐ณ๐ฆ Namibia
|
|
283
|
+
- `en_BW` / `bw` / `botswana` โ ๐ง๐ผ Botswana
|
|
284
|
+
- `en_ZW` / `zw` / `zimbabwe` โ ๐ฟ๐ผ Zimbabwe
|
|
285
|
+
- `en_ZM` / `zm` / `zambia` โ ๐ฟ๐ฒ Zambia
|
|
286
|
+
- `en_LS` / `ls` / `lesotho` โ ๐ฑ๐ธ Lesotho
|
|
287
|
+
- `en_SZ` / `sz` / `eswatini` โ ๐ธ๐ฟ Eswatini
|
|
288
|
+
- `en_NG` / `ng` / `nigeria` โ ๐ณ๐ฌ Nigeria
|
|
289
|
+
- `en_GH` / `gh` / `ghana` โ ๐ฌ๐ญ Ghana
|
|
290
|
+
- `en_SL` / `sl` / `sierra-leone` โ ๐ธ๐ฑ Sierra Leone
|
|
291
|
+
- `en_LR` / `lr` / `liberia` โ ๐ฑ๐ท Liberia
|
|
292
|
+
- `en_GM` / `gm` / `gambia` โ ๐ฌ๐ฒ Gambia
|
|
293
|
+
- `en_UG` / `ug` / `uganda` โ ๐บ๐ฌ Uganda
|
|
294
|
+
- `en_KE` / `ke` / `kenya` โ ๐ฐ๐ช Kenya (English)
|
|
295
|
+
- `sw_KE` / `sw-ke` โ ๐ฐ๐ช Kenya (Swahili)
|
|
296
|
+
- `sw_TZ` / `sw-tz` โ ๐น๐ฟ Tanzania (Swahili)
|
|
297
|
+
- `rw_RW` / `rw` / `rwanda` โ ๐ท๐ผ Rwanda
|
|
298
|
+
- `so_SO` / `so` / `somalia` โ ๐ธ๐ด Somalia
|
|
299
|
+
- `am_ET` / `am` / `ethiopia` โ ๐ช๐น Ethiopia
|
|
300
|
+
- `mg_MG` / `mg` / `madagascar` โ ๐ฒ๐ฌ Madagascar
|
|
301
|
+
- `fr_CM` / `cm` / `cameroon` โ ๐จ๐ฒ Cameroon
|
|
302
|
+
- `fr_CI` / `ci` / `cote-d-ivoire` โ ๐จ๐ฎ Cรดte d'Ivoire
|
|
303
|
+
- `fr_SN` / `sn` / `senegal` โ ๐ธ๐ณ Senegal
|
|
304
|
+
- `fr_ML` / `ml` / `mali` โ ๐ฒ๐ฑ Mali
|
|
305
|
+
- `fr_NE` / `ne` / `niger` โ ๐ณ๐ช Niger
|
|
306
|
+
- `fr_BF` / `bf` / `burkina-faso` โ ๐ง๐ซ Burkina Faso
|
|
307
|
+
- `fr_BJ` / `bj` / `benin` โ ๐ง๐ฏ Benin
|
|
308
|
+
- `fr_TG` / `tg` / `togo` โ ๐น๐ฌ Togo
|
|
309
|
+
- `fr_GA` / `ga` / `gabon` โ ๐ฌ๐ฆ Gabon
|
|
310
|
+
- `pt_AO` / `ao` / `angola` โ ๐ฆ๐ด Angola
|
|
311
|
+
- `pt_MZ` / `mz` / `mozambique` โ ๐ฒ๐ฟ Mozambique
|
|
312
|
+
- `pt_CV` / `cv` / `cape-verde` โ ๐จ๐ป Cape Verde
|
|
313
|
+
- `pt_GW` / `gw` / `guinea-bissau` โ ๐ฌ๐ผ Guinea-Bissau
|
|
314
|
+
- `pt_ST` / `st` / `sao-tome` โ ๐ธ๐น Sรฃo Tomรฉ & Prรญncipe
|
|
315
|
+
- `ar_PS` / `ps` / `palestine` โ ๐ต๐ธ Palestine
|
|
316
|
+
- `ar_MR` / `mr` / `mauritania` โ ๐ฒ๐ท Mauritania
|
|
317
|
+
- `ar_KM` / `km` / `comoros` โ ๐ฐ๐ฒ Comoros
|
|
318
|
+
- `ar_DJ` / `dj` / `djibouti` โ ๐ฉ๐ฏ Djibouti
|
|
319
|
+
- `en_MU` / `mu` / `mauritius` โ ๐ฒ๐บ Mauritius
|
|
320
|
+
- `fr_SC` / `fr-sc` / `seychelles-french` โ ๐ธ๐จ Seychelles (French)
|
|
321
|
+
- `en_SC` / `sc` / `seychelles` โ ๐ธ๐จ Seychelles (English)
|
|
322
|
+
- `fr_GN` / `gn` / `guinea-conakry` โ ๐ฌ๐ณ Guinea
|
|
323
|
+
- `es_GQ` / `gq` / `equatorial-guinea` โ ๐ฌ๐ถ Equatorial Guinea
|
|
324
|
+
- `en_SS` / `ss` / `south-sudan` โ ๐ธ๐ธ South Sudan
|
|
325
|
+
- `ti_ER` / `er` / `eritrea` โ ๐ช๐ท Eritrea
|
|
326
|
+
- `ms_BN` / `bn` / `brunei` โ ๐ง๐ณ Brunei
|
|
327
|
+
- `pt_TL` / `tl` / `timor-leste` โ ๐น๐ฑ Timor-Leste
|
|
328
|
+
- `zh_MO` / `mo` / `macau` โ ๐ฒ๐ด Macau (Chinese)
|
|
329
|
+
- `pt_MO` / `pt-mo` / `macau-portuguese` โ ๐ฒ๐ด Macau (Portuguese)
|
|
330
|
+
- `ca_AD` / `ad` / `andorra` โ ๐ฆ๐ฉ Andorra
|
|
331
|
+
- `fr_MC` / `mc` / `monaco` โ ๐ฒ๐จ Monaco
|
|
332
|
+
- `it_SM` / `sm` / `san-marino` โ ๐ธ๐ฒ San Marino
|
|
333
|
+
- `it_VA` / `va` / `vatican` โ ๐ป๐ฆ Vatican City
|
|
334
|
+
- `en_GI` / `gi` / `gibraltar` โ ๐ฌ๐ฎ Gibraltar
|
|
335
|
+
|
|
336
|
+
## Usage Examples
|
|
337
|
+
|
|
338
|
+
### Basic Usage
|
|
227
339
|
|
|
228
340
|
```typescript
|
|
229
341
|
import { createMimic } from 'mimic-data';
|
|
@@ -231,20 +343,20 @@ import { createMimic } from 'mimic-data';
|
|
|
231
343
|
const mimic = createMimic('ja_JP');
|
|
232
344
|
|
|
233
345
|
console.log(mimic.identity.fullName());
|
|
234
|
-
//
|
|
346
|
+
// "Tanaka Kenji"
|
|
235
347
|
|
|
236
348
|
console.log(mimic.location.fullAddress());
|
|
237
|
-
//
|
|
349
|
+
// "ใ123-4567 Tokyo, Yokohama, Chuo-dori 2-5-10"
|
|
238
350
|
```
|
|
239
351
|
|
|
240
|
-
###
|
|
352
|
+
### Using the Mimic Class Directly
|
|
241
353
|
|
|
242
354
|
```typescript
|
|
243
355
|
import { Mimic, locales } from 'mimic-data';
|
|
244
356
|
|
|
245
357
|
const mimic = new Mimic(locales.de_DE);
|
|
246
358
|
console.log(mimic.identity.fullName('female'));
|
|
247
|
-
//
|
|
359
|
+
// "Maria Mรผller"
|
|
248
360
|
```
|
|
249
361
|
|
|
250
362
|
### Seeded Random (Reproducible Data)
|
|
@@ -281,7 +393,7 @@ const employees = mimic.generateMockEntities(200, {
|
|
|
281
393
|
});
|
|
282
394
|
```
|
|
283
395
|
|
|
284
|
-
### Complete Employee
|
|
396
|
+
### Complete Employee Record
|
|
285
397
|
|
|
286
398
|
```typescript
|
|
287
399
|
import { createMimic } from 'mimic-data';
|
|
@@ -325,15 +437,15 @@ console.log(employee);
|
|
|
325
437
|
// }
|
|
326
438
|
```
|
|
327
439
|
|
|
328
|
-
##
|
|
440
|
+
## TypeScript Types
|
|
329
441
|
|
|
330
442
|
```typescript
|
|
331
|
-
import {
|
|
332
|
-
Gender,
|
|
443
|
+
import {
|
|
444
|
+
Gender,
|
|
333
445
|
MetricSystem,
|
|
334
446
|
PersonData,
|
|
335
|
-
AddressData,
|
|
336
|
-
PhysicalData,
|
|
447
|
+
AddressData,
|
|
448
|
+
PhysicalData,
|
|
337
449
|
WorkData,
|
|
338
450
|
ContactData,
|
|
339
451
|
CompanyData,
|
|
@@ -402,7 +514,7 @@ interface AgeRange {
|
|
|
402
514
|
}
|
|
403
515
|
```
|
|
404
516
|
|
|
405
|
-
##
|
|
517
|
+
## Random Utilities
|
|
406
518
|
|
|
407
519
|
```typescript
|
|
408
520
|
import { Random } from 'mimic-data';
|
|
@@ -418,7 +530,7 @@ Random.multiple(() => Random.int(1, 100), 10);
|
|
|
418
530
|
Random.unique(() => Random.int(1, 1000), 20);
|
|
419
531
|
```
|
|
420
532
|
|
|
421
|
-
##
|
|
533
|
+
## Development
|
|
422
534
|
|
|
423
535
|
```bash
|
|
424
536
|
# Install dependencies
|
|
@@ -437,24 +549,22 @@ npm test
|
|
|
437
549
|
npm run type-check
|
|
438
550
|
```
|
|
439
551
|
|
|
440
|
-
##
|
|
552
|
+
## License
|
|
441
553
|
|
|
442
554
|
MIT
|
|
443
555
|
|
|
444
|
-
##
|
|
445
|
-
|
|
446
|
-
Kontribusi sangat diterima! Silakan buka issue atau pull request.
|
|
556
|
+
## Contributing
|
|
447
557
|
|
|
448
|
-
|
|
558
|
+
Contributions are welcome! Please open an issue or pull request on [GitHub](https://github.com/fazelllyyy/mimic-data).
|
|
449
559
|
|
|
450
|
-
|
|
560
|
+
### Adding a New Locale
|
|
451
561
|
|
|
452
|
-
1. **
|
|
453
|
-
2. **Implement
|
|
454
|
-
3. **Import
|
|
562
|
+
1. **Create a locale file** at `src/locales/xx_XX.ts`
|
|
563
|
+
2. **Implement the `LocaleDefinition`** interface
|
|
564
|
+
3. **Import and register** in `src/index.ts`
|
|
455
565
|
|
|
456
566
|
```typescript
|
|
457
|
-
// 1.
|
|
567
|
+
// 1. Create file: src/locales/es_ES.ts
|
|
458
568
|
import { LocaleDefinition } from '../types';
|
|
459
569
|
import { Random } from '../core/random';
|
|
460
570
|
|
|
@@ -480,15 +590,16 @@ export const es_ES: LocaleDefinition = {
|
|
|
480
590
|
}
|
|
481
591
|
};
|
|
482
592
|
|
|
483
|
-
// 2. Register
|
|
593
|
+
// 2. Register in src/index.ts
|
|
484
594
|
import { es_ES } from './locales/es_ES';
|
|
485
595
|
localeRegistry.register('es_ES', es_ES, ['es', 'spain', 'espaรฑa']);
|
|
486
596
|
```
|
|
487
597
|
|
|
488
|
-
##
|
|
598
|
+
## Acknowledgments
|
|
599
|
+
|
|
600
|
+
Inspired by libraries like Faker.js, with a focus on:
|
|
489
601
|
|
|
490
|
-
Terinspirasi oleh library seperti Faker.js, namun dengan fokus pada:
|
|
491
602
|
- Zero runtime dependencies
|
|
492
|
-
-
|
|
493
|
-
-
|
|
494
|
-
- TypeScript-first
|
|
603
|
+
- Accurate localization for each region
|
|
604
|
+
- Smaller bundle size through tree-shaking
|
|
605
|
+
- TypeScript-first design with full type safety
|