🚀 DAY 5 OF LAUNCH WEEK:Introducing Webhook Events for Alert Changes.Learn more →
Socket
Book a DemoInstallSign in
Socket

log-update

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

log-update

Log by overwriting the previous output in the terminal. Useful for rendering progress bars, animations, etc.

latest
Source
npmnpm
Version
7.0.2
Version published
Weekly downloads
28M
4.51%
Maintainers
1
Weekly downloads
 
Created
Source

log-update

Log by overwriting the previous output in the terminal.
Useful for rendering progress bars, animations, etc.

It performs partial redraws when possible to reduce flicker.

Install

npm install log-update

Usage

import logUpdate from 'log-update';

const frames = ['-', '\\', '|', '/'];
let index = 0;

setInterval(() => {
	const frame = frames[index = ++index % frames.length];

	logUpdate(
`
        ♥♥
   ${frame} unicorns ${frame}
        ♥♥
`
	);
}, 80);

You can use yoctocolors or chalk to colorize the output.

API

logUpdate(text…)

Log to stdout.

logUpdate.clear()

Clear the logged output.

logUpdate.done()

Persist the logged output.

Useful if you want to start a new log session below the current one.

logUpdate.persist(text…)

Write text to the terminal that persists, similar to console.log().

Unlike the main logUpdate() method which updates in place, persist() writes to the terminal in a way that preserves the output in the scrollback history.

import logUpdate from 'log-update';

// Update in place
logUpdate('Processing...');
logUpdate('Still processing...');

// Write permanent output
logUpdate.persist('âś“ Task complete');

// Continue updating
logUpdate('Next task...');

logUpdateStderr(text…)

Log to stderr.

logUpdateStderr.clear()

logUpdateStderr.done()

logUpdateStderr.persist(text…)

createLogUpdate(stream, options?)

Get a logUpdate method that logs to the specified stream.

options

Type: object

showCursor

Type: boolean
Default: false

Show the cursor. This can be useful when a CLI accepts input from a user.

import {createLogUpdate} from 'log-update';

// Write output but don't hide the cursor
const log = createLogUpdate(process.stdout, {
	showCursor: true
});
defaultWidth

Type: number
Default: 80

The width to use when the stream doesn't provide a columns property.

This is useful when the output is piped, redirected, or in environments where the terminal size is not available.

import {createLogUpdate} from 'log-update';

// Use custom width when the stream doesn't provide columns
const log = createLogUpdate(process.stdout, {
	defaultWidth: 120
});
defaultHeight

Type: number
Default: 24

The height to use when the stream doesn't provide a rows property.

This is useful when the output is piped, redirected, or in environments where the terminal size is not available.

import {createLogUpdate} from 'log-update';

// Use custom height when the stream doesn't provide rows
const log = createLogUpdate(process.stdout, {
	defaultHeight: 50
});

Examples

  • listr - Uses this module to render an interactive task list
  • ora - Uses this module to render awesome spinners
  • speed-test - Uses this module to render a spinner

Keywords

log

FAQs

Package last updated on 19 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts