mirror of https://github.com/status-im/metro.git
packager: terminal: split status too big to fit in screen
Reviewed By: cpojer Differential Revision: D4627512 fbshipit-source-id: 6e7b5f3a6e2d012a44373014f93ab17ef4f290a2
This commit is contained in:
parent
c1a81571fc
commit
933f63478a
|
@ -31,6 +31,15 @@ function clearStringBackwards(stream: tty.WriteStream, str: string): void {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cut a string into an array of string of the specific maximum size. A newline
|
||||||
|
* ends a chunk immediately (it's not included in the "." RexExp operator), and
|
||||||
|
* is not included in the result.
|
||||||
|
*/
|
||||||
|
function chunkString(str: string, size: number): Array<string> {
|
||||||
|
return str.match(new RegExp(`.{1,${size}}`, 'g')) || [];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* We don't just print things to the console, sometimes we also want to show
|
* We don't just print things to the console, sometimes we also want to show
|
||||||
* and update progress. This utility just ensures the output stays neat: no
|
* and update progress. This utility just ensures the output stays neat: no
|
||||||
|
@ -78,6 +87,7 @@ class Terminal {
|
||||||
const {_statusStr, _stream} = this;
|
const {_statusStr, _stream} = this;
|
||||||
if (_statusStr !== str && _stream instanceof tty.WriteStream) {
|
if (_statusStr !== str && _stream instanceof tty.WriteStream) {
|
||||||
clearStringBackwards(_stream, _statusStr);
|
clearStringBackwards(_stream, _statusStr);
|
||||||
|
str = chunkString(str, _stream.columns).join('\n');
|
||||||
_stream.write(str);
|
_stream.write(str);
|
||||||
}
|
}
|
||||||
this._statusStr = str;
|
this._statusStr = str;
|
||||||
|
|
Loading…
Reference in New Issue