Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

listr2

Package Overview
Dependencies
Maintainers
1
Versions
235
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

listr2

Terminal task list reborn! Create beautiful CLI interfaces via easy and logical to implement task lists that feel alive and interactive.

  • 4.0.3
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
18M
increased by3.31%
Maintainers
1
Weekly downloads
 
Created

What is listr2?

The listr2 npm package is a powerful utility for creating beautiful and interactive command-line interfaces (CLI) with tasks lists. It allows developers to manage and execute multiple tasks in a structured and visually appealing way. It supports concurrent tasks, nested tasks, and customizable rendering, making it suitable for complex CLI applications.

What are listr2's main functionalities?

Basic Task Execution

This feature allows for the execution of a series of tasks, each represented by a title and a task function. The tasks are executed sequentially, and the progress is visually represented in the CLI.

const { Listr } = require('listr2');

const tasks = new Listr([
  {
    title: 'Task 1',
    task: () => Promise.resolve('First task result')
  },
  {
    title: 'Task 2',
    task: () => Promise.resolve('Second task result')
  }
]);

tasks.run().catch(err => console.error(err));

Concurrent Tasks

This feature demonstrates how to run tasks concurrently. By setting the 'concurrent' option to true, tasks within the same group are executed in parallel, improving performance for independent tasks.

const { Listr } = require('listr2');

const tasks = new Listr([
  {
    title: 'Concurrent Tasks',
    task: () => {
      return new Listr([
        {
          title: 'Task 1',
          task: () => Promise.resolve('First concurrent task result')
        },
        {
          title: 'Task 2',
          task: () => Promise.resolve('Second concurrent task result')
        }
      ], { concurrent: true });
    }
  }
]);

tasks.run().catch(err => console.error(err));

Nested Tasks

This feature showcases the ability to nest tasks within other tasks. It is useful for structuring complex workflows where tasks have sub-tasks, allowing for better organization and readability.

const { Listr } = require('listr2');

const tasks = new Listr([
  {
    title: 'Parent Task',
    task: () => {
      return new Listr([
        {
          title: 'Nested Task 1',
          task: () => Promise.resolve('First nested task result')
        },
        {
          title: 'Nested Task 2',
          task: () => Promise.resolve('Second nested task result')
        }
      ]);
    }
  }
]);

tasks.run().catch(err => console.error(err));

Other packages similar to listr2

Keywords

FAQs

Package last updated on 10 Feb 2022

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc