fetch-link-util
Version:
helper to extract fetch link header values (paging/RFC-8288)
22 lines (20 loc) • 610 B
JavaScript
/**
* Decodes link header and delivers one href entry.
* @see https://datatracker.ietf.org/doc/html/rfc8288
* @param {Headers} headers as given by fetch response
* @param {string} rel of link to retrieve
* @return {string|undefined} href for given rel
*/
export function getHeaderLink(headers, rel = "next") {
return decodeHeader(headers.get("link"))[rel];
}
function decodeHeader(link) {
return link
? Object.fromEntries(
link.split(/\s*,\s*/).map(r => {
const m = r.match(/<([^>]+)>;\s*rel="([^\"]+)"/);
return m ? [m[2], m[1]] : [];
})
)
: {};
}