8.1.0 • Published 3 months ago

tasktree-cli v8.1.0

Weekly downloads
717
License
MIT
Repository
github
Last release
3 months 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.

8.1.0

3 months ago

8.0.0

9 months ago

7.0.0

1 year ago

6.0.3

2 years ago

6.0.5

2 years ago

6.0.4

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

6.0.2

2 years ago

5.1.0

2 years ago

5.0.1

3 years ago

5.0.0

3 years ago

4.0.3

3 years ago

4.0.1

3 years ago

4.0.0

3 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.3.0

5 years ago

1.2.6

5 years ago

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.0

5 years ago

0.9.1

5 years ago

0.9.0

5 years ago