split v1.0.1
Split (matcher)
Break up a stream and reassemble it so that each line is a chunk. matcher may be a String
, or a RegExp
Example, read every line in a file ...
fs.createReadStream(file)
.pipe(split())
.on('data', function (line) {
//each chunk now is a separate line!
})
split
takes the same arguments as string.split
except it defaults to '/\r?\n/' instead of ',', and the optional limit
parameter is ignored.
String#split
split
takes an optional options object on its third argument.
split(matcher, mapper, options)
Valid options:
- maxLength - The maximum buffer length without seeing a newline or
matcher
, if a single line exceeds this, the split stream will emit an error.
split(JSON.parse, null, { maxLength: 2})
- trailing - By default the last buffer not delimited by a newline or
matcher
will be emitted. To prevent this setoptions.trailing
tofalse
.
split(JSON.parse, null, { trailing: false })
keep matched splitter
As with String#split
, if you split by a regular expression with a matching group,
the matches will be retained in the collection.
stdin
.pipe(split(/(\r?\n)/))
... //lines + separators.
NDJ - Newline Delimited Json
split
accepts a function which transforms each line.
fs.createReadStream(file)
.pipe(split(JSON.parse))
.on('data', function (obj) {
//each chunk now is a a js object
})
.on('error', function (err) {
//syntax errors will land here
//note, this ends the stream.
})
License
MIT
7 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
11 years ago
12 years ago
12 years ago