A renderer for Listr & listr2 that handles extremely long lists of tasks by collapsing into a summary view.
Pass in maxFullTasks
to tell the renderer when to collapse into summary view.
The summary outputs one line for each task that is currently being executed, one line for each task that fails and a final summary line.
Heavily based on listr-update-renderer, with all the same nice UI features.
npm install @tryghost/listr-smart-renderer --save
or
yarn add @tryghost/listr-smart-renderer
// Either of these 2 will work
import Listr from 'listr';
import {Listr} from 'listr2';
import SmartRenderer from '@tryghost/listr-smart-renderer';
const list = new Listr([
{
title: 'foo',
task: () => Promise.resolve('bar')
}
], {
renderer: SmartRenderer,
maxFullTasks: 10
});
list.run();
This package also exports a makeTaskRunner
method that simplifies your script. listr2
is used here.
import {makeTaskRunner} from '@tryghost/listr-smart-renderer';
let tasks = [
{
title: 'Do some thing',
task: async (ctx) => {
// Things here
}
},
{
title: 'Do more thing',
task: async (ctx) => {
// more here
}
}
];
let taskRunner = makeTaskRunner(tasks);
await taskRunner.run();
These options should be provided in theListr or listr2 options object.
Type: number
Default: 30
How many tasks to output in "full" mode before collapsing to summary mode.
Type: boolean
Default: false
Clear the output when all the tasks are executed successfully.
- listr - Terminal task list
- listr-verbose-renderer - Listr verbose renderer
This is a mono repository, managed with lerna.
Follow the instructions for the top-level repo.
-
git clone
this repo &cd
into it as usual - Run
yarn
to install top-level dependencies.
yarn dev
-
yarn lint
run just eslint -
yarn test
run lint and tests
Copyright (c) 2013-2023 Ghost Foundation, Sam Verschueren - Released under the MIT license.