|
1 | 1 | import { constants } from 'buffer'; |
2 | 2 |
|
3 | 3 | import { DynamicBufferIterator } from './iterator'; |
| 4 | +import { rangeCheck } from './utils'; |
4 | 5 |
|
5 | 6 | /** |
6 | 7 | * The character encoding that is supported by Node.js, copy from Node.js Buffer module. |
@@ -266,7 +267,7 @@ export class DynamicBuffer { |
266 | 267 | encoding: BufferEncoding | undefined = this.encoding, |
267 | 268 | ): number { |
268 | 269 | if (offset < 0) { |
269 | | - throw new RangeError('The value of "offset" is out of range.'); |
| 270 | + rangeCheck('offset', offset, 0); |
270 | 271 | } |
271 | 272 |
|
272 | 273 | const count = this.writeData(data, offset, length, encoding); |
@@ -322,13 +323,10 @@ export class DynamicBuffer { |
322 | 323 | */ |
323 | 324 | read(offset: number = 0): number { |
324 | 325 | if (!this.buffer || offset < 0 || offset >= this.used) { |
325 | | - throw new RangeError(`The value of "offset" is out of range. It must be >= 0 and <= ${ |
326 | | - this.used - 1 |
327 | | - }. Received ${ |
328 | | - offset |
329 | | - }`); |
| 326 | + rangeCheck('offset', offset, 0, this.used - 1); |
330 | 327 | } |
331 | 328 |
|
| 329 | + // @ts-ignore |
332 | 330 | return this.buffer[offset]; |
333 | 331 | } |
334 | 332 |
|
@@ -735,12 +733,8 @@ export class DynamicBuffer { |
735 | 733 | sourceStart: number = 0, |
736 | 734 | sourceEnd: number = this.length, |
737 | 735 | ): number { |
738 | | - if (targetStart < 0) { |
739 | | - throw new RangeError(`The value of 'targetStart' is out of range. It must be >=0. Received ${targetStart}`); |
740 | | - } |
741 | | - if (sourceStart < 0) { |
742 | | - throw new RangeError(`The value of 'sourceStart' is out of range. It must be >=0. Received ${sourceStart}`); |
743 | | - } |
| 736 | + rangeCheck('targetStart', targetStart, 0); |
| 737 | + rangeCheck('sourceStart', sourceStart, 0); |
744 | 738 | if (sourceEnd > this.length) { |
745 | 739 | // eslint-disable-next-line no-param-reassign |
746 | 740 | sourceEnd = this.length; |
|
0 commit comments