diffusion
Version:
Diffusion JavaScript client
65 lines (64 loc) • 2.04 kB
JavaScript
;
/**
* @module diffusion.datatypes.RecordV2
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.toBuffer = exports.write = void 0;
var recordv2_utils_1 = require("./../../data/record/recordv2-utils");
var buffer_output_stream_1 = require("./../../io/buffer-output-stream");
var uint8array_1 = require("./../../util/uint8array");
/**
* Write record data to an output stream
*
* @param records the records to write
* @param out the output stream to write into
*/
function write(records, out) {
if (records.length === 0) {
return;
}
if (records.length === 1 && records[0].length === 0) {
out.write(recordv2_utils_1.RECORD_MU);
return;
}
var mustWriteRecordDelimiter = false;
records.forEach(function (record) {
if (mustWriteRecordDelimiter) {
out.write(recordv2_utils_1.RECORD_DELIMITER);
}
else {
mustWriteRecordDelimiter = true;
}
if (record.length === 1 && record[0] === '') {
out.write(recordv2_utils_1.FIELD_MU);
}
else {
var mustWriteFieldDelimiter_1 = false;
record.forEach(function (field) {
if (mustWriteFieldDelimiter_1) {
out.write(recordv2_utils_1.FIELD_DELIMITER);
}
else {
mustWriteFieldDelimiter_1 = true;
}
/* tslint:disable-next-line:strict-type-predicates */
if (field !== undefined && field !== null) {
out.writeMany(uint8array_1.uint8FromUtf8(field));
}
});
}
});
}
exports.write = write;
/**
* Write record data to a buffer
*
* @param records the records to write
* @return the buffer containing the serialised data
*/
function toBuffer(records) {
var bos = new buffer_output_stream_1.BufferOutputStream();
write(records, bos);
return bos.getBuffer();
}
exports.toBuffer = toBuffer;