diff --git a/nuxt.config.ts b/nuxt.config.ts index 0d311c1b..752fc84f 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -30,7 +30,7 @@ export default defineNuxtConfig({ prerender: { failOnError: false, crawlLinks: true, - routes: ['/', '/blog', '/packages', '/api/search.txt', '/rss.xml', '/rss.xml', '/blog/rss.xml', '/learn/rss.xml', '/explore/rss.xml', '/build/rss.xml', '/robots.txt', '/sitemap.xml'], + routes: ['/', '/blog', '/packages', '/api/search.txt', '/api/content/packages.json', '/rss.xml', '/rss.xml', '/blog/rss.xml', '/learn/rss.xml', '/explore/rss.xml', '/build/rss.xml', '/robots.txt', '/sitemap.xml'], }, routeRules: { '/api/github/**': { diff --git a/server/api/content/packages.json.ts b/server/api/content/packages.json.ts new file mode 100644 index 00000000..ec95eb7c --- /dev/null +++ b/server/api/content/packages.json.ts @@ -0,0 +1,15 @@ +import { serverQueryContent } from '#content/server' + +export default defineEventHandler(async (event) => { + const packages = await serverQueryContent(event).where({ _path: /^\/packages\// }).find() + + return packages.map((pkg) => { + return { + title: pkg.title, + description: pkg.description, + path: pkg._path, + url: `https://unjs.io${pkg._path}`, + npm: pkg.npm, + } + }) +})