-
Notifications
You must be signed in to change notification settings - Fork 163
/
Copy pathindex.d.ts
94 lines (75 loc) · 2.51 KB
/
index.d.ts
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
declare namespace Fuzzysort {
interface Result {
/**
* 1 is a perfect match. 0.5 is a good match. 0 is no match.
*/
readonly score: number
/** Your original target string */
readonly target: string
highlight(highlightOpen?: string, highlightClose?: string): string
highlight<T>(callback: HighlightCallback<T>): (string | T)[]
indexes: ReadonlyArray<number>
}
interface Results extends ReadonlyArray<Result> {
/** Total matches before limit */
readonly total: number
}
interface KeyResult<T> extends Result {
/** Your original object */
readonly obj: T
}
interface KeyResults<T> extends ReadonlyArray<KeyResult<T>> {
/** Total matches before limit */
readonly total: number
}
interface KeysResult<T> extends ReadonlyArray<Result> {
/**
* 1 is a perfect match. 0.5 is a good match. 0 is no match.
*/
readonly score: number
/** Your original object */
readonly obj: T
}
interface KeysResults<T> extends ReadonlyArray<KeysResult<T>> {
/** Total matches before limit */
readonly total: number
}
interface Prepared {
/** Your original target string */
readonly target: string
}
interface Options {
/** Don't return matches worse than this (higher is faster) */
threshold?: number
/** Don't return more results than this (lower is faster) */
limit?: number
/** If true, returns all results for an empty search */
all?: boolean
}
interface KeyOptions<T> extends Options {
key: string | ((obj: T) => string) | ReadonlyArray<string>
}
interface KeysOptions<T> extends Options {
keys: ReadonlyArray<string | ((obj: T) => string) | ReadonlyArray<string>>
scoreFn?: (keysResult: KeysResult<T>) => number
}
interface HighlightCallback<T> { (match: string, index: number): T }
interface Fuzzysort {
single(search: string, target: string | Prepared): Result | null
go(search: string, targets: ReadonlyArray<string | Prepared>, options?: Options): Results
go<T>(search: string, targets: ReadonlyArray<T>, options: KeyOptions<T>): KeyResults<T>
go<T>(search: string, targets: ReadonlyArray<T>, options: KeysOptions<T>): KeysResults<T>
/**
* Help the algorithm go fast by providing prepared targets instead of raw strings
*/
prepare(target: string): Prepared
/**
* Free memory caches if you're done using fuzzysort for now
*/
cleanup(): void
}
}
declare module "fuzzysort" {
const fuzzysort:Fuzzysort.Fuzzysort
export = fuzzysort
}