Keycloak

Форк
0
/
parse-links.ts 
28 строк · 827.0 Байт
1
export type Links = {
2
  prev?: Record<string, string>;
3
  next?: Record<string, string>;
4
};
5

6
export function parseLinks(response: Response): Links {
7
  const linkHeader = response.headers.get("link");
8

9
  if (!linkHeader) {
10
    throw new Error("Attempted to parse links, but no header was found.");
11
  }
12

13
  const links = linkHeader.split(/,\s*</);
14
  return links.reduce<Links>((acc: Links, link: string) => {
15
    const matcher = link.match(/<?([^>]*)>(.*)/);
16
    if (!matcher) return {};
17
    const linkUrl = matcher[1];
18
    const rel = matcher[2].match(/\s*(.+)\s*=\s*"?([^"]+)"?/);
19
    if (rel) {
20
      const link: Record<string, string> = {};
21
      for (const [key, value] of new URL(linkUrl).searchParams.entries()) {
22
        link[key] = value;
23
      }
24
      acc[rel[2] as keyof Links] = link;
25
    }
26
    return acc;
27
  }, {});
28
}
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.