UNPKG

diffusion

Version:

Diffusion JavaScript client

65 lines (64 loc) 2.04 kB
"use strict"; /** * @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;