更新 @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:
2026-01-26 01:59:16 +08:00
parent ee261f5c27
commit 969fb31351
3 changed files with 47 additions and 26 deletions

View File

@@ -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;
}