Backup sequence and create typescript source for it
This commit is contained in:
parent
3e8382a000
commit
f1ab4ca1af
|
@ -0,0 +1,114 @@
|
|||
'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
|
||||
}
|
||||
|
||||
sequence._loop = {
|
||||
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
|
||||
}
|
||||
|
||||
sequence.setStop = function () {
|
||||
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.pause = function () {
|
||||
sequence._state.paused = true
|
||||
}
|
||||
|
||||
sequence.resume = function () {
|
||||
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
|
|
@ -0,0 +1,114 @@
|
|||
'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
|
||||
}
|
||||
|
||||
sequence._loop = {
|
||||
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
|
||||
}
|
||||
|
||||
sequence.setStop = function () {
|
||||
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.pause = function () {
|
||||
sequence._state.paused = true
|
||||
}
|
||||
|
||||
sequence.resume = function () {
|
||||
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
|
Loading…
Reference in New Issue