Node.js light and interactive standard input (stdin) crafted for REPL (like) experience (with auto-completion and history). Under the hood it use process.stdin
and TTY Stream with the raw mode enabled to catch key by key.
Demo with the SlimIO CLI
- Node.js v14 or higher
This package is available in the Node Package Repository and can be easily installed with npm or yarn.
$ npm i @topcli/stdin
# or
$ yarn add @topcli/stdin
import stdin from "@topcli/stdin";
const data = await stdin("Question title > ", {
history: ["command in history 1", "command in history 2"],
autocomplete: [
"events",
"events.get_info"
]
});
console.log(`input data: ${data}`);
👀 the reference to the history array is keeped. So if you want to achieve a while of input, think to declare a top array history that will be used by all inputs.
Query paramaters can be set to null
to disable the title. Options is described by the following TypeScript interface:
interface StdinOptions {
history?: string[];
autocomplete?: string[];
}
history and autocomplete are optional. There is no thing as a cache or limitation for history (you have to implement that kind of stuff yourself with cacache).
Thanks goes to these wonderful people (emoji key):
Gentilhomme 💻 📖 👀 🛡️ 🐛 |
Alexandre Malaj 💻 📖 |
PierreDemailly 💻 |
MIT