UNPKG

@juspay/neurolink

Version:

Universal AI Development Platform with working MCP integration, multi-provider support, voice (TTS/STT/realtime), and professional CLI. 58+ external MCP servers discoverable, multimodal file processing, RAG pipelines. Build, test, and deploy AI applicatio

42 lines 1.28 kB
/** * Typewriter animation for CLI streaming output. * Writes text character-by-character with a configurable delay. * @module cli/utils/typewriter */ const DEFAULT_CHAR_DELAY_MS = 8; /** * Write text to stdout with a per-character typewriter animation. * Falls back to raw write when delay is 0 or negative. */ export async function typewriterWrite(text, delayMs = DEFAULT_CHAR_DELAY_MS) { if (!text) { return; } if (delayMs <= 0) { process.stdout.write(text); return; } // Use Array.from to handle surrogate pairs / emoji correctly for (const ch of Array.from(text)) { process.stdout.write(ch); await new Promise((r) => setTimeout(r, delayMs)); } } /** Whether typewriter animation should be used for the current process. */ export function shouldAnimate() { return Boolean(process.stdout.isTTY); } /** * Write text to stdout with animation when stdout is a TTY, otherwise * fall back to a raw write. Use this from CLI streaming code paths to * keep the behaviour consistent in one place. */ export async function animatedWrite(text) { if (shouldAnimate()) { await typewriterWrite(text); } else { process.stdout.write(text); } } //# sourceMappingURL=typewriter.js.map