diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2023-05-12 17:42:09 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2023-05-13 12:48:36 -0300 |
commit | 6ea74c268a12325296a1d2e7fc31b02030ddb8bc (patch) | |
tree | 5da94d93acb64e7ab650d240d6cb23c659ad02ca /examples/interfacer-telnet.js | |
parent | e783bcf8522fa68e6b221afd18469c3c265b1bb7 (diff) |
use ESM module syntax & minor cleanups
The biggest change here is moving various element classes under more scope-specific directories, which helps to avoid circular dependencies and is just cleaner to navigate and expand in the future. Otherwise this is a largely uncritical port to ESM module syntax! There are probably a number of changes and other cleanups that remain much needed. Whenever I make changes to tui-lib it's hard to believe it's already been <INSERT COUNTING NUMBER HERE> years since the previous time. First commits are from January 2017, and the code originates a month earlier in KAaRMNoD!
Diffstat (limited to 'examples/interfacer-telnet.js')
-rw-r--r-- | examples/interfacer-telnet.js | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/examples/interfacer-telnet.js b/examples/interfacer-telnet.js deleted file mode 100644 index d7aad43..0000000 --- a/examples/interfacer-telnet.js +++ /dev/null @@ -1,56 +0,0 @@ -// Telnet demo: -// - Basic telnet socket handling using the TelnetInterfacer -// - Handling client's screen size -// - Handling socket being closed by client -// - Handling cleanly closing the socket by hand - -const net = require('net') -const Root = require('../ui/Root') -const TelnetInterfacer = require('../TelnetInterfacer') -const AppElement = require('./basic-app') - -const server = new net.Server(socket => { - const interfacer = new TelnetInterfacer(socket) - - interfacer.getScreenSize().then(size => { - const root = new Root(interfacer) - root.w = size.width - root.h = size.height - - interfacer.on('resize', newSize => { - root.w = newSize.width - root.h = newSize.height - root.fixAllLayout() - }) - - const appElement = new AppElement() - root.addChild(appElement) - root.select(appElement) - - let closed = false - - appElement.on('quitRequested', () => { - if (!closed) { - interfacer.cleanTelnetOptions() - socket.write('Goodbye!\n') - socket.end() - clearInterval(interval) - closed = true - } - }) - - socket.on('close', () => { - if (!closed) { - clearInterval(interval) - closed = true - } - }) - - const interval = setInterval(() => root.render(), 100) - }).catch(error => { - console.error(error) - process.exit(1) - }) -}) - -server.listen(8008) |