Ejemplos en Consola
ASCII Progress Bar puede ser utilizado en aplicaciones de consola Node.js. Aquí hay varios ejemplos que muestran diferentes formas de usarlo.
Uso Básico
La forma más simple de usar la barra de progreso es importar AsciiProgressRenderer
y llamar a su método render:
import { AsciiProgressRenderer } from '@yacosta738/ascii-progress-bar';
console.log(AsciiProgressRenderer.render(75, 'default')); // ■■■■■■■□□□ 75%
Patrones Disponibles
La librería viene con varios patrones incorporados:
// Default patternconsole.log(AsciiProgressRenderer.render(75, 'default')); // ■■■■■■■□□□ 75%
// Dots patternconsole.log(AsciiProgressRenderer.render(60, 'dots')); // oooooooooo.......... 60%
// Stars patternconsole.log(AsciiProgressRenderer.render(40, 'stars')); // **** 40%
// Hashes patternconsole.log(AsciiProgressRenderer.render(50, 'hashes')); // ##### 50%
// Braille patternconsole.log(AsciiProgressRenderer.render(80, 'braille')); // ⣿⣿⣿⣿⣿⣿⣀⣀ 80%
// Minimal patternconsole.log(AsciiProgressRenderer.render(50, 'minimal')); // ▰▰▱▱▱ 50%
// Blocks patternconsole.log(AsciiProgressRenderer.render(60, 'blocks')); // ▮▮▮▮▮▮▯▯▯▯ 60%
Barra de Progreso Animada
Aquí hay un ejemplo de cómo crear una barra de progreso animada en la consola:
import { AsciiProgressRenderer } from '@yacosta738/ascii-progress-bar';
// Helper function to simulate delayconst sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
async function animateProgress() { for (let i = 0; i <= 100; i += 5) { // Clear previous line process.stdout.clearLine(); process.stdout.cursorTo(0); // Render the bar process.stdout.write(AsciiProgressRenderer.render(i, 'blocks')); await sleep(200); } console.log('\n');}
animateProgress();
Patrones Personalizados
Puedes crear tus propios patrones usando el método addPattern
:
import { AsciiProgressRenderer } from '@yacosta738/ascii-progress-bar';
// Add custom patternAsciiProgressRenderer.addPattern('custom', { empty: '○', filled: '●', length: 15});
// Use custom patternconsole.log(AsciiProgressRenderer.render(70, 'custom')); // ●●●●●●●●●●○○○○○ 70%
Consejos para Uso en Consola
- Usa
process.stdout.clearLine()
yprocess.stdout.cursorTo(0)
para animaciones suaves - Para actualizaciones en tiempo real, considera usar
\r
para volver al inicio de la línea - El valor del progreso debe estar entre 0 y 100
- Si se especifica un patrón inválido, se utilizará el patrón predeterminado
Error Handling
The renderer handles invalid inputs gracefully:
// Invalid progress (>100) falls back to 100%console.log(AsciiProgressRenderer.render(150, 'default')); // ■■■■■■■■■■ 100%
// Invalid pattern falls back to defaultconsole.log(AsciiProgressRenderer.render(50, 'invalid')); // ■■■■■□□□□□ 50%