@@ -161,25 +161,42 @@ export class Random {
161161 }
162162
163163 /**
164- * Returns a random key or value from given object.
164+ * Returns a random key from given object.
165165 *
166166 * @template T The type of `Record` to pick from.
167167 * @template K The keys of `T`.
168- * @param object The object to get the keys or values from.
168+ * @param object The object to get the keys from.
169169 * @param field If this is set to `'key'`, this method will a return a random key of the given instance.
170- * If this is set to `'value'`, this method will a return a random value of the given instance.
171- * Defaults to `'value'`.
170+ *
171+ * @see faker.helpers.objectKey()
172172 *
173173 * @example
174174 * const object = { keyA: 'valueA', keyB: 42 };
175- * faker.random.objectElement(object) // 42
176175 * faker.random.objectElement(object, 'key') // 'keyB'
177- * faker.random.objectElement(object, 'value') // 'valueA'
176+ *
177+ * @deprecated
178178 */
179179 objectElement < T extends Record < string , unknown > , K extends keyof T > (
180180 object : T ,
181181 field : 'key'
182182 ) : K ;
183+ /**
184+ * Returns a random value from given object.
185+ *
186+ * @template T The type of `Record` to pick from.
187+ * @template K The keys of `T`.
188+ * @param object The object to get the values from.
189+ * @param field If this is set to `'value'`, this method will a return a random value of the given instance.
190+ *
191+ * @see faker.helpers.objectValue()
192+ *
193+ * @example
194+ * const object = { keyA: 'valueA', keyB: 42 };
195+ * faker.random.objectElement(object) // 42
196+ * faker.random.objectElement(object, 'value') // 'valueA'
197+ *
198+ * @deprecated
199+ */
183200 objectElement < T extends Record < string , unknown > , K extends keyof T > (
184201 object : T ,
185202 field ?: unknown
@@ -194,24 +211,56 @@ export class Random {
194211 * If this is set to `'value'`, this method will a return a random value of the given instance.
195212 * Defaults to `'value'`.
196213 *
214+ * @see faker.helpers.objectKey()
215+ * @see faker.helpers.objectValue()
216+ *
197217 * @example
198218 * const object = { keyA: 'valueA', keyB: 42 };
199219 * faker.random.objectElement(object) // 42
200220 * faker.random.objectElement(object, 'key') // 'keyB'
201221 * faker.random.objectElement(object, 'value') // 'valueA'
222+ *
223+ * @deprecated
202224 */
203225 objectElement < T extends Record < string , unknown > , K extends keyof T > (
204- object : T ,
226+ object ? : T ,
205227 field ?: 'key' | 'value'
206228 ) : K | T [ K ] ;
229+ /**
230+ * Returns a random key or value from given object.
231+ *
232+ * @template T The type of `Record` to pick from.
233+ * @template K The keys of `T`.
234+ * @param object The object to get the keys or values from.
235+ * @param field If this is set to `'key'`, this method will a return a random key of the given instance.
236+ * If this is set to `'value'`, this method will a return a random value of the given instance.
237+ * Defaults to `'value'`.
238+ *
239+ * @see faker.helpers.objectKey()
240+ * @see faker.helpers.objectValue()
241+ *
242+ * @example
243+ * const object = { keyA: 'valueA', keyB: 42 };
244+ * faker.random.objectElement(object) // 42
245+ * faker.random.objectElement(object, 'key') // 'keyB'
246+ * faker.random.objectElement(object, 'value') // 'valueA'
247+ *
248+ * @deprecated
249+ */
207250 objectElement < T extends Record < string , unknown > , K extends keyof T > (
208- object = { foo : 'bar' , too : 'car' } as unknown as T ,
209- field = 'value'
251+ object : T = { foo : 'bar' , too : 'car' } as unknown as T ,
252+ field : 'key' | 'value' = 'value'
210253 ) : K | T [ K ] {
211- const array : Array < keyof T > = Object . keys ( object ) ;
212- const key = this . arrayElement ( array ) ;
213-
214- return field === 'key' ? ( key as K ) : ( object [ key ] as T [ K ] ) ;
254+ const useKey = field === 'key' ;
255+ deprecated ( {
256+ deprecated : `faker.random.objectElement(${ useKey ? "obj, 'key'" : '' } )` ,
257+ proposed : `faker.helpers.object${ useKey ? 'Key' : 'Value' } ()` ,
258+ since : 'v6.3.0' ,
259+ until : 'v7.0.0' ,
260+ } ) ;
261+ return field === 'key'
262+ ? ( this . faker . helpers . objectKey ( object ) as K )
263+ : ( this . faker . helpers . objectValue ( object ) as T [ K ] ) ;
215264 }
216265
217266 /**
0 commit comments