# @dash4/log

> dash4 log helper

Latest version **0.9.3** (published 2020-12-07) · MIT license · 0 weekly downloads

## Install

```sh
npm install @dash4/log
pnpm add @dash4/log
yarn add @dash4/log
bun add @dash4/log
```

## Health

**Score 35/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 0.9.3 |
| Published | 2020-12-07 |
| First published | 2019-04-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 17.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 20 |
| Author | Simon Mollweide |
| Maintainers | smollweide |

## Links

- npm: https://www.npmjs.com/package/@dash4/log
- Repository: https://github.com/smollweide/dash4
- Homepage: https://github.com/smollweide/dash4#readme
- Issues: https://github.com/smollweide/dash4/issues
- npm.io page: https://npm.io/package/@dash4/log

## Dependencies (3)

- [ora](https://npm.io/package/ora.md) 5.1.0
- [chalk](https://npm.io/package/chalk.md) 4.1.0
- [tslib](https://npm.io/package/tslib.md) 2.0.3

## Recent versions

- 0.9.3 (latest) — 2020-12-07
- 0.9.2 — 2020-11-18
- 0.9.1 — 2020-11-18
- 0.9.0 — 2020-08-22
- 0.8.5 — 2020-06-05
- 0.8.4 — 2020-05-09
- 0.8.3 — 2020-05-01
- 0.8.2 — 2020-04-09
- 0.8.1 — 2020-03-15
- 0.8.0 — 2020-01-24
- 0.7.1 — 2019-12-20
- 0.7.0 — 2019-11-15
- 0.6.0 — 2019-11-03
- 0.5.2 — 2019-10-24
- 0.5.1 — 2019-07-20
- … 5 more at https://npm.io/package/@dash4/log/versions

## README

<div align="center">
<h1>Dash4 log</h1>
pretty log for dash4
<br />
<br />

[![NPM version](https://badge.fury.io/js/%40dash4%2Flog.svg)](https://www.npmjs.com/package/@dash4/log)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](http://opensource.org/licenses/MIT) [![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/) [![Prettier](https://img.shields.io/badge/Code%20Style-Prettier-green.svg)](https://github.com/prettier/prettier) ![TypeScript-ready](https://img.shields.io/npm/types/@dash4/log.svg)

<br />
</div>

The following documentation is just relevant for dash4 plugin development. For informations on how to use Dash4 please read this: [Dash4 documentation](https://github.com/smollweide/dash4/blob/master/README.md)

## Table of Contents

* [Installation](#installation)
* [Usage](#usage)
  * [server-side](#server-side)
  * [client-side](#client-side)
* [License](#license)

## <a name="installation">Installation</a>

```shell
npm i -D @dash4/log
```

## <a name="usage">Usage</a>

### <a name="server-side">server-side</a>

<img src="https://user-images.githubusercontent.com/2912007/55966764-4f22f500-5c79-11e9-804c-ab26067789bb.gif" style="max-width:320px; width:100%" alt="Dash4 server logger" />
<br/>
<br/>


```ts
import { log, info, success, error, warn, spinner } from '@dash4/log';

log('terminal', 'place text here');
info('readme', 'place text here');
success('npm-scripts', 'place text here');
error('dependencies', 'place text here');
warn('ui', 'place text here');

const spin = spinner('terminal', 'load config');
spin.start();
await wait(1000);
spin.type('warn');
spin.text('needs longer than usual');
await wait(1000);
spin.succeed('config loaded');
```

*types*

```ts
type TPackageName = 'server' | 'terminal-emulator' | 'cli' | string;
type TMessage = string | number | object | any[];
type TType = 'log' | 'info' | 'success' | 'error' | 'warn';

export const log = (packageName: TPackageName, message: TMessage) => void;
export const info = (packageName: TPackageName, message: TMessage) => void;
export const success = (packageName: TPackageName, message: TMessage) => void;
export const error = (packageName: TPackageName, message: TMessage) => void;
export const warn = (packageName: TPackageName, message: TMessage) => void;

export function spinner(packageName: TPackageName, message: TMessage, type?: TType): {
  start(): void;
  succeed(_message: string): void;
  fail(_message: string): void;
  warn(_message: string): void;
  info(_message: string): void;
  text(_message: string): void;
  type(_message: string): void;
  stop(): void;
  stopAndPersist(): void;
  clear: (): void;
  isSpinning: boolean;
  indent: number;
}
```

### <a name="client-side">client-side</a>

<img src="https://user-images.githubusercontent.com/2912007/55966495-d1f78000-5c78-11e9-988b-47e11aaac3bf.png" style="max-width:320px; width:100%" alt="Dash4 client logger" />
<br/>
<br/>

```ts
import { log, info, success, error, warn } from '@dash4/log/build/browser';

log('terminal', 'place some text here');
info('readme', 'place some text here');
success('npm-scripts', 'place some text here');
error('dependencies', 'place some text here');
warn('ui', 'place some text here');
```

*types*

```ts
export type TPackageName = 'client' | 'react-xterm' | 'ui' | string;
export type TMessage = string | number | object | any[];

export const log = (packageName: TPackageName, message: TMessage, ...args: TMessage[]) => void;
export const info = (packageName: TPackageName, message: TMessage, ...args: TMessage[]) => void;
export const success = (packageName: TPackageName, message: TMessage, ...args: TMessage[]) => void;
export const error = (packageName: TPackageName, message: TMessage, ...args: TMessage[]) => void;
export const warn = (packageName: TPackageName, message: TMessage, ...args: TMessage[]) => void;
```


## License

The @dash4/log is [MIT licensed](./LICENSE)

---
_Source: https://npm.io/package/@dash4/log · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
