header-range-parser v1.1.3
Header • Range • Parser

Range header field parser. Fork of a̶b̶a̶n̶d̶o̶n̶e̶d̶ range-parser. If you write to me with a request to change or update something, I will do it. Honestly 👼.
comment: <> ()
Installation
npm install header-range-parserAPI
const {
ERROR_INVALID_ARGUMENT,
ERROR_STRING_IS_NOT_HEADER,
ERROR_UNSATISFIABLE_RESULT,
parseRange,
} = require("header-range-parser");import {
ERROR_INVALID_ARGUMENT,
ERROR_STRING_IS_NOT_HEADER,
ERROR_UNSATISFIABLE_RESULT,
ResultInvalid,
ResultUnsatisfiable,
ResultWrongArgument,
parseRange,
} from "header-range-parser";parseRange(size, header, options)
import {
Result, Ranges, parseRange, Options,
} from "header-range-parser";
declare function parseRange(
size: number, header: string, options?: Options,
): Ranges | Result;| Parameter | Type | Description |
|---|---|---|
size | number | Required. Size in bytes. |
header | string | Required. String containing header. |
options | object | Optional options: combine (bool), throwError (bool). |
Parse the given header string where size is the size of the selected
representation that is to be partitioned into sub-ranges. An array of sub-ranges
will be returned or negative numbers indicating an error parsing.
-1orERROR_UNSATISFIABLE_RESULToresultUnsatisfiablesignals an unsatisfiable range-2orERROR_STRING_IS_NOT_HEADERorResultInvalidsignals a malformed header string-3orERROR_INVALID_ARGUMENTorResultWrongArgumentinvalid parameters
// parse header from request
const subRanges = parseRange(
size,
request.headers.range,
);
// the type of the subranges
if (subRanges.type === "bytes") {
// the ranges
subRanges.forEach((range) => {
// do something
// with range.start
// and range.end
});
}Options
These properties are accepted in the options object.
combine
Specifies if overlapping and adjacent sub-ranges should be combined, defaults to false.
When true, ranges will be combined and returned as if they were specified that way in the header.
throwError
Throw or suppress errors. Defaults to true.
parseRange(
100,
"bytes=50-55,0-10,5-10,56-60",
{
combine: true,
throwError: false,
});
// [
// { start: 0, end: 10 },
// { start: 50, end: 60 }
// ]