// This example demonstrates writing to standard output using process.stdout
// process.stdout is a WriteStream that writes to the console
console.log('Demonstrating process.stdout WriteStream');
// Basic writing to stdout
process.stdout.write('Hello, ');
process.stdout.write('World!\n');
// Check if stdout supports color (most terminals do)
const supportsColor = process.stdout.hasColors && process.stdout.hasColors();
if (supportsColor) {
// ANSI color codes for terminal output
const colors = {
reset: '\x1b[0m',
bright: '\x1b[1m',
dim: '\x1b[2m',
red: '\x1b[31m',
green: '\x1b[32m',
yellow: '\x1b[33m',
blue: '\x1b[34m',
magenta: '\x1b[35m',
cyan: '\x1b[36m',
white: '\x1b[37m',
bgRed: '\x1b[41m',
bgGreen: '\x1b[42m',
bgYellow: '\x1b[43m',
bgBlue: '\x1b[44m',
bgMagenta: '\x1b[45m',
bgCyan: '\x1b[46m',
bgWhite: '\x1b[47m'
};
// Write colored output
process.stdout.write(colors.red + 'This is red text' + colors.reset + '\n');
process.stdout.write(colors.green + 'This is green text' + colors.reset + '\n');
process.stdout.write(colors.blue + 'This is blue text' + colors.reset + '\n');
process.stdout.write(colors.bgYellow + colors.blue + 'Blue on yellow background' + colors.reset + '\n');
// Write progress bar
const progressBar = (percent) => {
const width = 40;
const filled = Math.round(width * (percent / 100));
const bar = '█'.repeat(filled) + '░'.repeat(width - filled);
process.stdout.write(`\r[${bar}] ${percent}%`);
if (percent === 100) process.stdout.write('\n');
};
// Animate progress bar
console.log('\nProgress:');
let progress = 0;
const interval = setInterval(() => {
progressBar(progress);
progress += 5;
if (progress > 100) {
clearInterval(interval);
console.log('Done!');
}
}, 100);
} else {
console.log('Color output not supported in this environment');
// Fallback progress bar without colors
const progressBar = (percent) => {
const width = 40;
const filled = Math.round(width * (percent / 100));
const bar = '='.repeat(filled) + ' '.repeat(width - filled);
process.stdout.write(`\r[${bar}] ${percent}%`);
if (percent === 100) process.stdout.write('\n');
};
// Animate progress bar
console.log('\nProgress:');
let progress = 0;
const interval = setInterval(() => {
progressBar(progress);
progress += 5;
if (progress > 100) {
clearInterval(interval);
console.log('Done!');
}
}, 100);
}