UNPKG

@eflexsystems/factory-bot

Version:

A factory library for Node.js and JavaScript inspired by factory_girl

36 lines (30 loc) 743 B
import Generator from './Generator.js' function generateId() { let id let i = 0 do { id = `_${i++}` } while (id in Sequence.sequences) // eslint-disable-line no-use-before-define return id } class Sequence extends Generator { generate(id = null, callback = null) { if (typeof id === 'function') { callback = id id = null } id = id || this.id || (this.id = generateId()) Sequence.sequences[id] = Sequence.sequences[id] || 1 const next = Sequence.sequences[id]++ return callback ? callback(next) : next } } Sequence.sequences = {} Sequence.reset = (id = null) => { if (!id) { Sequence.sequences = {} } else { Sequence.sequences[id] = undefined } } export default Sequence