# cli-source-preview

> preview source code for CLI

Latest version **1.1.0** (published 2016-09-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install cli-source-preview
pnpm add cli-source-preview
yarn add cli-source-preview
bun add cli-source-preview
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2016-09-19 |
| First published | 2016-06-13 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | yibn2008@gmail.com |
| Maintainers | yibn2008 |
| Keywords | source, highlight, preview |

## Links

- npm: https://www.npmjs.com/package/cli-source-preview
- Repository: https://github.com/yibn2008/cli-source-preview
- Homepage: https://github.com/yibn2008/cli-source-preview#readme
- Issues: https://github.com/yibn2008/cli-source-preview/issues
- npm.io page: https://npm.io/package/cli-source-preview

## Dependencies (1)

- [chalk](https://npm.io/package/chalk.md) ^1.1.3

## Alternatives

- [@oh-my-pi/pi-natives](https://npm.io/package/@oh-my-pi/pi-natives.md) — 51.8K weekly downloads
- [@capgo/capacitor-light-sensor](https://npm.io/package/@capgo/capacitor-light-sensor.md) — 3.0K weekly downloads
- [@heyhuynhgiabuu/pi-diff](https://npm.io/package/@heyhuynhgiabuu/pi-diff.md) — 492 weekly downloads
- [@lotsa/verdant-lang-asm](https://npm.io/package/@lotsa/verdant-lang-asm.md) — 38 weekly downloads
- [new-era-syntax](https://npm.io/package/new-era-syntax.md) — 20 weekly downloads

## Recent versions

- 1.1.0 (latest) — 2016-09-19
- 1.0.0-beta0 (beta) — 2016-06-13
- 1.0.0 — 2016-06-16

## README

# cli-source-preview

Preview source code for CLI, useful when display error message with related source.

## install

```bash
$ npm install cli-source-preview
```

## usage

```js
'use strict'

const preview = require('cli-source-preview')
const source = `
'use strict'

const chalk = require('chalk')

const PREVIEW_OPTS = {
  offset: 5,
  lineNumber: true,
  delimiter: '\\n'
}
const DELIMITER = '-'.repeat(40)

function rightPad (text, width) {
  return text + (width > text.length ? ' '.repeat(width - text.length) : '')
}
`

// preview line 10
console.log(preview(source, 10))

// preview line 5~8
console.log(preview(source, [5, 8]))

// preview line 12:6
console.log(preview(source, { line: 12, column: 6}))
```

## Screen Shot

![Screen Shot](./screen-shot.png)

## API

### `preview (source, line, options)`

Get source code parts by line and return with highlighted (CLI) string.

#### Arguments

- **source** (String), source code to preview
- **line** (Mixed), line number to highlight and preview, types:
  - Array: `[ Number, Number ]`, the line range to preview
  - Object: `{ line: Number, column: Number }`, preivew specified line/column
  - Number: preivew single line
- **options** (Object), preview options *(optional)*
  - **offset**: extra lines number before/after specified line range *(default: 5)*
  - **lineNumber**: show line number or not *(default: true)*
  - **delimiter**: line delimiter *(default: '\n')*
  - **cliColor**: show ASCI CLI highlight color, set false to turn off CLI highlight *(default: true)*

#### Return

Return preview parts string of source

### `preview.readSource (source, from, to, offset, delimiter)`

Read source code by from/to line range.

#### Arguments

- **source** (String), source code to read
- **from** (Number), from line
- **to** (Number), to line
- **offset** (Number), same as `options.offset`
- **delimiter** (String), same as `options.delimiter`

#### Return

Return readed source code lines as format:

```js
return [{
  number: Number,
  source: String
}, ...]
```

## License

MIT

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