diff --git a/lib/sequence/index.js b/lib/sequence/index.js index f60d86e..b49bf37 100644 --- a/lib/sequence/index.js +++ b/lib/sequence/index.js @@ -1,114 +1,103 @@ -'use strict' - -const uuid = require('uuid').v4 -const log = require('../log')('seq') - +'use strict'; +const uuid = require('uuid').v4; +const log = require('../log')('seq'); /** Object sequence features */ const sequence = {}; - sequence._state = { - arr : [], - active : false, - paused : false, - frame: false, - delay : false, - count : 0, - stop : null -} - + arr: [], + active: false, + paused: false, + frame: false, + delay: false, + count: 0, + stop: null +}; sequence._loop = { - arr : [], - count : 0, - max : 0 -} - + arr: [], + count: 0, + max: 0 +}; sequence.start = function (options, cb) { - if (sequence._state.active) { - return false - } - - sequence._state.active = true - sequence._state.count = 0 - - if (options.arr) { - sequence._state.arr = options.arr - } - - if (options.loop) { - sequence._loop.arr = options.loop - sequence._loop.count = 0 - } - - if (options.maxLoop) { - sequence._loop.max = options.maxLoop - } else { - sequence._loop.max = 0 - } - sequence._state.stop = cb - sequence.step() - sequence._state.id = uuid() - return sequence._state.id -} - + if (sequence._state.active) { + return false; + } + sequence._state.active = true; + sequence._state.count = 0; + if (options.arr) { + sequence._state.arr = options.arr; + } + if (options.loop) { + sequence._loop.arr = options.loop; + sequence._loop.count = 0; + } + if (options.maxLoop) { + sequence._loop.max = options.maxLoop; + } + else { + sequence._loop.max = 0; + } + sequence._state.stop = cb; + sequence.step(); + sequence._state.id = uuid(); + return sequence._state.id; +}; sequence.setStop = function () { - sequence._state.active = false -} - + sequence._state.active = false; +}; sequence.stop = function () { - sequence._state.active = false - sequence._state.count = 0 - sequence._state.arr = [] - - sequence._loop.count = 0 - sequence._loop.max = 0 - sequence._loop.arr = [] - - if (sequence._state.stop) sequence._state.stop() - - sequence._state.stop = null -} - + sequence._state.active = false; + sequence._state.count = 0; + sequence._state.arr = []; + sequence._loop.count = 0; + sequence._loop.max = 0; + sequence._loop.arr = []; + if (sequence._state.stop) + sequence._state.stop(); + sequence._state.stop = null; +}; sequence.pause = function () { - sequence._state.paused = true -} - + sequence._state.paused = true; +}; sequence.resume = function () { - sequence._state.paused = false - sequence.step() -} - + sequence._state.paused = false; + sequence.step(); +}; sequence.step = function () { - if (sequence._state.active && !sequence._state.paused) { - if (sequence._state.arr.length > 0) { - if (sequence._state.count > sequence._state.arr.length - 1) { - return sequence.stop() - } - log.info('step', { count : sequence._state.count, id : sequence._state.id }) - return sequence._state.arr[sequence._state.count](() => { - sequence._state.count++ - sequence.step() - }) - } else if (sequence._loop.arr.length > 0) { - if (sequence._state.count > sequence._loop.arr.length - 1) { - sequence._state.count = 0 - sequence._loop.count++ - } - if (sequence._loop.max > 0 && sequence._loop.count > sequence._loop.max) { - return sequence.stop() - } - log.info('step', { count : sequence._state.count, id : sequence._state.id }) - return sequence._loop.arr[sequence._state.count](() => { - sequence._state.count++ - sequence.step() - }) - } else{ - return sequence.stop() - } - } else if (sequence._state.paused) { - log.info('step', 'Sequence paused', { loop : sequence._loop.count, count : sequence._state.count }) - } else if (!sequence._state.active) { - log.info('step', 'Sequence stopped', { loop : sequence._loop.count, count : sequence._state.count }) - } -} - -module.exports = sequence \ No newline at end of file + if (sequence._state.active && !sequence._state.paused) { + if (sequence._state.arr.length > 0) { + if (sequence._state.count > sequence._state.arr.length - 1) { + return sequence.stop(); + } + log.info('step', { count: sequence._state.count, id: sequence._state.id }); + return sequence._state.arr[sequence._state.count](() => { + sequence._state.count++; + sequence.step(); + }); + } + else if (sequence._loop.arr.length > 0) { + if (sequence._state.count > sequence._loop.arr.length - 1) { + sequence._state.count = 0; + sequence._loop.count++; + } + if (sequence._loop.max > 0 && sequence._loop.count > sequence._loop.max) { + return sequence.stop(); + } + log.info('step', { count: sequence._state.count, id: sequence._state.id }); + return sequence._loop.arr[sequence._state.count](() => { + sequence._state.count++; + sequence.step(); + }); + } + else { + return sequence.stop(); + } + } + else if (sequence._state.paused) { + log.info('step', 'Sequence paused', { loop: sequence._loop.count, count: sequence._state.count }); + } + else if (!sequence._state.active) { + log.info('step', 'Sequence stopped', { loop: sequence._loop.count, count: sequence._state.count }); + } +}; +module.exports = sequence; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/sequence/index.js.map b/lib/sequence/index.js.map new file mode 100644 index 0000000..7968516 --- /dev/null +++ b/lib/sequence/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequence/index.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/lib/sequence/index.ts b/src/sequence/index.ts similarity index 100% rename from src/lib/sequence/index.ts rename to src/sequence/index.ts