From b99a05dd89cbf71f879794e45dfdf6524c583da8 Mon Sep 17 00:00:00 2001 From: Abdul Rauf Date: Wed, 30 Jan 2019 07:34:25 +0500 Subject: [PATCH] feat: add cmd support (#77) Tested using node v8.15.0 in cmd Note: Tests are still failing in cmd --- fx.js | 27 ++++++++++++++++++++++----- package.json | 1 + 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/fx.js b/fx.js index 49ba2aa..6278453 100644 --- a/fx.js +++ b/fx.js @@ -1,12 +1,11 @@ 'use strict' -const fs = require('fs') -const tty = require('tty') const blessed = require('@medv/blessed') const stringWidth = require('string-width') const reduce = require('./reduce') const print = require('./print') const find = require('./find') const config = require('./config') +const reopenTTY = require('reopen-tty'); module.exports = function start(filename, source) { // Current rendered object on a screen. @@ -26,12 +25,30 @@ module.exports = function start(filename, source) { let findGen = null let currentPath = null - const ttyFd = fs.openSync('/dev/tty', 'r+') + let ttyReadStream; + let ttyWriteStream; + reopenTTY.stdin(function(err, readStream) { + if (err) { + throw err; + } else { + ttyReadStream = readStream; + } + }); + + reopenTTY.stdout(function(err, writeStream) { + if (err) { + throw err; + } else { + ttyWriteStream = writeStream; + } + }); + const program = blessed.program({ - input: tty.ReadStream(ttyFd), - output: tty.WriteStream(ttyFd), + input: ttyReadStream, + output: ttyWriteStream }) + const screen = blessed.screen({ program: program, smartCSR: true, diff --git a/package.json b/package.json index 8e2bc7f..801f8c0 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "@medv/blessed": "^1.1.1", "chalk": "^2.4.1", "indent-string": "^3.2.0", + "reopen-tty": "^1.1.2", "string-width": "^2.1.1" }, "devDependencies": {