Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80517 views
1
'use strict';
2
3
4
var count = 0;
5
6
/**
7
* Generate a unique ID.
8
*
9
* Optionally pass a prefix to prepend, a suffix to append, or a
10
* multiplier to use on the ID.
11
*
12
* ```js
13
* uniqueId(); //=> '25'
14
*
15
* uniqueId({prefix: 'apple_'});
16
* //=> 'apple_10'
17
*
18
* uniqueId({suffix: '_orange'});
19
* //=> '10_orange'
20
*
21
* uniqueId({multiplier: 5});
22
* //=> 5, 10, 15, 20...
23
* ```
24
*
25
* To reset the `id` to zero, do `id.reset()`.
26
*
27
* @param {Object} `options` Optionally pass a `prefix`, `suffix` and/or `multiplier.
28
* @return {String} The unique id.
29
* @api public
30
*/
31
32
var id = module.exports = function (options) {
33
options = options || {};
34
35
var prefix = options.prefix;
36
var suffix = options.suffix;
37
38
var id = ++count * (options.multiplier || 1);
39
40
if (prefix == null) {
41
prefix = '';
42
}
43
44
if (suffix == null) {
45
suffix = '';
46
}
47
48
return String(prefix) + id + String(suffix);
49
};
50
51
52
id.reset = function() {
53
return count = 0;
54
};
55