
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 👼.



Installation
npm install header-range-parser
API
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";
import {
Result, Ranges, parseRange, Options,
} from "header-range-parser";
declare function parseRange(
size: number, header: string, options?: Options,
): Ranges | Result;
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.
-
-1 or ERROR_UNSATISFIABLE_RESULT or esultUnsatisfiable signals an unsatisfiable range
-
-2 or ERROR_STRING_IS_NOT_HEADER or ResultInvalid signals a malformed header string
-
-3 or ERROR_INVALID_ARGUMENT or ResultWrongArgument invalid parameters
const subRanges = parseRange(
size,
request.headers.range,
);
if (subRanges.type === "bytes") {
subRanges.forEach((range) => {
});
}
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,
});
See also
💾 My other projects