Have you ever tried using the node
readlinemodule while having an async callback logging stuff in the background? This breaks the whole
readlinewrapper that uses weird terminal escape tricks, and intercepts
process.stdout, in order to move the prompt down every time a line is logged.
npm install brl
The library can be used in two different ways:
createInterfacehas the same API as
readlinebut is a bit limited
BRLInterfaceis quite easy to use and gives you a bit more control over some features
;// Same API as readline (actually, it returns a real readline interface);rl.setPrompt'> ';rl.on'line', rl.prompt;rl.prompt;// Simulate background logsetIntervalconsole.log'Background log...', 1000;
;;iface.setPrompt'> ';iface.promptLoop; // You can pass a callback directly to this method// iface.prompt();// iface.onLine([cb]);// iface.start() !!! If you don't use promptLoop(), you must explicitly start the interface// iface.readline !!! Access to the underlying readline interface// Simulate background logsetIntervalconsole.log'Background log...', 1000;
Bugs & Suggestions
If you notice any bug or have a suggestion, please tell me about it in the issues, it will help everyone!
brl is licensed under the very permissive MIT License. You may use it for commercial projects if you comply to the license. However, the core feature's code was written by Eric in a StackOverflow answer licensed as CC-BY-SA. Thanks to him for his big indirect contribution !