thlorenz/parse-link-header

Parses a link header and returns paging information for each contained link.

JavaScript

300

25 commits

updated Feb 9, 2023

See the code

README

parse-link-header build status

testling badge

Parses a link header and returns paging information for each contained link.

var parse = require('parse-link-header');

var linkHeader =
  '<https://api.github.com/user/9287/repos?page=3&per_page=100>; rel="next", ' +
  '<https://api.github.com/user/9287/repos?page=1&per_page=100>; rel="prev"; pet="cat", ' +
  '<https://api.github.com/user/9287/repos?page=5&per_page=100>; rel="last"'

var parsed = parse(linkHeader);
console.log(parsed);
{ next:
   { page: '3',
     per_page: '100',
     rel: 'next',
     url: 'https://api.github.com/user/9287/repos?page=3&per_page=100' },
  prev:
   { page: '1',
     per_page: '100',
     rel: 'prev',
     pet: 'cat',
     url: 'https://api.github.com/user/9287/repos?page=1&per_page=100' },
  last:
   { page: '5',
     per_page: '100',
     rel: 'last',
     url: 'https://api.github.com/user/9287/repos?page=5&per_page=100' } }

Installation

npm install parse-link-header

API

parseLinkHeader(linkHeader : String) : Object

Parses the given link header containing web links and returns an object keyed by the rel property that contains information about each link.

Environmental Variables

To avoid redundantly parsing of extremely long (invalid) input, the package uses 2 env variables:

PARSE_LINK_HEADER_MAXLEN - Sets the number of characters the input should be limited to - longer inputs will not be handled. Defaults to 2000.

PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED - Defines behavior for when the PARSE_LINK_HEADER_MAXLEN parameter is exceeded. If defined, an error will be thrown; if it's null, the function fails silently by returning null. Defaults to null.

The purpose of this module is to parse the link header information. To format an object generated by this module back to the link header string, use the format-link-header module.

Contributors

thlorenz

16 commits

jarofghosts

4 commits

HonkingGoose

1 commits

arku

1 commits

thlorenz/parse-link-header

Parses a link header and returns paging information for each contained link.

JavaScript

300

25 commits

updated Feb 9, 2023

See the code

README

parse-link-header build status

testling badge

Parses a link header and returns paging information for each contained link.

var parse = require('parse-link-header');

var linkHeader =
  '<https://api.github.com/user/9287/repos?page=3&per_page=100>; rel="next", ' +
  '<https://api.github.com/user/9287/repos?page=1&per_page=100>; rel="prev"; pet="cat", ' +
  '<https://api.github.com/user/9287/repos?page=5&per_page=100>; rel="last"'

var parsed = parse(linkHeader);
console.log(parsed);
{ next:
   { page: '3',
     per_page: '100',
     rel: 'next',
     url: 'https://api.github.com/user/9287/repos?page=3&per_page=100' },
  prev:
   { page: '1',
     per_page: '100',
     rel: 'prev',
     pet: 'cat',
     url: 'https://api.github.com/user/9287/repos?page=1&per_page=100' },
  last:
   { page: '5',
     per_page: '100',
     rel: 'last',
     url: 'https://api.github.com/user/9287/repos?page=5&per_page=100' } }

Installation

npm install parse-link-header

API

parseLinkHeader(linkHeader : String) : Object

Parses the given link header containing web links and returns an object keyed by the rel property that contains information about each link.

Environmental Variables

To avoid redundantly parsing of extremely long (invalid) input, the package uses 2 env variables:

PARSE_LINK_HEADER_MAXLEN - Sets the number of characters the input should be limited to - longer inputs will not be handled. Defaults to 2000.

PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED - Defines behavior for when the PARSE_LINK_HEADER_MAXLEN parameter is exceeded. If defined, an error will be thrown; if it's null, the function fails silently by returning null. Defaults to null.

The purpose of this module is to parse the link header information. To format an object generated by this module back to the link header string, use the format-link-header module.

Contributors

thlorenz

16 commits

jarofghosts

4 commits

HonkingGoose

1 commits

arku

1 commits

Languages

JavaScript

100.0%