mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-01-29 14:37:49 +00:00
34 lines
632 B
JavaScript
34 lines
632 B
JavaScript
/** Used to generate unique IDs. */
|
|
const idCounter = {}
|
|
|
|
/**
|
|
* Generates a unique ID. If `prefix` is given, the ID is appended to it.
|
|
*
|
|
* @since 0.1.0
|
|
* @category Util
|
|
* @param {string} [prefix=''] The value to prefix the ID with.
|
|
* @returns {string} Returns the unique ID.
|
|
* @see random
|
|
* @example
|
|
*
|
|
* uniqueId('contact_')
|
|
* // => 'contact_104'
|
|
*
|
|
* uniqueId()
|
|
* // => '105'
|
|
*/
|
|
function uniqueId(prefix='$lodash$') {
|
|
if (!idCounter[prefix]) {
|
|
idCounter[prefix] = 0
|
|
}
|
|
|
|
const id =++idCounter[prefix]
|
|
if (prefix === '$lodash$') {
|
|
return `${id}`
|
|
}
|
|
|
|
return `${prefix + id}`
|
|
}
|
|
|
|
export default uniqueId
|