diff --git a/common/test/predictive-text/.gitignore b/common/test/predictive-text/.gitignore new file mode 100644 index 0000000000..c2658d7d1b --- /dev/null +++ b/common/test/predictive-text/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/common/test/predictive-text/index.js b/common/test/predictive-text/index.js index 4d48420bd3..bbb8a0f072 100644 --- a/common/test/predictive-text/index.js +++ b/common/test/predictive-text/index.js @@ -90,14 +90,27 @@ function main() { * shift: false } ] * */ - stream.on('keypress', function (char, keypress) { - console.log({char, keypress}); - if (keypress.sequence === '\u0003' || keypress.sequence === '\u0004') { - process.exit(0); - } - }); - return; + function keypressOf(stream) { + return new EventIterator( + (push, stop, fail) => { + stream.on('keypress', (char, keypress) => push([char, keypress])); + stream.on('close', stop); + stream.on('error', fail); + } + ); + } + + async function derp() { + for await (let [char, keypress] of keypressOf(stream)) { + console.log({char, keypress}); + if (keypress.sequence === '\u0003' || keypress.sequence === '\u0004') { + process.exit(0); + } + } + } + + return derp().catch(_ => process.exit(127)); asyncMain() .then(_ => process.exit(0)) diff --git a/common/test/predictive-text/package-lock.json b/common/test/predictive-text/package-lock.json new file mode 100644 index 0000000000..cb5856d59d --- /dev/null +++ b/common/test/predictive-text/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "lmlayer-cli", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "event-iterator": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/event-iterator/-/event-iterator-1.2.0.tgz", + "integrity": "sha512-Daq7YUl0Mv1i4QEgzGQlz0jrx7hUFNyLGbiF+Ap7NCMCjDLCCnolyj6s0TAc6HmrBziO5rNVHsPwGMp7KdRPvw==" + } + } +} diff --git a/common/test/predictive-text/package.json b/common/test/predictive-text/package.json index 6bbe585db5..bd3e496037 100644 --- a/common/test/predictive-text/package.json +++ b/common/test/predictive-text/package.json @@ -7,5 +7,8 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Eddie Antonio Santos ", - "license": "MIT" + "license": "MIT", + "dependencies": { + "event-iterator": "^1.2.0" + } }