mirror of
https://github.com/lucide-icons/lucide.git
synced 2026-11-14 13:58:21 +00:00
31 lines
823 B
TypeScript
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;
|
|
}, {});
|
|
});
|