UNPKG

nixfilter

Version:

Simplify the development of (UNIX) "Filters"

59 lines (50 loc) 1.37 kB
'use strict' bytes_reader = -> (callback) -> callback byte_reader = -> (callback) -> bytes_reader() (input_bytes) -> for input_byte in input_bytes callback(input_byte) return # Import the "StringDecoder" class from the "string_decoder" module StringDecoder = require('string_decoder').StringDecoder characters_reader = (encoding) -> encoding = (encoding or 'utf8') (callback) -> string_decoder = new StringDecoder(encoding) (input_bytes) -> input_characters = string_decoder.write(input_bytes) if (input_characters.length > 0) callback(input_characters) return character_reader = (encoding) -> (callback) -> characters_reader(encoding) (input_characters) -> for input_character in input_characters callback(input_character) return line_reader = (encoding) -> (callback) -> line_buffer = [] character_reader(encoding) (input_character) -> if (input_character is '\n') callback(line_buffer.join('')) line_buffer = [] else line_buffer.push(input_character) return json_line_reader = (encoding) -> (callback) -> line_reader(encoding) (input_line) -> callback(JSON.parse(input_line)) return # What this module exports module.exports = byte: byte_reader bytes: bytes_reader character: character_reader characters: characters_reader json_line: json_line_reader line: line_reader