Files
lucide/docs/api/icon-nodes/index.get.ts
T
2026-03-05 12:27:58 +01:00

31 lines
823 B
TypeScript

import { eventHandler, getQuery, setResponseHeader } from 'h3';
import iconNodes from '~/.vitepress/data/iconNodes';
import { IconNodeWithKeys } from '~/.vitepress/theme/types';
export default eventHandler((event) => {
const query = getQuery(event);
const withUniqueKeys = query.withUniqueKeys === 'true';
setResponseHeader(event, 'Cache-Control', 'public, max-age=86400');
setResponseHeader(event, 'Access-Control-Allow-Origin', '*');
if (withUniqueKeys) {
return iconNodes;
}
return Object.entries(iconNodes).reduce((acc, [name, iconNode]) => {
if (withUniqueKeys) {
return [name, iconNode];
}
const newIconNode = (iconNode as IconNodeWithKeys).map(([name, { key, ...attrs }]) => {
return [name, attrs];
});
acc[name] = newIconNode;
return acc;
}, {});
});