@ms-cloudpack/task-reporter
v0.19.0
Published
Helpers for logging tasks to the console.
Keywords
Readme
@ms-cloudpack/task-reporter
A library for standardizing how tasks are logged to the console.
Example usage
- Create a reporter:
const taskReporter = new TaskReporter({
productName: `Foobar`,
version: `1.2.3`,
description: `running tasks with ${bold(`15`)} workers`,
showStarted: false,
showPending: true,
showCompleted: true,
showSummary: true,
showTaskDetails: true,
});- Add tasks with the reporter
addTaskmethod:
const task = taskReporter.addTask(`build something`, /* initially idle */ true);
// When you are starting the task, you can call start:
try {
task.start();
} finally {
task.complete({ status: 'complete' /* etc */ });
}- You can use various formatting helpers to spice up the colorization and formatting of your logging:
// Fail example, with provide details:
import { bulletedList } from '@ms-cloudpack/task-reporter';
task.complete({
status: 'fail',
message: 'Reason',
details: bulletedList(['Name: value', 'Errors:', ['sub-bullet things', 'etc'], 'Warnings', ['warn1', etc]]),
});A variety of helper functions are available for formatting.
import { cyan, bold, red } from '@ms-cloudpack/task-reporter';
task.complete('fail', { message: cyan(bold(`I am an ${red(`error`)}`)) });- When all your tasks are completed, or if you encountered an exit-early scenario, call
reporter.complete('reason')to end task logging. Any pending tasks will be marked as skipped, and running tasks will be marked as aborted.
process.on('SIGINT', () => {
reporter.complete('User hit Ctrl-C');
void reporter.dispose();
});
await doStuff();
reporter.complete(reason);
await reporter.dispose();