UNPKG

nixfilter

Version:

Simplify the development of (UNIX) "Filters"

86 lines (76 loc) 2.17 kB
'use strict'; var StringDecoder, byte_reader, bytes_reader, character_reader, characters_reader, json_line_reader, line_reader; bytes_reader = function() { return function(callback) { return callback; }; }; byte_reader = function() { return function(callback) { return bytes_reader()(function(input_bytes) { var i, input_byte, len; for (i = 0, len = input_bytes.length; i < len; i++) { input_byte = input_bytes[i]; callback(input_byte); } }); }; }; // Import the "StringDecoder" class from the "string_decoder" module StringDecoder = require('string_decoder').StringDecoder; characters_reader = function(encoding) { encoding = encoding || 'utf8'; return function(callback) { var string_decoder; string_decoder = new StringDecoder(encoding); return function(input_bytes) { var input_characters; input_characters = string_decoder.write(input_bytes); if (input_characters.length > 0) { callback(input_characters); } }; }; }; character_reader = function(encoding) { return function(callback) { return characters_reader(encoding)(function(input_characters) { var i, input_character, len; for (i = 0, len = input_characters.length; i < len; i++) { input_character = input_characters[i]; callback(input_character); } }); }; }; line_reader = function(encoding) { return function(callback) { var line_buffer; line_buffer = []; return character_reader(encoding)(function(input_character) { if (input_character === '\n') { callback(line_buffer.join('')); line_buffer = []; } else { line_buffer.push(input_character); } }); }; }; json_line_reader = function(encoding) { return function(callback) { return line_reader(encoding)(function(input_line) { callback(JSON.parse(input_line)); }); }; }; // 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 }; //# sourceMappingURL=reader.js.map