JSPM

http-range

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 622
  • Score
    100M100P100Q93373F
  • License ISC

Node.js parser for Content-Range and Range HTTP/1.1 header fields.

Package Exports

  • http-range

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (http-range) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

http-range

Node.js parser for Content-Range and Range HTTP header fields according to the HTTP/1.1 specifications.

Build Status

Installation

$ npm install http-range

Usage

var ContentRange = require('http-range').ContentRange;
var Range = require('http-range').Range;

// Parsing and creating 'Content-Range' header
ContentRange.prototype.parse('bytes 0-49/50');  // Content-Range: bytes 0-49/50
new ContentRange('bytes', '0-49', 50).toString(); // => bytes 0-49/50

// Parsing and creating 'Range' header
Range.prototype.parse('bytes=0-49');  // Range: bytes=0-49
new Range('bytes', '0-49'); // => bytes=0-49

For more usages check the test files.

API

ContentRange Class

new ContentRange(unit, range, length)
  • unit {String} Usually 'bytes', but can be any token
  • range {RangeSpec|String} A RangeSpec instance, a string like '0-49' or '*' if unknown
  • length {Number|'*'} The total length of the full entity-body or '*' if this length is unknown or difficult to determine

Throws error if arguments are invalid.

Properties
  • unit {String}
  • range {RangeSpec}
  • length {Number|null} Null if unknown
Methods
  • toString() Return a valid string value
  • parse(input) Parse an input string. Throws error if invalid

Allowed Content-Range(s)

  • Content-Range: bytes 0-49/50
  • Content-Range: bytes 0-49/*
  • Content-Range: bytes */50
  • Content-Range: bytes */*

Range Class

new Range(unit, ranges)
  • unit {String} Usually 'bytes', but can be any token
  • ranges {RangeSpec[]|String} An array of RangeSpec instances or a string like '0-49[,50-99][...]'

Throws error if arguments are invalid.

Properties
Methods
  • toString() Return a valid string value
  • parse(input) Parse an input string. Throws error if invalid

Allowed Range(s)

  • Range: bytes=0-49
  • Range: bytes=0-49,50-99,-30
  • Range: bytes=1-
  • Range: bytes=-50

RangeSpec Class

new RangeSpec(low, high, size)
  • low {Number|undefined}
  • high {Number|undefined}
  • size {Number|undefined} For validation only, optional

Throws error if arguments are invalid.

Properties
  • low {Number|undefined}
  • high {Number|undefined}
Methods
  • toString() Return a valid string value
  • parse(input) Parse an input string. Throws error if invalid

Examples of valid ranges

  • *
  • 0-49
  • -49
  • 34-

Tests

$ make test