# all files / diagram-js/lib/util/ IdGenerator.js

100% Statements 4/4
50% Branches 1/2
100% Functions 2/2
100% Lines 4/4

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28

    2×
    2×

    1×
    32×

     /**
     * Util that provides unique IDs.
     *
     * @class djs.util.IdGenerator
     * @constructor
     * @memberOf djs.util
     *
     * The ids can be customized via a given prefix and contain a random value to avoid collisions.
     *
     * @param {String} prefix a prefix to prepend to generated ids (for better readability)
     */
    export default function IdGenerator(prefix) {

      this._counter = 0;
      this._prefix = (prefix ? prefix + '-' : '') + Math.floor(Math.random() * 1000000000) + '-';
    }

    /**
     * Returns a next unique ID.
     *
     * @method djs.util.IdGenerator#next
     *
     * @returns {String} the id
     */
    IdGenerator.prototype.next = function() {
      return this._prefix + (++this._counter);
    };