Header • Range • Parser

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

NPM Version NPM Downloads GitHub Stars Node.js Version TypeScript Typings

GitHub Checks Travis CI Snyk

Maintainability Rating LGTM Codacy Badge CodeFactor

Installation

bash npm install header-range-parser

API

js const { ERROR_INVALID_ARGUMENT, ERROR_STRING_IS_NOT_HEADER, ERROR_UNSATISFIABLE_RESULT, parseRange, } = require("header-range-parser");

typescript import { ERROR_INVALID_ARGUMENT, ERROR_STRING_IS_NOT_HEADER, ERROR_UNSATISFIABLE_RESULT, ResultInvalid, ResultUnsatisfiable, ResultWrongArgument, parseRange, } from "header-range-parser";

parseRange(size, header, options)

```typescript 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.

```js // 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.

js parseRange( 100, "bytes=50-55,0-10,5-10,56-60", { combine: true, throwError: false, }); // [ // { start: 0, end: 10 }, // { start: 50, end: 60 } // ]

See also

💾 My other projects

Open Source