open-index/open-npm huggingface dataset:
npm package: @redpenguinstudio/herbert
Description: Console logger to narrate any JS/TS application activity
Author: awpeacock
Latest version: 1.0.1

# Herbert

> Console logger to narrate any JS/TS application activity. Named after **Frank Herbert**, the author of _Dune_.

[![NPM](https://img.shields.io/npm/v/herbert.svg)](https://www.npmjs.com/package/@redpenguinstudio/herbert) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Features

- Consistent styling for all Javascript/Typescript applications
- Logs titles/headings
- Logs standard progress plus success/warning/error messages
- Stores key/value pairs, and outputs them all upon request

## Install

If using as part of your final "public" application, then install as a standard dependency:

```bash
npm install @redpenguinstudio/herbert
```

If using as part of an install/deploy script, then install as a dev dependency:

```bash
npm install -D @redpenguinstudio/herbert
```

## Usage

Import the narrator:

```ts
import { Narrator } from '@redpenguinstudio/herbert';
```

Log the title of the application/process:

```ts
Narrator.title('Flux Capacitor');
```

Log a heading for any subprocess/activity:

```ts
Narrator.heading('Reversing the polarity of the neutron flow');
```

Log any step/progress:

```ts
Narrator.log('Accelerating...');
```

Log any information (such as current state):

```ts
Narrator.info('Speed - 88mph');
```

Log any success messages:

```ts
Narrator.success('Polarity reversed');
```

Log any warning messages:

```ts
Narrator.warn('The Iranians are coming!');
```

Log any error messages:

```ts
Narrator.error('Wormhole closed');
```

Store, and output, variables:

```ts
Narrator.addVariable('Make', 'DeLorean');
Narrator.addVariable('Model', 'DMC-12');
Narrator.addVariable('Year', '1985');
Narrator.dumpVariables();
```

## Example

```ts
import { Narrator } from '@redpenguinstudio/herbert';

Narrator.title('Flux Capacitor');
Narrator.heading('Preparing the DeLorean');
Narrator.addVariable('Make', 'DeLorean');
Narrator.addVariable('Model', 'DMC-12');
Narrator.addVariable('Year', '1985');
Narrator.log('Reversing the polarity of the neutron flow');
Narrator.info('Speed - 88mph');
Narrator.success('Polarity reversed');
Narrator.warn('The Iranians are coming!');
Narrator.error('Wormhole closed');
Narrator.dumpVariables();
```

![Console Output](https://raw.githubusercontent.com/awpeacock/herbert/main/screenshots/console.webp)

## License

Apache 2.0 © [awpeacock](https://github.com/awpeacock)