🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

header-range-parser

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

header-range-parser

Range header field string parser.

latest
Source
npmnpm
Version
1.1.5
Version published
Weekly downloads
66K
-15.31%
Maintainers
1
Weekly downloads
 
Created
Source

Header • Range • Parser

Header • Range • Parser

Range header field parser. Fork of a̶b̶a̶n̶d̶o̶n̶e̶d̶ range-parser.

NPM Version NPM Downloads Node.js Version TypeScript Typings Codacy Badge CodeFactor

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";

parseRange(size, header, options)

import {
  Result, Ranges, parseRange, Options,
} from "header-range-parser";

declare function parseRange(
  size: number, header: string, options?: Options,
): Ranges | Result;
ParameterTypeDescription
sizenumberRequired. Size in bytes.
headerstringRequired. String containing header.
optionsobjectOptional 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 ResultUnsatisfiable 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

// 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 }
//  ]

Keywords

header

FAQs

Package last updated on 04 Feb 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts