UNPKG

namastejs

Version:

A spiritual greeting from your JavaScript code. Because every function deserves a 'Namaste πŸ™'

69 lines (57 loc) β€’ 1.29 kB
const readline = require("readline"); function initInput({ onSubmit, onExit, onInputChange, isBackspaceDisabled, onPauseToggle, }) { let input = ""; let paused = false; readline.emitKeypressEvents(process.stdin); process.stdin.setRawMode(true); process.stdin.resume(); process.stdin.setEncoding("utf8"); process.stdin.on("keypress", (char, key) => { if (key.ctrl && key.name === "c") { onExit(); return; } // ⏸️ Pause / Resume if (key.name === "space") { paused = !paused; input = ""; // πŸ”₯ CLEAR BUFFER onInputChange(""); onPauseToggle?.(); return; } // 🚫 Ignore input when paused if (paused) return; if (key.name === "return") { onSubmit(input); input = ""; onInputChange(input); return; } if (key.name === "backspace") { if (!isBackspaceDisabled()) { input = input.slice(0, -1); onInputChange(input); } return; } if (char && char.length === 1) { input += char; onInputChange(input); } }); return { resetInput() { input = ""; onInputChange(input); }, }; } module.exports = { initInput, };