An open API service indexing awesome lists of open source software.

https://github.com/artdecocode/tablature

Display Tabular Data For CLI Apps.
https://github.com/artdecocode/tablature

Last synced: about 2 months ago
JSON representation

Display Tabular Data For CLI Apps.

Awesome Lists containing this project

README

          

# tablature

[![npm version](https://badge.fury.io/js/tablature.svg)](https://npmjs.org/package/tablature)

`tablature` Will Display Data In A Table In CLI.

```sh
yarn add tablature
```

## Table Of Contents

- [Table Of Contents](#table-of-contents)
- [API](#api)
- [`tablature(config: Config): string`](#tablatureconfig-config-string)
* [`Replacement`](#type-replacement)
* [`Config`](#type-config)
* [Replacement](#replacement)
- [Copyright](#copyright)



## API

The package is available by importing its default function:

```js
import tablature from 'tablature'
```



## `tablature(`
  `config: Config,`
`): string`

Returns a string representation of data as a table.

`(value: string) => {value: string, length: number}` __`Replacement`__: The function to use to replace values for display.

__`Config`__: Options for the program.


Name
Type & Description


keys*
!Array<string>



Keys to print as columns.


data*
!Array<!Object<string, string>>



The array of data items to prints as rows.


headings
!Object<string, string>



The display names for each column.


replacements
!Object<string, Replacement>



The map of replacement functions which will run against data items.


centerValues
!Array<string>



Centre values of these column (use original keys, not headings).


centerHeadings
!Array<string>



Center headings of these column (use original keys, not headings).

SourceOutput

```js
import tablature from 'tablature'

const DATA = [
{
name: 'hello',
when: 'yesterday',
},
{
name: 'world',
when: 'now',
},
]

const res = tablature({
keys: ['name', 'when'],
data: DATA,
centerValues: ['when'],
centerHeadings: ['when'],
headings: {
name: 'Name',
when: 'When',
},
})
console.log(res)
```

```
Name When
hello yesterday
world now
```



### Replacement

A replacement function must return an object containing `value` and `length` property. When replacements are not given, the ANSI codes are removed by _Tablature_, however, the replacement must always return the value along with its length.

```js
const isEnabled = (value) => {
if (value == 'ENABLED') return { value: `\x1b[32mOK\x1b[0m`, length: 2 }
if (value == 'NOTPRESENT') return { value: `\x1b[31m--\x1b[0m`, length: 2 }
return { value, length: value.length }
}

const replacements = {
enabled: isEnabled,
}
```



## Copyright




Art Deco


© Art Deco 2019


Tech Nation Visa


Tech Nation Visa Sucks