diffusion
Version:
Diffusion JavaScript client
50 lines (40 loc) • 1.26 kB
JavaScript
var BufferOutputStream = require('io/buffer-output-stream');
var consts = require('data/record/recordv2-utils');
function write(records, out) {
if (records.length === 0) {
return;
}
if (records.length === 1 && records[0].length === 0) {
out.write(consts.RECORD_MU);
return;
}
var recordDelimiter = false;
records.forEach(function(record) {
if (recordDelimiter) {
out.write(consts.RECORD_DELIMITER);
} else {
recordDelimiter = true;
}
if (record.length === 1 && record[0] === "") {
out.write(consts.FIELD_MU);
} else {
var fieldDelimiter = false;
record.forEach(function(field) {
if (fieldDelimiter) {
out.write(consts.FIELD_DELIMITER);
} else {
fieldDelimiter = true;
}
if (field !== undefined && field !== null) {
out.writeMany(new Buffer(field));
}
});
}
});
}
module.exports.write = write;
module.exports.toBuffer = function(records) {
var bos = new BufferOutputStream();
write(records, bos);
return bos.getBuffer();
};