diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..836df93 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,3 @@ +module.exports = { + 'extends' : ['plugin:ivs/node'], +}; diff --git a/lib/bundle.js b/lib/bundle.js index ab69b15..be33f8e 100644 --- a/lib/bundle.js +++ b/lib/bundle.js @@ -17,7 +17,8 @@ module.exports = function(module, module_name, args = []) { cmdline_parsed.dict['ir://stdout'] = process.stdout.write.bind(process.stdout); cmdline_parsed.dict['ir://prompt'] = read; - cmdline_parsed.dict['ir://cols'] = Math.min(process.stdout.columns - 2, COLS); + let width = process.stdout.columns > 0 ? process.stdout.columns - 2 : COLS; + cmdline_parsed.dict['ir://cols'] = Math.min(width, COLS); let cnyks = Cnyks.start(module, cmdline_parsed.dict, cmdline_parsed.args, function(err) { if(err) { @@ -32,6 +33,7 @@ module.exports = function(module, module_name, args = []) { }); process.stdout.on("resize", () => { - cnyks.cols = Math.min(process.stdout.columns - 2, COLS); + let width = process.stdout.columns > 0 ? process.stdout.columns - 2 : COLS; + cnyks.cols = Math.min(width, COLS); }); }; diff --git a/lib/index.js b/lib/index.js index 1fbb964..d24ce42 100644 --- a/lib/index.js +++ b/lib/index.js @@ -41,10 +41,14 @@ class Cnyks { trace = stream.stderr.write.bind(stream.stderr); prompt = readline.bind({stdin : stream, stderr : stream.stderr}); + let safeCols = stream.columns > 0 ? stream.columns - 2 : cols; + stream.on("resize", () => { - this.cols = Math.min(stream.columns - 2, 76); + let width = stream.columns > 0 ? stream.columns - 2 : cols; + this.cols = Math.min(width, 76); }); - cols = Math.min(stream.columns - 2, cols); + + cols = Math.min(safeCols, cols); } this._prompt = dict["ir://prompt"] || prompt;