npm package: @pipeletteio/debug
Description: A simple debug module
Author: AshLePoney
Latest version: 1.0.1

<h1 align="center">
  <p>@pipeletteio/debug</p>
</h1>

<p align="center">A simple debug module</p>

<p align="center">
  <a alt="Build Status" href="https://github.com/pipeletteio/debug/actions?query=workflow">
    <img src="https://github.com/pipeletteio/debug/workflows/Build/badge.svg"/>
  </a>
  <a alt="Npm version" href="https://www.npmjs.com/package/@pipeletteio/debug?activeTab=versions">
    <img src="https://img.shields.io/npm/v/@pipeletteio/debug.svg?longCache=true&logo=npm">
  </a>
  <a alt="CodeClimate coverage" href="https://codeclimate.com/github/pipeletteio/debug/test_coverage">
    <img src="https://api.codeclimate.com/v1/badges/1ac72c4eb77b963b343a/test_coverage"/>
  </a>
  <a alt="CodeClimate maintainability" href="https://codeclimate.com/github/pipeletteio/debug/maintainability">
    <img src="https://api.codeclimate.com/v1/badges/1ac72c4eb77b963b343a/maintainability"/>
  </a>
  <a alt="Node requierement version" href="https://github.com/pipeletteio/debug/blob/master/package.json">
    <img src="https://img.shields.io/node/v/@pipeletteio/debug.svg?longCache=true"/>
  </a>
</p>

## Installation
```bash
npm install @pipeletteio/debug
```

## Example

```javascript
import { debug, Debug } from '@pipeletteio/debug';

// Create a dedicated debugger.
const dedicatedDebug = new Debug('myDedicatedDebugName', { useNewMeter: true });

debug.title('title');
debug.question('question');
dedicatedDebug.done('done');
dedicatedDebug.note('note');

setTimeout(() => {
  debug.valid('valid');
  debug.invalid('invalid');
  dedicatedDebug.fail('fail');
}, 500);

// -- Outputs:
// ❱ title +4ms
// ❓ question +2ms
// [myDedicatedDebugName] done +2ms
// [myDedicatedDebugName] note +1ms
// ✔ valid +503ms
// ✗ invalid +1ms
// [myDedicatedDebugName] fail +504ms
```

## Docs:
Read documentation [here](https://pipeletteio.github.io/debug).

## API

The methods of Console.prototype are exposed to Debug instance.

#### Debug.prototype.fail

Write a formatted message to stderr.

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.prototype.done

Write a formatted message to stdout.

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.prototype.note

Write a formatted message to stdout (done alias).

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.prototype.invalid

Write a formatted message prefixed with an invalid check symbol to stderr.

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.prototype.valid

Write a formatted message prefixed with a valid check symbol to stdout.

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.prototype.question

Write a formatted message prefixed with an interogation symbol to stdout.

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.prototype.title

Write a formatted message prefixed with a chevron symbol to stdout.

|          argument         |    type    |    details    |
|---------------------------|------------|---------------|
| arg                       | `string`   | The message.  |

Return `void`.

#### Debug.constructor

A Debug constructor that can be used to create dedicated debug.

|          argument         |                 type                |                details                |
|---------------------------|-------------------------------------|---------------------------------------|
| name                      | `string` or `null` or `undefined`   | The dedicated debug name (optional).  |
| options                   | `object`                            | The debug options (default = {}).     |
| options.useNewMeter       | `boolean` or `null` or `undefined`  | The debug options (default = {}).     |

Return `Debug` instance.

Example:
```javascript
new Debug('name', { useNewMeter: true });
```

## Env variables:

All methods can be disabled using environment variables.

Importance order:
```
  1. PIPELETTEIO_DEBUG = (true | false)
  2. (DEBUG | NDEBUG | NODE_DEBUG) = (true | false)
  3. (CI | CONTINUOUS_INTEGRATION) != undefined
  4. NODE_ENV = (production | test)
```