@@ -14,6 +14,9 @@ function arrayRemove<T>(arr: T[], values: T[]): T[] {
14
14
return arr ;
15
15
}
16
16
17
+ /**
18
+ * Generates random values of different kinds. Some methods are deprecated and have been moved to dedicated modules.
19
+ */
17
20
export class Random {
18
21
constructor ( private readonly faker : Faker , seed ?: any [ ] | any ) {
19
22
// Use a user provided seed if it is an array or number
@@ -33,12 +36,24 @@ export class Random {
33
36
}
34
37
35
38
/**
36
- * Returns a single random number based on a max number or range.
39
+ * Returns a single random number between zero and the given max value or the given range with the specified precision.
40
+ * The bounds are inclusive.
41
+ *
42
+ * @param options Maximum value or options object.
43
+ * @param options.min Lower bound for generated number. Defaults to `0`.
44
+ * @param options.max Upper bound for generated number. Defaults to `99999`.
45
+ * @param options.precision Precision of the generated number. Defaults to `1`.
37
46
*
38
- * @method faker.random.number
39
- * @param options {min, max, precision}
47
+ * @example
48
+ * faker.random.number() // 55422
49
+ * faker.random.number(100) // 52
50
+ * faker.random.number({ min: 1000000 }) // 431433
51
+ * faker.random.number({ max: 100 }) // 42
52
+ * faker.random.number({ precision: 0.01 }) // 64246.18
53
+ * faker.random.number({ min: 10, max: 100, precision: 0.01 }) // 36.94
40
54
*
41
55
* @deprecated
56
+ * @see faker.datatype.number()
42
57
*/
43
58
number (
44
59
options ?: number | { min ?: number ; max ?: number ; precision ?: number }
@@ -50,12 +65,23 @@ export class Random {
50
65
}
51
66
52
67
/**
53
- * Returns a single random floating-point number based on a max number or range.
68
+ * Returns a single random floating-point number for the given precision or range and precision .
54
69
*
55
- * @method faker.random.float
56
- * @param options
70
+ * @param options Precision or options object.
71
+ * @param options.min Lower bound for generated number. Defaults to `0`.
72
+ * @param options.max Upper bound for generated number. Defaults to `99999`.
73
+ * @param options.precision Precision of the generated number. Defaults to `0.01`.
74
+ *
75
+ * @example
76
+ * faker.random.float() // 51696.36
77
+ * faker.random.float(0.1) // 52023.2
78
+ * faker.random.float({ min: 1000000 }) // 212859.76
79
+ * faker.random.float({ max: 100 }) // 28.11
80
+ * faker.random.float({ precision: 0.1 }) // 84055.3
81
+ * faker.random.float({ min: 10, max: 100, precision: 0.001 }) // 57.315
57
82
*
58
83
* @deprecated
84
+ * @see faker.datatype.float()
59
85
*/
60
86
float (
61
87
options ?: number | { min ?: number ; max ?: number ; precision ?: number }
@@ -67,10 +93,13 @@ export class Random {
67
93
}
68
94
69
95
/**
70
- * Takes an array and returns a random element of the array.
96
+ * Returns random element from the given array.
97
+ *
98
+ * @param array Array to pick the value from. Defaults to `['a', 'b', 'c']`.
71
99
*
72
- * @method faker.random.arrayElement
73
- * @param array
100
+ * @example
101
+ * faker.random.arrayElement() // 'b'
102
+ * faker.random.arrayElement(['cat', 'dog', 'mouse']) // 'dog'
74
103
*/
75
104
arrayElement < T = string > (
76
105
array : ReadonlyArray < T > = [ 'a' , 'b' , 'c' ] as unknown as ReadonlyArray < T >
@@ -80,11 +109,17 @@ export class Random {
80
109
}
81
110
82
111
/**
83
- * Takes an array and returns a subset with random elements of the array.
112
+ * Returns a subset with random elements of the given array in random order .
84
113
*
85
- * @method faker.random.arrayElements
86
- * @param array
87
- * @param count number of elements to pick
114
+ * @param array Array to pick the value from. Defaults to `['a', 'b', 'c']`.
115
+ * @param count Number of elements to pick.
116
+ * When not provided, random number of elements will be picked.
117
+ * When value exceeds array boundaries, it will be limited to stay inside.
118
+ *
119
+ * @example
120
+ * faker.random.arrayElements() // ['b', 'c']
121
+ * faker.random.arrayElements(['cat', 'dog', 'mouse']) // ['mouse', 'cat']
122
+ * faker.random.arrayElements([1, 2, 3, 4, 5], 2) // [4, 2]
88
123
*/
89
124
arrayElements < T > (
90
125
array : ReadonlyArray < T > = [ 'a' , 'b' , 'c' ] as unknown as ReadonlyArray < T > ,
@@ -117,7 +152,7 @@ export class Random {
117
152
}
118
153
119
154
/**
120
- * Takes an object and returns a random key or value.
155
+ * Returns a random key or value from given object .
121
156
*
122
157
* @method faker.random.objectElement
123
158
* @param object
@@ -142,10 +177,13 @@ export class Random {
142
177
}
143
178
144
179
/**
145
- * uuid
180
+ * Returns a UUID v4 ([Universally Unique Identifier](https://en.wikipedia.org/wiki/Universally_unique_identifier)).
181
+ *
182
+ * @example
183
+ * faker.random.uuid() // '4136cd0b-d90b-4af7-b485-5d1ded8db252'
146
184
*
147
- * @method faker.random.uuid
148
185
* @deprecated
186
+ * @see faker.datatype.uuid()
149
187
*/
150
188
uuid ( ) : string {
151
189
console . log (
@@ -155,10 +193,13 @@ export class Random {
155
193
}
156
194
157
195
/**
158
- * boolean
196
+ * Returns the boolean value true or false.
197
+ *
198
+ * @example
199
+ * faker.random.boolean() // false
159
200
*
160
- * @method faker.random.boolean
161
201
* @deprecated
202
+ * @see faker.datatype.boolean()
162
203
*/
163
204
boolean ( ) : boolean {
164
205
console . log (
@@ -167,15 +208,14 @@ export class Random {
167
208
return this . faker . datatype . boolean ( ) ;
168
209
}
169
210
170
- // TODO: have ability to return specific type of word? As in: noun, adjective, verb, etc
171
211
/**
172
- * word
212
+ * Returns random word.
173
213
*
174
- * @method faker.random.word
175
- * @param type
214
+ * @example
215
+ * faker.random.word() // 'Seamless'
176
216
*/
177
- // TODO @Shinigami 92 2022-01-11: ` type` is not in use
178
- word ( type ?: unknown ) : string {
217
+ // TODO: have ability to return specific type of word? As in: noun, adjective, verb, etc
218
+ word ( ) : string {
179
219
const wordMethods = [
180
220
'commerce.department' ,
181
221
'commerce.productName' ,
@@ -216,27 +256,34 @@ export class Random {
216
256
return this . faker . random . arrayElement ( result . split ( ' ' ) ) ;
217
257
}
218
258
259
+ /**
260
+ * @see word()
261
+ */
219
262
readonly randomWord : Random [ 'word' ] = this . word . bind ( this ) ;
220
263
221
264
/**
222
- * randomWords
265
+ * Returns string with set of random words.
266
+ *
267
+ * @param count Number of words. Defaults to a random value between `1` and `3`
223
268
*
224
- * @method faker.random.words
225
- * @param count defaults to a random value between 1 and 3
269
+ * @example
270
+ * faker.random.words() // 'neural'
271
+ * faker.random.words(5) // 'copy Handcrafted bus client-server Point'
226
272
*/
227
273
words ( count ?: number ) : string {
228
274
const words : string [ ] = [ ] ;
275
+
229
276
if ( typeof count === 'undefined' ) {
230
277
count = this . faker . datatype . number ( { min : 1 , max : 3 } ) ;
231
278
}
279
+
232
280
for ( let i = 0 ; i < count ; i ++ ) {
233
281
words . push ( this . faker . random . word ( ) ) ;
234
282
}
283
+
235
284
return words . join ( ' ' ) ;
236
285
}
237
286
238
- readonly randomWords : Random [ 'words' ] = this . words . bind ( this ) ;
239
-
240
287
/**
241
288
* locale
242
289
*
0 commit comments