Files
lixiyu-net/pages/api/search/[keyword].ts

25 lines
740 B
TypeScript
Raw Normal View History

2024-01-06 11:47:18 +08:00
import { SearchIndex } from "@/lib/search";
import { isEmptyString } from "@/lib/utils";
import { TSearchResultItem } from "@/types/search-result";
import type { NextApiRequest, NextApiResponse } from "next";
type ResponseData = TSearchResultItem[];
export default function handler(req: NextApiRequest, res: NextApiResponse<ResponseData>) {
const searchText = req.query.keyword as string;
if (isEmptyString(searchText)) {
res.status(200).json([]);
return;
}
if (searchText.length < 10) {
res.status(200).json([]);
return;
}
2024-01-06 11:47:18 +08:00
const result: TSearchResultItem[] = SearchIndex.search(searchText).map((item) => ({
id: item.id,
title: item.title,
tags: item.tags,
}));
res.status(200).json(result);
}