Skip to content

jimmywarting/web-byline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

web-byline

Line-by-line Stream transformer for web

npm version

(A ported version of jahewson/node-byline for using with whatwg streams) If you want to use byLine in node, then i recomend jahewson package

Currently only ReadableStream is implemented in Blink. TransformStream + WritableStream are on the way to be finilized. Until then you need web-stream-polyfill

The byline module can be used as a function to quickly pipe throught a readable stream to a WritableStream:

  rs = new ReadableStream({...})
  ws = new WritableStream({ write: console.log }
  
  rs.pipeThrough(byLine())
    .pipeTo(ws)

To read a large CSV from a file (or input) for example you can include Screw-FileReader to turn a blob into a stream

Example here: https://jsfiddle.net/gp802r79/
And below:

file = new File([content], 'large data.csv')
stdout = new WritableStream({ write: console.log }

file
  .stream()
  .pipeThrough(byLine())
  .pipeTo(stdout)

Empty Lines

byline skips empty lines

Unlike other modules (of which there are many), web-byline contains no:

  • monkeypatching
  • dependencies (except for stream polyfill)
  • CoffeeScript
  • Unnecessary code
  • minifed version
  • es6-to-es5 transformation
  • I expect you to write decent code and use const, let, classes and all that and simply include this in your own build process since you are probably going to minify it anyway.
  • So a decient browser won't suffer cuz of other.
    "The only way to truly force the web to embrace modern open standards is to invalidate old technology."

About

Line-by-line Stream transformer for web

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published