| 'use strict' |
| |
| var assert = require('assert') |
| |
| function _interopDefaultLegacy(e) { |
| return e && typeof e === 'object' && 'default' in e ? e : {default: e} |
| } |
| |
| var assert__default = /*#__PURE__*/ _interopDefaultLegacy(assert) |
| |
| function sliceChunks(chunks, token) { |
| var startIndex = token.start._index |
| var startBufferIndex = token.start._bufferIndex |
| var endIndex = token.end._index |
| var endBufferIndex = token.end._bufferIndex |
| var view |
| |
| if (startIndex === endIndex) { |
| assert__default['default']( |
| endBufferIndex > -1, |
| 'expected non-negative end buffer index' |
| ) |
| assert__default['default']( |
| startBufferIndex > -1, |
| 'expected non-negative start buffer index' |
| ) |
| view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)] |
| } else { |
| view = chunks.slice(startIndex, endIndex) |
| |
| if (startBufferIndex > -1) { |
| view[0] = view[0].slice(startBufferIndex) |
| } |
| |
| if (endBufferIndex > 0) { |
| view.push(chunks[endIndex].slice(0, endBufferIndex)) |
| } |
| } |
| |
| return view |
| } |
| |
| module.exports = sliceChunks |