import linksData from "@/data/links.json" import type { NavLink } from "@/types/navigation" const links = linksData satisfies NavLink[] function cloneLink(link: NavLink): NavLink { return { ...link, keywords: [...link.keywords] } } export function getLinks(): NavLink[] { return links.map(cloneLink) } export function getLinksByCategory(categoryId: string): NavLink[] { return links .filter((link) => link.categoryId === categoryId) .map(cloneLink) .sort((a, b) => a.sort - b.sort) } export function getPinnedLinks(limit = 8): NavLink[] { // 首页顺序必须独立于分类内 sort,否则 Vercel 与 Figma 无法同时满足两处设计。 return links .filter((link) => link.pinned) .map(cloneLink) .sort( (a, b) => (a.pinnedSort ?? Number.MAX_SAFE_INTEGER) - (b.pinnedSort ?? Number.MAX_SAFE_INTEGER), ) .slice(0, limit) }