更新 @kevisual/api 版本至 0.0.27,升级依赖 @kevisual/router 至 0.0.62,@kevisual/types 至 0.0.12,@types/node 至 25.0.10,并在 QueryProxy 中添加 Fuse.js 以增强路由查询功能
This commit is contained in:
@@ -3,6 +3,7 @@ import { QueryRouterServer, App, Route } from '@kevisual/router';
|
||||
import { filter } from '@kevisual/js-filter'
|
||||
import { EventEmitter } from 'eventemitter3';
|
||||
import { initApi } from './router-api-proxy.ts';
|
||||
import Fuse from 'fuse.js';
|
||||
|
||||
export const RouteTypeList = ['api', 'context', 'worker', 'page'] as const;
|
||||
export type RouterViewItemInfo = RouterViewApi | RouterViewContext | RouterViewWorker | RouteViewPage;
|
||||
@@ -395,7 +396,17 @@ export class QueryProxy {
|
||||
}
|
||||
const routes = this.router.routes.filter(filterFn || (() => true));
|
||||
if (query) {
|
||||
return filter(routes, query);
|
||||
if (query.toLocaleUpperCase().startsWith('WHERE')) {
|
||||
return filter(routes, query);
|
||||
} else {
|
||||
const fuse = new Fuse(routes, {
|
||||
keys: ['path', 'key', 'description'],
|
||||
threshold: 0.4,
|
||||
});
|
||||
let findsRoutes = fuse.search(query);
|
||||
const resultRoutes = findsRoutes.map(r => r.item);
|
||||
return resultRoutes;
|
||||
}
|
||||
}
|
||||
return routes;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user