acceptsLanguages

import { acceptsLanguages } from "jsr:@ende/http";

function

function acceptsLanguages(request: Pick<Request, "headers">): string[]

Returns an array of languages accepted by the request, in order of preference. If there are no languages supplied in the request, then ["*"] is returned, imply any language is accepted.

request: Pick<Request, "headers">

The request to get the acceptable languages for.

Returns

An array of languages this request accepts.

Example: Usage

import { acceptsLanguages } from "@ende/http/negotiation";
import { assertEquals } from "@ende/assert";

const request = new Request("https://example.com/", {
  headers: {
    "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5",
  },
});

assertEquals(acceptsLanguages(request), ["fr-CH", "fr", "en", "de", "*"]);

function

function acceptsLanguages<T extends string = string>(request: Pick<Request, "headers">, ...langs: T[]): T | undefined

For a given set of languages, return the best match accepted in the request. If no languages match, then the function returns undefined.

request: Pick<Request, "headers">

The request to get the acceptable language for.

...langs: T[]

An array of languages to find the best matching one from.

Returns

The best matching language, if any match.

Example: Usage

import { acceptsLanguages } from "@ende/http/negotiation";
import { assertEquals } from "@ende/assert";

const request = new Request("https://example.com/", {
  headers: {
    "accept-language": "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5",
  },
});

assertEquals(acceptsLanguages(request, "en-gb", "en-us", "en"), "en");

function

function acceptsLanguages(request: Pick<Request, "headers">, ...langs: string[]): string | string[] | undefined

Source