'use strict' var assert = require('assert') var codes = require('../character/codes.js') var values = require('../character/values.js') var fromCharCode = require('../constant/from-char-code.js') function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : {default: e} } var assert__default = /*#__PURE__*/ _interopDefaultLegacy(assert) function serializeChunks(chunks) { var index = -1 var result = [] var chunk var value var atTab while (++index < chunks.length) { chunk = chunks[index] if (typeof chunk === 'string') { value = chunk } else if (chunk === codes.carriageReturn) { value = values.cr } else if (chunk === codes.lineFeed) { value = values.lf } else if (chunk === codes.carriageReturnLineFeed) { value = values.cr + values.lf } else if (chunk === codes.horizontalTab) { value = values.ht } else if (chunk === codes.virtualSpace) { if (atTab) continue value = values.space } else { assert__default['default'].equal( typeof chunk, 'number', 'expected number' ) // Currently only replacement character. value = fromCharCode(chunk) } atTab = chunk === codes.horizontalTab result.push(value) } return result.join('') } module.exports = serializeChunks