summaryrefslogtreecommitdiff
path: root/node_modules/bcp-47-match/index.d.ts
blob: a3dd6b518382d1dea434b806021ead20537c6512 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
export function basicFilter(
  tags: string | Tags,
  ranges: string | Ranges | undefined
): Tags
export function extendedFilter(
  tags: string | Tags,
  ranges: string | Ranges | undefined
): Tags
export function lookup(
  tags: string | Tags,
  ranges: string | Ranges | undefined
): string | undefined
/**
 * BCP-47 tag.
 */
export type Tag = string
/**
 * List of BCP-47 tags.
 */
export type Tags = Array<Tag>
/**
 * RFC 4647 range.
 */
export type Range = string
/**
 * List of RFC 4647 range.
 */
export type Ranges = Array<Range>
/**
 * An internal check.
 */
export type Check = (tag: Tag, range: Range) => boolean
/**
 * Filter: yields all tags that match a range.
 */
export type Filter = FilterOrLookup<true>
/**
 * Lookup: yields the best tag that matches a range.
 */
export type Lookup = FilterOrLookup<false>
/**
 * A check.
 */
export type FilterOrLookup<IsFilter extends boolean> = (
  tags: Tag | Tags,
  ranges?: Range | Ranges | undefined
) => IsFilter extends true ? Tags : Tag | undefined