6.0.5 • Published 2 years ago

@allie-project/tasktree-cli v6.0.5

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Simple terminal task tree - helps you keep track of your tasks in a tree structure.

Install

npm install tasktree-cli

Usage

import TaskTree from 'tasktree-cli';

const tree = TaskTree.tree();

// start task tree log update in terminal
tree.start();

// create tasks
const task1 = tree.add('{underline Task {bold #1}}');
const task2 = tree.add('Task {bold #2}');
const task3 = task2.add('Subtask...');
const tpl = ':bar :rate/bps {cyan.bold :percent} :etas';
// create progress bars
const bars = [task3.bar(tpl), task3.bar(tpl), task3.bar(tpl)];

// ... whatever
let once = false;
const promises = [50, 75, 200].map((ms, i) => {
  return new Promise(resolve => {
    const handle = setInterval(() => {
      const bar = bars[i];

      if (bar) {
        if (once) {
          if (bar.percent >= 50) {
            bar.skip();
          } else {
            bar.fail();
          }
        } else {
          once = bar.tick(Math.random() * 10).isCompleted;
        }
      }

      if (once) {
        clearInterval(handle);
        resolve('');
      }
    }, ms);
  });
});

Promise.all(promises).then(() => {
  // skip task
  task3.skip('Subtask skipped');
  // log info message in Task #2, complete task
  task2.log('Informational message').complete();
  // log warning and error in Task #1, fail it
  task1.warn('Warning message').error(new Error('Something bad happened'), true);
  // stop task tree log update
  tree.stop();
});

TaskTree uses chalk-template to style text and supports formatting as a tagged template literal:

const task = new Task('{underline.cyan.bold Awesome task}');

If you are using braces in a formatted string, use \\ to escape it:

const task = new Task('{underline.cyan.bold \\{Awesome\\} task}');

API

Read the API documentation for more information.