Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/ryanve/eol

JavaScript newline character converter
https://github.com/ryanve/eol

character-converter eol javascript linebreak linebreaks newline node node-js nodejs

Last synced: 5 days ago
JSON representation

JavaScript newline character converter

Awesome Lists containing this project

README

        

# [eol](https://ryanve.github.io/eol)

[Newline](http://en.wikipedia.org/wiki/Newline) character converter node module for [JavaScript](eol.js) or [TypeScript](eol.d.ts)

### [npm.im/eol](https://npmjs.com/package/eol)

* `npm install eol`
* let eol = require("eol")
* import eol from "eol"

## [API](https://ryanve.github.io/eol#methods)

### eol.auto(text)

* Normalize line endings in text to match the current operating system
* Returns string with line endings normalized to `\r\n` or `\n`

### eol.crlf(text)

* Normalize line endings in text to CRLF (Windows, DOS)
* Returns string with line endings normalized to `\r\n`

### eol.lf(text)

* Normalize line endings in text to LF (Unix, OS X)
* Returns string with line endings normalized to `\n`

### eol.cr(text)

* Normalize line endings in text to CR (Mac OS)
* Returns string with line endings normalized to `\r`

### eol.dub(text)

* Generate normalizer where linebreaks become text
* Used [internally](eol.js) to generate the [normalizers](#api) above
* Returns composed pure function with [creative potential](#dubbing)

### eol.before(text)

* Add linebreak before text
* Returns string with linebreak added before text
* Uses `eol.auto` linebreak
* `eol.lf(eol.before(text))` ⋮

### eol.after(text)

* Add linebreak after text
* Returns string with linebreak added after text
* Uses `eol.auto` linebreak
* `eol.lf(eol.after(text))` ⋮

### eol.match(text)

* Detect or inspect linebreaks in text
* Returns array of matched linebreaks

### eol.split(text)

* Split text by newline
* Returns array of lines

### Joining

Coercing [normalizers](#api) to string yields the appropriate character...useful glue for joining

```js
String(eol.lf) // "\n"
eol.split(text).join(eol.auto) // === eol.auto(text)
eol.split(text).filter(line => line).join(eol.auto) // text joined after removing empty lines
eol.split(text).slice(-3).join(eol.auto) // last 3 lines joined
```

### Matching

Detect or inspect via match

```js
eol.match(" ") // []
eol.match("world\nwide\nweb") // ["\n","\n"]
```

### Dubbing

Generate alternate [normalizers](#api)

```
let extra = eol.dub("\n\n\n")
extra("...")
```

```
let huh = eol.dub("???")
huh("...")
```

## modularitY

### [edit-file](https://github.com/ryanve/edit-file)

```js
let eol = require("eol")
let edit = require("edit-file")

edit("sample.txt", eol.lf)
```

### [map-file](https://github.com/ryanve/map-file)

```js
let eol = require("eol")
let map = require("map-file")

map({
from: "from.txt",
to: "to.txt",
map: eol.lf
})
```

### [ssv](https://ryanve.github.io/ssv)

```js
let ssv = require("ssv")
let eol = require("eol")

let deep = eol.split("spaced.txt").map(ssv.split)
```

### Yours

Have an `eol` sample to share?

[Then please do](../../issues/new) :test_tube: :test_tube: :test_tube: :test_tube:

## [opensource](package.json)

[MIT License](LICENSE.md)

[**∞/0**](#eol)