csv-parse
Version:
CSV parsing implementing the Node.js `stream.Transform` API
46 lines (39 loc) • 962 B
JavaScript
// Generated by CoffeeScript 2.3.2
// # CSV Parse Sync
// Provides a synchronous alternative to the CSV parser.
// ## Usage
// `const records = parse(data, [options]`
var StringDecoder, parse;
({StringDecoder} = require('string_decoder'));
parse = require('./index');
module.exports = function(data, options = {}) {
var chunks, decoder, err, parser;
chunks = options.objname ? {} : [];
if (data instanceof Buffer) {
decoder = new StringDecoder();
data = decoder.write(data);
}
parser = new parse.Parser(options);
parser.push = function(chunk) {
if (options.objname) {
return chunks[chunk[0]] = chunk[1];
} else {
return chunks.push(chunk);
}
};
err = parser.__write(data, false);
if (err) {
throw err;
}
if (data instanceof Buffer) {
err = parser.__write(data.end(), true);
if (err) {
throw err;
}
}
err = parser.__flush();
if (err) {
throw err;
}
return chunks;
};