Files
lcbp3.np-dms.work/frontend/node_modules/fuzzysort/index.d.ts
2025-09-21 20:29:15 +07:00

95 lines
2.6 KiB
TypeScript

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
}