Skip to content

ryanve/eol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Sep 1, 2024
05a8e99 · Sep 1, 2024

History

78 Commits
Nov 20, 2019
Sep 10, 2016
Mar 12, 2014
Dec 26, 2021
Sep 1, 2024
Mar 1, 2022
Aug 27, 2024
Aug 27, 2024
Sep 1, 2024
Sep 1, 2024
Sep 1, 2024
Aug 15, 2024
Aug 27, 2024

Repository files navigation

Newline character converter node module for JavaScript or TypeScript

  • npm install eol
  • let eol = require("eol")
  • import eol from "eol"

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)

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 to string yields the appropriate character...useful glue for joining

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

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

Dubbing

Generate alternate normalizers

let extra = eol.dub("\n\n\n")
extra("...")
let huh = eol.dub("???")
huh("...")

modularitY

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

edit("sample.txt", eol.lf)
let eol = require("eol")
let map = require("map-file")

map({
  from: "from.txt",
  to: "to.txt",
  map: eol.lf
})
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 🧪 🧪 🧪 🧪

MIT License

∞/0