@ztl-uwu/nuxt-content
Version:
Write your content inside your Nuxt app
17 lines (16 loc) • 761 B
JavaScript
import { defineEventHandler } from "h3";
import { useRuntimeConfig } from "#imports";
export default defineEventHandler(async (event) => {
const { serverSearchContent, splitPageIntoSections } = await import("../search.js");
const MiniSearch = await import("minisearch").then((m) => m.default);
const runtimeConfig = useRuntimeConfig();
const { ignoredTags = [], filterQuery, indexed, options } = runtimeConfig.public.content.search;
const files = await serverSearchContent(event, filterQuery);
const sections = files.map((page) => splitPageIntoSections(page, { ignoredTags })).flat();
if (indexed) {
const miniSearch = new MiniSearch(options);
miniSearch.addAll(sections);
return JSON.stringify(miniSearch);
}
return sections;
});