Merge pull request #1321 from guangyang1206/perf/lucide-explicit-icons-whitelist

perf(docs): replace full lucide barrel import with explicit icon whit…
This commit is contained in:
Rohan Verma 2026-04-29 00:08:27 -07:00 committed by GitHub
commit cc6da08346
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,12 +1,39 @@
import { loader } from "fumadocs-core/source";
import { icons } from "lucide-react";
import {
BookOpen,
ClipboardCheck,
Compass,
Container,
Download,
FlaskConical,
Heart,
Unplug,
Wrench,
} from "lucide-react";
import { createElement } from "react";
import { docs } from "@/.source/server";
/** Explicit whitelist of Lucide icons used in docs frontmatter / meta.json.
* Importing the full `icons` barrel would pull every Lucide icon (~1 400 SVGs)
* into the docs bundle even though only a handful are referenced. Add new icons
* here as docs pages are added.
*/
const DOCS_ICONS: Record<string, React.ComponentType> = {
BookOpen,
ClipboardCheck,
Compass,
Container,
Download,
FlaskConical,
Heart,
Unplug,
Wrench,
};
export const source = loader({
baseUrl: "/docs",
source: docs.toFumadocsSource(),
icon(icon) {
if (icon && icon in icons) return createElement(icons[icon as keyof typeof icons]);
if (icon && icon in DOCS_ICONS) return createElement(DOCS_ICONS[icon]);
},
});