@web3-storage/parse-link-header
v3.1.0
Published
Parses a link header and returns paging information for each contained link.
Downloads
38,124
Readme
parse-link-header
Parses a link header and returns paging information for each contained link.
Note: This is a fork of github.com/thlorenz/parse-link-header with zero dependencies, no Node.js globals and ESM.
Install
npm install @web3-storage/parse-link-header
Usage
import { parseLinkHeader } from '@web3-storage/parse-link-header'
const 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"'
const parsed = parseLinkHeader(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' } }
API
parseLinkHeader(linkHeader: String, options?: Object): Object
Parses the given link header containing web links and returns an object keyed by
the rel
property that contains information about each link.
The following options are available to avoid redundantly parsing of extremely long (invalid) input:
maxHeaderLength: number
- Sets the number of characters the input should be limited to - longer inputs will not be handled. Defaults to2000
.throwOnMaxHeaderLengthExceeded: boolean
- Defines behavior for when thePARSE_LINK_HEADER_MAXLEN
parameter is exceeded. iftrue
, an error will be thrown; if it'sfalse
/null
/undefined
, the function fails silently by returningnull
. Defaults tofalse
.
Formatting a link header
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.