* @param {Buffer} buf * @param {boolean} leading * @param {boolean} trailing * @param {(charCode: number) => boolean} predicate * @returns {Buffer}
(buf, leading, trailing, predicate)
| 490 | * @returns {Buffer} |
| 491 | */ |
| 492 | function removeChars (buf, leading, trailing, predicate) { |
| 493 | let lead = 0 |
| 494 | let trail = buf.length - 1 |
| 495 | |
| 496 | if (leading) { |
| 497 | while (lead < buf.length && predicate(buf[lead])) lead++ |
| 498 | } |
| 499 | |
| 500 | if (trailing) { |
| 501 | while (trail > 0 && predicate(buf[trail])) trail-- |
| 502 | } |
| 503 | |
| 504 | return lead === 0 && trail === buf.length - 1 ? buf : buf.subarray(lead, trail + 1) |
| 505 | } |
| 506 | |
| 507 | /** |
| 508 | * Checks if {@param buffer} starts with {@param start} |
no test coverage detected