From 425dd9fd6a95e99d94120685938f60b9e32b9fa0 Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Fri, 22 Mar 2019 03:22:33 -0400 Subject: [PATCH] Initial updates to sequence module. Will try to simplify into a for loop, but if tests fail will re-write to a similar form as the renderer seq.js module --- app/lib/sequence/index.js | 71 ++++++++++++++++++++++++----- app/lib/sequence/index.js.map | 2 +- cli/lib/sequence/index.js | 71 ++++++++++++++++++++++++----- cli/lib/sequence/index.js.map | 2 +- lib/sequence/index.js | 71 ++++++++++++++++++++++++----- lib/sequence/index.js.map | 2 +- src/sequence/index.ts | 86 +++++++++++++++++++++++++++-------- 7 files changed, 248 insertions(+), 57 deletions(-) diff --git a/app/lib/sequence/index.js b/app/lib/sequence/index.js index c1a66f3..b487c16 100644 --- a/app/lib/sequence/index.js +++ b/app/lib/sequence/index.js @@ -1,16 +1,59 @@ 'use strict'; -let log; +Object.defineProperty(exports, "__esModule", { value: true }); +const Log = require("log"); let seq; class Sequence { constructor(cfg, cmd) { + this.arr = []; + this.loops = 1; + this.CMDS = {}; this.cfg = cfg; this.cmd = cmd; + this.cmds(cfg.cmd); + this.init(); + } + cmds(obj) { + let keys = Object.keys(obj); + let key; + for (key in keys) { + this.CMDS[keys[key]] = key; + } } //currently called by ui - init() { + async init() { + this.log = Log({ label: 'sequence' }); + this.ipc = require('electron').ipcMain; + this.listen(); + } + listen() { + this.ipc.on('sequence', this.listener.bind(this)); + } + async listener(event, arg) { + if (arg && arg.diff) { + this.diff(arg.diff); + } + else if (arg && arg.loops) { + this.loops = arg.loops; + } + event.returnValue = true; + } + diff(steps) { } //new - start() { + async start(arg) { + if (arg && arg.arr) { + this.arr = arg.arr; + } + if (arg && arg.loops) { + this.loops = arg.loops; + } + for (let x = 0; x < this.loops; x++) { + for (let y = 0; y < this.arr.length; y++) { + if (this.running) { + await this.step(y); + } + } + } } //new pause() { @@ -20,19 +63,23 @@ class Sequence { **/ stop() { this.running = false; + //clear? } - exec() { + async step(index) { + try { + await this.cmdMap(index); + } + catch (err) { + throw err; + } } - execStop() { - } - //private - run() { - } - step() { + async cmdMap(index) { + const cmdOriginal = this.arr[index].cmd; + const cmd = this.CMDS[cmdOriginal]; + return await this.cmd[cmd]; } } -module.exports = function (cfg, cmd, l) { - log = l; +module.exports = function (cfg, cmd) { seq = new Sequence(cfg, cmd); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/app/lib/sequence/index.js.map b/app/lib/sequence/index.js.map index 903b925..b9d169d 100644 --- a/app/lib/sequence/index.js.map +++ b/app/lib/sequence/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequence/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,IAAI,GAAS,CAAC;AACd,IAAI,GAAc,CAAC;AAEnB,MAAM,QAAQ;IAOb,YAAa,GAAS,EAAE,GAAS;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,wBAAwB;IACjB,IAAI;IAEX,CAAC;IACD,KAAK;IACE,KAAK;IAEZ,CAAC;IACD,KAAK;IACE,KAAK;IAEZ,CAAC;IACD;;QAEI;IACG,IAAI;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI;IAEX,CAAC;IAEM,QAAQ;IAEf,CAAC;IAED,SAAS;IACD,GAAG;IAEX,CAAC;IACO,IAAI;IAEZ,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,GAAS,EAAE,GAAS,EAAE,CAAO;IACvD,GAAG,GAAG,CAAC,CAAC;IACR,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAA"} \ No newline at end of file +{"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/cli/lib/sequence/index.js b/cli/lib/sequence/index.js index c1a66f3..b487c16 100644 --- a/cli/lib/sequence/index.js +++ b/cli/lib/sequence/index.js @@ -1,16 +1,59 @@ 'use strict'; -let log; +Object.defineProperty(exports, "__esModule", { value: true }); +const Log = require("log"); let seq; class Sequence { constructor(cfg, cmd) { + this.arr = []; + this.loops = 1; + this.CMDS = {}; this.cfg = cfg; this.cmd = cmd; + this.cmds(cfg.cmd); + this.init(); + } + cmds(obj) { + let keys = Object.keys(obj); + let key; + for (key in keys) { + this.CMDS[keys[key]] = key; + } } //currently called by ui - init() { + async init() { + this.log = Log({ label: 'sequence' }); + this.ipc = require('electron').ipcMain; + this.listen(); + } + listen() { + this.ipc.on('sequence', this.listener.bind(this)); + } + async listener(event, arg) { + if (arg && arg.diff) { + this.diff(arg.diff); + } + else if (arg && arg.loops) { + this.loops = arg.loops; + } + event.returnValue = true; + } + diff(steps) { } //new - start() { + async start(arg) { + if (arg && arg.arr) { + this.arr = arg.arr; + } + if (arg && arg.loops) { + this.loops = arg.loops; + } + for (let x = 0; x < this.loops; x++) { + for (let y = 0; y < this.arr.length; y++) { + if (this.running) { + await this.step(y); + } + } + } } //new pause() { @@ -20,19 +63,23 @@ class Sequence { **/ stop() { this.running = false; + //clear? } - exec() { + async step(index) { + try { + await this.cmdMap(index); + } + catch (err) { + throw err; + } } - execStop() { - } - //private - run() { - } - step() { + async cmdMap(index) { + const cmdOriginal = this.arr[index].cmd; + const cmd = this.CMDS[cmdOriginal]; + return await this.cmd[cmd]; } } -module.exports = function (cfg, cmd, l) { - log = l; +module.exports = function (cfg, cmd) { seq = new Sequence(cfg, cmd); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/lib/sequence/index.js.map b/cli/lib/sequence/index.js.map index 903b925..b9d169d 100644 --- a/cli/lib/sequence/index.js.map +++ b/cli/lib/sequence/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequence/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,IAAI,GAAS,CAAC;AACd,IAAI,GAAc,CAAC;AAEnB,MAAM,QAAQ;IAOb,YAAa,GAAS,EAAE,GAAS;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,wBAAwB;IACjB,IAAI;IAEX,CAAC;IACD,KAAK;IACE,KAAK;IAEZ,CAAC;IACD,KAAK;IACE,KAAK;IAEZ,CAAC;IACD;;QAEI;IACG,IAAI;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI;IAEX,CAAC;IAEM,QAAQ;IAEf,CAAC;IAED,SAAS;IACD,GAAG;IAEX,CAAC;IACO,IAAI;IAEZ,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,GAAS,EAAE,GAAS,EAAE,CAAO;IACvD,GAAG,GAAG,CAAC,CAAC;IACR,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAA"} \ No newline at end of file +{"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/lib/sequence/index.js b/lib/sequence/index.js index c1a66f3..b487c16 100644 --- a/lib/sequence/index.js +++ b/lib/sequence/index.js @@ -1,16 +1,59 @@ 'use strict'; -let log; +Object.defineProperty(exports, "__esModule", { value: true }); +const Log = require("log"); let seq; class Sequence { constructor(cfg, cmd) { + this.arr = []; + this.loops = 1; + this.CMDS = {}; this.cfg = cfg; this.cmd = cmd; + this.cmds(cfg.cmd); + this.init(); + } + cmds(obj) { + let keys = Object.keys(obj); + let key; + for (key in keys) { + this.CMDS[keys[key]] = key; + } } //currently called by ui - init() { + async init() { + this.log = Log({ label: 'sequence' }); + this.ipc = require('electron').ipcMain; + this.listen(); + } + listen() { + this.ipc.on('sequence', this.listener.bind(this)); + } + async listener(event, arg) { + if (arg && arg.diff) { + this.diff(arg.diff); + } + else if (arg && arg.loops) { + this.loops = arg.loops; + } + event.returnValue = true; + } + diff(steps) { } //new - start() { + async start(arg) { + if (arg && arg.arr) { + this.arr = arg.arr; + } + if (arg && arg.loops) { + this.loops = arg.loops; + } + for (let x = 0; x < this.loops; x++) { + for (let y = 0; y < this.arr.length; y++) { + if (this.running) { + await this.step(y); + } + } + } } //new pause() { @@ -20,19 +63,23 @@ class Sequence { **/ stop() { this.running = false; + //clear? } - exec() { + async step(index) { + try { + await this.cmdMap(index); + } + catch (err) { + throw err; + } } - execStop() { - } - //private - run() { - } - step() { + async cmdMap(index) { + const cmdOriginal = this.arr[index].cmd; + const cmd = this.CMDS[cmdOriginal]; + return await this.cmd[cmd]; } } -module.exports = function (cfg, cmd, l) { - log = l; +module.exports = function (cfg, cmd) { seq = new Sequence(cfg, cmd); }; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/lib/sequence/index.js.map b/lib/sequence/index.js.map index 903b925..b9d169d 100644 --- a/lib/sequence/index.js.map +++ b/lib/sequence/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sequence/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,IAAI,GAAS,CAAC;AACd,IAAI,GAAc,CAAC;AAEnB,MAAM,QAAQ;IAOb,YAAa,GAAS,EAAE,GAAS;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IACD,wBAAwB;IACjB,IAAI;IAEX,CAAC;IACD,KAAK;IACE,KAAK;IAEZ,CAAC;IACD,KAAK;IACE,KAAK;IAEZ,CAAC;IACD;;QAEI;IACG,IAAI;QACV,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACtB,CAAC;IAEM,IAAI;IAEX,CAAC;IAEM,QAAQ;IAEf,CAAC;IAED,SAAS;IACD,GAAG;IAEX,CAAC;IACO,IAAI;IAEZ,CAAC;CACD;AAED,MAAM,CAAC,OAAO,GAAG,UAAU,GAAS,EAAE,GAAS,EAAE,CAAO;IACvD,GAAG,GAAG,CAAC,CAAC;IACR,GAAG,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9B,CAAC,CAAA"} \ No newline at end of file +{"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/sequence/index.ts b/src/sequence/index.ts index 3d9c627..a683130 100644 --- a/src/sequence/index.ts +++ b/src/sequence/index.ts @@ -1,26 +1,76 @@ 'use strict'; -let log : any; +import Log = require('log'); + let seq : Sequence; class Sequence { - private i : number; private time : number; private running : boolean; + private arr : any[] = []; + private loops : number = 1; + private cfg : any; private cmd : any; + private CMDS : any = {}; + private ipc : any; + private log : any; + constructor (cfg : any, cmd : any) { this.cfg = cfg; this.cmd = cmd; + this.cmds(cfg.cmd); + this.init(); } - //currently called by ui - public init () { + private cmds (obj : any) { + let keys : string[] = Object.keys(obj); + let key : string; + for (key in keys) { + this.CMDS[keys[key]] = key; + } + } + + //currently called by ui + private async init () { + this.log = Log({ label : 'sequence' }) + this.ipc = require('electron').ipcMain; + this.listen(); + } + + private listen () { + this.ipc.on('sequence', this.listener.bind(this)); + } + + private async listener (event : any, arg : any) { + if (arg && arg.diff) { + this.diff(arg.diff); + } else if (arg && arg.loops) { + this.loops = arg.loops; + } + event.returnValue = true; + } + + private diff (steps : any[]) { + } //new - public start () { + public async start (arg : any) { + if (arg && arg.arr) { + this.arr = arg.arr; + } + if (arg && arg.loops) { + this.loops = arg.loops; + } + for (let x = 0; x < this.loops; x++) { + for (let y = 0; y < this.arr.length; y++) { + if (this.running) { + await this.step(y); + } + } + } } //new public pause () { @@ -31,26 +81,26 @@ class Sequence { **/ public stop () { this.running = false; - } - - public exec () { + //clear? } - public execStop () { - + private async step (index : number) { + try { + await this.cmdMap(index) + } catch (err) { + throw err; + } + } - //private - private run () { - - } - private step () { - + private async cmdMap (index : number) { + const cmdOriginal : string = this.arr[index].cmd; + const cmd : string = this.CMDS[cmdOriginal]; + return await this.cmd[cmd]; } } -module.exports = function (cfg : any, cmd : any, l : any) { - log = l; +module.exports = function (cfg : any, cmd : any) { seq = new Sequence(cfg, cmd); }