|
|
@ -3,7 +3,7 @@ import { SearchService } from "./SearchService"; |
|
|
|
import Fuse = require('fuse.js'); |
|
|
|
|
|
|
|
export class FuseSearchService<T> implements SearchService<T> { |
|
|
|
// private readonly _fuse: Fuse<T, Object>;
|
|
|
|
private readonly _fuse: Fuse<T, Object>; |
|
|
|
private readonly _params: Fuse.FuseOptions<T>; |
|
|
|
|
|
|
|
constructor(keys: string[], params: Fuse.FuseOptions<T> = { |
|
|
@ -19,13 +19,14 @@ export class FuseSearchService<T> implements SearchService<T> { |
|
|
|
}) { |
|
|
|
this._params = params; |
|
|
|
this._params.keys = keys; |
|
|
|
// this._fuse = new Fuse(list, this._params);
|
|
|
|
this._fuse = new Fuse([], this._params); |
|
|
|
} |
|
|
|
|
|
|
|
search<T>(list: T[], searchTerm: string): T[] { |
|
|
|
const fuse = new Fuse<T, Fuse.FuseOptions<any>>(list, this._params); |
|
|
|
search(list: T[], searchTerm: string): T[] { |
|
|
|
// const fuse = new Fuse<T, Fuse.FuseOptions<any>>(list, this._params);
|
|
|
|
this._fuse.setCollection(list); |
|
|
|
// fuse.search(searchTerm);
|
|
|
|
return fuse.search(searchTerm) as T[]; |
|
|
|
return this._fuse.search(searchTerm) as T[]; |
|
|
|
} |
|
|
|
|
|
|
|
} |