diff --git a/index.ts b/index.ts index 9cd9027..ae67950 100644 --- a/index.ts +++ b/index.ts @@ -12,15 +12,16 @@ const PREFIX = "/gitlab_monitor" const server = Bun.serve({ async fetch(req) { try { - const checkPath = makeCheckPathTool(req.url, PREFIX) - // 根路由 - if (checkPath("/")) return netTool.ok("hello, glade to see you!") + // 打印当前路由 + console.log("🚀 ~ serve ~ req.url", req.url) + // 路由处理 + const { exactCheck } = makeCheckPathTool(req.url, PREFIX) // CI 监控 - if (checkPath("/ci")) return manageCIMonitorReq(req) + if (exactCheck("/ci")) return manageCIMonitorReq(req) // Gitlab 事件 - if (checkPath("/event")) return manageGitlabEventReq(req) + if (exactCheck("/event")) return manageGitlabEventReq(req) // 其他 - return netTool.ok("hello, glade to see you!") + return netTool.ok("hello, there is gitlab monitor, glade to serve you!") } catch (error: any) { // 错误处理 console.error("🚀 ~ serve ~ error", error) diff --git a/utils/pathTools.ts b/utils/pathTools.ts index ee5b56d..eafb389 100644 --- a/utils/pathTools.ts +++ b/utils/pathTools.ts @@ -1,4 +1,11 @@ -export const makeCheckPathTool = (url: string, prefix: string) => { +export const makeCheckPathTool = (url: string, prefix?: string) => { const { pathname } = new URL(url) - return (path: string) => pathname === `${prefix}/${path}` + const prefixPath = prefix ? `${prefix}/` : "" + return { + // 精确匹配 + exactCheck: (path: string) => pathname === `${prefixPath}${path}`, + // 前缀匹配 + startsWithCheck: (path: string) => + pathname.startsWith(`${prefixPath}${path}`), + } }