UNPKG

diffusion

Version:

Diffusion JavaScript client

108 lines (85 loc) 2.64 kB
var RECORD_DELIMITER = 0x1; var FIELD_DELIMITER = 0x2; var EMPTY_FIELD = 0x3; var RECORD_MU = 0x4; var FIELD_MU = 0x5; module.exports.bytesToString = function(bytes, offset, length) { var ret = ""; for (var i = offset; i < offset + length; ++i) { switch (bytes[i]) { case FIELD_DELIMITER : ret += "<FD>"; break; case RECORD_DELIMITER : ret += "<RD>"; break; case EMPTY_FIELD : ret += "<EF>"; break; case FIELD_MU : ret += "<FM>"; break; case RECORD_MU : ret += "<RM>"; break; default : ret += String.fromCharCode(bytes[i]); } } return ret; }; module.exports.recordCount = function(bytes, offset, length) { if (length === 0) { return 0; } if (bytes[0] === RECORD_MU) { return 1; } var count = 1; for (var i = offset; i < offset + length; i++) { if (bytes[i] === RECORD_DELIMITER) { count++; } } return count; }; module.exports.fieldCount = function(bytes, offset, length) { if (length === 0) { return 0; } if (bytes[0] === FIELD_MU) { return 1; } var count = 1; for (var i = offset; i < offset + length; i++) { if (bytes[i] === FIELD_DELIMITER) { count++; } } return count; }; module.exports.findDelimiter = function(bytes, startIndex, endIndex, delimiter) { var pos = startIndex; for (; pos < endIndex; pos++) { if (bytes[pos] === delimiter) { break; } } return pos; }; module.exports.isSingleEmptyRecord = function(bytes, offset, length) { return length === 1 && bytes[offset] === RECORD_MU; }; module.exports.recordIsSingleEmptyField = function(bytes, offset, length) { return length === 1 && (bytes[offset] === FIELD_MU || bytes[offset] === EMPTY_FIELD); }; module.exports.RECORD_DELIMITER = RECORD_DELIMITER; module.exports.RECORD_DELIMITER_STRING = String.fromCharCode(RECORD_DELIMITER); module.exports.FIELD_DELIMITER = FIELD_DELIMITER; module.exports.FIELD_DELIMITER_STRING = String.fromCharCode(FIELD_DELIMITER); module.exports.EMPTY_FIELD = EMPTY_FIELD; module.exports.EMPTY_FIELD_STRING = String.fromCharCode(EMPTY_FIELD); module.exports.RECORD_MU = RECORD_MU; module.exports.RECORD_MU_STRING = String.fromCharCode(RECORD_MU); module.exports.FIELD_MU = FIELD_MU; module.exports.FIELD_MU_STRING = String.fromCharCode(FIELD_MU);