UNPKG

@web3-storage/parse-link-header

Version:

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

59 lines (42 loc) 2.23 kB
# 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](https://github.com/thlorenz/parse-link-header) with zero dependencies, no Node.js globals and ESM. ## Install npm install @web3-storage/parse-link-header ## Usage ```js 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) ``` ```js { 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](http://tools.ietf.org/html/rfc5988) 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 to `2000`. * `throwOnMaxHeaderLengthExceeded: boolean` - Defines behavior for when the `PARSE_LINK_HEADER_MAXLEN` parameter is exceeded. if `true`, an error will be thrown; if it's `false`/`null`/`undefined`, the function fails silently by returning `null`. Defaults to `false`. ### 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](https://github.com/jonathansamines/format-link-header) module.