The Wayback Machine - https://web.archive.org/web/20201022061059/https://github.com/clns/node-http-range
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

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() {String} Return a valid string value
  • parse(input) {ContentRange} 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() {String} Return a valid string value
  • parse(input) {Range} 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() {String} Return a valid string value
  • parse(input) {RangeSpec} Parse an input string. Throws error if invalid

Examples of valid ranges

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

Tests

$ make test

About

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

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.