Header-range-parser

header-range-parser

제품 정보

즐겨찾기

프로그래밍 언어

공개 채팅

지원 계획

현재 사용할 수 있는 OSS 플랜이 없습니다.

저장소의 제공자 또는 기여자인 경우 OSS 플랜 추가를 시작할 수 있습니다.

OSS 플랜 추가
여기에서 자세히 알아보세요

이 오픈소스에 대한 플랜을 찾고 있다면 저희에게 문의해 주세요.

전문 공급자와 연락하실 수 있도록 도와드리겠습니다.

제품 세부 정보

Range header field parser.

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

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

  • -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

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

See also

💾 My other projects

Open Source

문의하기

  • 비즈니스 개발자를 위한 최신 정보를 원하십니까? 소스 코드 프로젝트에 대한 PieceX 커뮤니티의 요구사항을 알아보세요. PieceX의 최신 무료 커뮤니티 코드를 빠르게 알려드립니다.
PieceX Logo