You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.0 KiB
43 lines
1.0 KiB
'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
|
|
|