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
|