diff --git a/src/mermaid.js b/src/mermaid.js index b872df2fc..d6e67f699 100644 --- a/src/mermaid.js +++ b/src/mermaid.js @@ -78,7 +78,7 @@ const init = function() { mermaidAPI.updateSiteConfig({ gantt: mermaid.ganttConfig }); } - const idGeneratior = utils.initIdGeneratior(conf.deterministicIds, conf.deterministicIDSeed); + const idGeneratior = new utils.initIdGeneratior(conf.deterministicIds, conf.deterministicIDSeed); let txt; diff --git a/src/utils.js b/src/utils.js index 97b6d125f..b6e2a9d9a 100644 --- a/src/utils.js +++ b/src/utils.js @@ -793,17 +793,19 @@ export const configureSvgSize = function(svgElem, height, width, useMaxWidth) { d3Attrs(svgElem, attrs); }; -export const initIdGeneratior = function(deterministic, seed) { - if (!deterministic) return { next: () => Date.now() }; - class iterator { - constructor() { - return (this.count = seed ? seed.length : 0); - } - next() { - return this.count++; - } +export const initIdGeneratior = class iterator { + constructor (deterministic, seed) { + this.deterministic = deterministic; + this.seed = seed; + + this.count = seed ? seed.length : 0 + } + + next() { + if (!this.deterministic) return Date.now(); + + return this.count++; } - return new iterator(); }; export default { diff --git a/src/utils.spec.js b/src/utils.spec.js index 66b13a276..c490099dd 100644 --- a/src/utils.spec.js +++ b/src/utils.spec.js @@ -256,7 +256,7 @@ describe('when calculating SVG size', function() { describe('when initializing the id generator', function () { it('should return a random number generator based on Date', function (done) { - const idGenerator = utils.initIdGeneratior(false) + const idGenerator = new utils.initIdGeneratior(false) expect(typeof idGenerator.next).toEqual('function') const lastId = idGenerator.next() setTimeout(() => { @@ -266,7 +266,7 @@ describe('when initializing the id generator', function () { }); it('should return a non random number generator', function () { - const idGenerator = utils.initIdGeneratior(true) + const idGenerator = new utils.initIdGeneratior(true) expect(typeof idGenerator.next).toEqual('function') const start = 0 const lastId = idGenerator.next() @@ -275,7 +275,7 @@ describe('when initializing the id generator', function () { }); it('should return a non random number generator based on seed', function () { - const idGenerator = utils.initIdGeneratior(true, 'thisIsASeed') + const idGenerator = new utils.initIdGeneratior(true, 'thisIsASeed') expect(typeof idGenerator.next).toEqual('function') const start = 11 const lastId = idGenerator.next()