2

I am trying to read the link header using parse-link-header in an Angular component. In my component I have:

import * as parseLinkHeader from "parse-link-header";

searchLinks: parseLinkHeader.Links;

and in ngOnInit:

console.log(response.headers.get('link'))

try {
    this.searchLinks = parseLinkHeader(response.headers.get('link'));
} catch (err) {
    console.log(err)
}

Log for response.headers.get('link') is as follows:

</entries?backwards=true&previousDate=1656925591000&previousId=10>; rel="prev",</entries?backwards=true>; rel="last",</entries?backwards=false>; rel="first",

I have a project where this code works without issues. But now I'm getting the following exception:

TypeError: (parse_link_header__WEBPACK_IMPORTED_MODULE_0___namespace_cache || parse_link_header__WEBPACK_IMPORTED_MODULE_0___namespace_cache) is not a function
    at entry-find.component.ts:291:45
    at _ZoneDelegate.invoke (zone.js:372:1)
    at Object.onInvoke (core.mjs:25457:1)
    at _ZoneDelegate.invoke (zone.js:371:1)
    at Zone.run (zone.js:134:1)
    at zone.js:1275:1
    at _ZoneDelegate.invokeTask (zone.js:406:1)
    at Object.onInvokeTask (core.mjs:25444:1)
    at _ZoneDelegate.invokeTask (zone.js:405:1)
    at Zone.runTask (zone.js:178:1)

What am I missing?

MEF
  • 122
  • 2
  • 9
  • Have you tried clearing angular cache, restarting angular dev server, opening in the incognito mode? Also you should use `getAll` I suppose to get multiple header values – Sergey Jul 21 '22 at 09:32

2 Answers2

0

Install the type definitions of parse-link-header

npm i --save-dev @types/parse-link-header

then restart your server

0

Maybe the problem comes from your import. Maybe you should use import { parseLinkHeader } from "parse-link-header"; instead.

Max
  • 794
  • 3
  • 7