| layout | default |
|---|
@mks2508/better-logger / cli-module / SpinnerManager
Defined in: playground/spinner.ts:60
Spinner interactivo para TTY: cicla frames braille reescribiendo la l\u00ednea actual en su sitio (no emite l\u00edneas nuevas hasta el stop).
Para no poluir stdout piped ni entrelazarse con el output normal del Logger, hace dos cosas no obvias:
- Escribe SIEMPRE a
process.stderr(carriage return +\x1b[Kpara limpiar la l\u00ednea antes de cada render). - Con
start()mutea el logger (outputMode: 'silent') y lo restaura a'console'en cualquier m\u00e9todo de finalizaci\u00f3n (stop/succeed/fail). Sin esto, los logs del usuario se imprimir\u00edan encima del frame animado.
No gestiona TTY detection \u2014 quien lo instancia (TerminalBridge) ya valid\u00f3
que hay TTY. Para non-TTY ver NoopSpinner.
const spinner = new SpinnerManager('Compilando...', logger.config, logger);
spinner.start();
// ...trabajo as\u00edncrono...
spinner.succeed('Build OK');
// stderr: " \u2713 Build OK"- NoopSpinner para el path non-TTY.
- ISpinnerHandle para el contrato de la API p\u00fablica.
new SpinnerManager(
message,_config,logger):SpinnerManager
Defined in: playground/spinner.ts:74
string
Texto a mostrar al lado del frame animado. Mutables luego v\u00eda SpinnerManager.text.
Reservado para configuraci\u00f3n futura; actualmente no se lee dentro de la clase (lo conserva solo el caller).
Instancia del logger due\u00f1a del spinner. Se
mutea/restaura con updateConfig({ outputMode }) en start/stop.
SpinnerManager
start():
void
Defined in: playground/spinner.ts:89
Arranca la animaci\u00f3n. Idempotente: si ya est\u00e1 corriendo, no hace nada.
Como efecto lateral mutea el logger pasado al constructor cambiando su
outputMode a 'silent' \u2014 cualquier log durante la animaci\u00f3n quedar\u00eda
bufferizado y se descarta al restaurar el modo. Llama siempre a
stop, succeed o fail para restaurar el output.
void
stop():
void
Defined in: playground/spinner.ts:113
Detiene la animaci\u00f3n y limpia la l\u00ednea, sin emitir mensaje de estado.
Restaura el outputMode del logger a 'console'.
\u00datil cuando el caller ya emiti\u00f3 su propio output final y solo necesita desmontar el spinner. Para terminaci\u00f3n con tick/cross usa succeed / fail.
void
succeed(
msg?):void
Defined in: playground/spinner.ts:135
Detiene la animaci\u00f3n y emite el mensaje con un check verde (\u2713).
Restaura el outputMode del logger a 'console'.
string
Texto final a mostrar. Si se omite, reutiliza
el message con el que se construy\u00f3 el spinner (o el \u00faltimo seteado
v\u00eda text).
void
spinner.succeed(); // \u2192 " \u2713 <message inicial>"
spinner.succeed('Hecho'); // \u2192 " \u2713 Hecho"fail(
msg?):void
Defined in: playground/spinner.ts:162
Detiene la animaci\u00f3n y emite el mensaje con una cruz roja (\u2717).
Restaura el outputMode del logger a 'console'.
string
Texto final a mostrar. Si se omite, reutiliza
el message con el que se construy\u00f3 el spinner (o el \u00faltimo seteado
v\u00eda text).
void
try {
await build();
spinner.succeed('Build OK');
} catch (e) {
spinner.fail(`Build fallido: ${e.message}`);
}text(
msg):void
Defined in: playground/spinner.ts:178
Reemplaza el texto mostrado al lado del frame sin reiniciar la animaci\u00f3n ni perder el frame actual. Pensado para actualizar progreso in-place (p.ej. contador de items procesados).
string
Nuevo texto a mostrar.
void