nixfilter
Version:
Simplify the development of (UNIX) "Filters"
50 lines (42 loc) • 977 B
text/coffeescript
'use strict'
bytes_writer = ->
(write_bytes) ->
(data) ->
if not Buffer.isBuffer(data)
data = Buffer.from(data)
write_bytes(data)
return
byte_writer = -> (write_bytes) ->
write = bytes_writer()(write_bytes)
(data) ->
write([data])
return
characters_writer = (encoding) ->
encoding = (encoding or 'utf8')
(write_bytes) ->
write = bytes_writer()(write_bytes)
(data) ->
write(Buffer.from(data, encoding))
return
character_writer = characters_writer
line_writer = (encoding) ->
(write_bytes) ->
write = characters_writer(encoding)(write_bytes)
(data) ->
write(data)
write('\n')
return
json_line_writer = (encoding) ->
(write_bytes) ->
write = line_writer(encoding)(write_bytes)
(data) ->
write(JSON.stringify(data))
return
# What this module exports
module.exports =
byte: byte_writer
bytes: bytes_writer
character: character_writer
characters: characters_writer
json_line: json_line_writer
line: line_writer