chore: migrate unicorn profile pic mapping to Rollup plugin

This commit is contained in:
Corbin Crutchley
2022-09-25 08:49:34 -07:00
parent 1ef7a44c3b
commit 9df6f90a5e
7 changed files with 107 additions and 63 deletions

View File

@@ -1,7 +1,9 @@
import type { VercelRequest, VercelResponse } from "@vercel/node";
import exportedIndex from "../searchIndex";
import unicornProfilePicMap from "../public/unicorn-profile-pic-map";
import Fuse from "fuse.js";
import type { PostInfo } from "../src/types/PostInfo";
const myIndex = Fuse.parseIndex(exportedIndex.index);
@@ -18,11 +20,19 @@ const fuse = new Fuse(
myIndex
);
const unicornProfilePicObj = {};
for (const picMapItem of unicornProfilePicMap) {
unicornProfilePicObj[picMapItem.id] = picMapItem;
}
export default async (req: VercelRequest, res: VercelResponse) => {
// TODO: `pickdeep` only required fields
const searchStr = req?.query?.query as string;
if (!searchStr) return [];
if (Array.isArray(searchStr)) return [];
const items = fuse.search(searchStr).map((item) => item.item);
res.send(items);
const posts = fuse.search(searchStr).map((item) => item.item as PostInfo);
const unicornProfilePicMap = posts.flatMap((post) =>
post.authorsMeta.map((authorMeta) => unicornProfilePicObj[authorMeta.id])
);
res.send({ posts, totalPosts: posts.length, unicornProfilePicMap });
};