diff --git a/.gitignore b/.gitignore index 9d94b86..2768c68 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ dist yarn.lock node_modules -public .vercel .firebase .next diff --git a/.vercelignore b/.vercelignore index 6f724c2..b5c90d5 100644 --- a/.vercelignore +++ b/.vercelignore @@ -1,4 +1,3 @@ dist test .next -public diff --git a/components/builder-helper.tsx b/components/builder-helper.tsx index c0af083..3837b4d 100644 --- a/components/builder-helper.tsx +++ b/components/builder-helper.tsx @@ -1,4 +1,4 @@ -import badgeList from '../static/.meta/badges.json' +import badgeList from '../public/.meta/badges.json' const examples = [...badgeList.live, ...badgeList.static].reduce((accu, curr) => { return (accu as any).concat(Object.entries(curr.examples)) diff --git a/next.config.js b/next.config.js index 0c66c5f..765f002 100644 --- a/next.config.js +++ b/next.config.js @@ -1,10 +1,31 @@ /** @type {import('next').NextConfig} */ + +const badgeList = require('./public/.meta/badges.json') + const nextConfig = { reactStrictMode: true, + experimental: { appDir: true, forceSwcTransforms: true, - } + }, + + async rewrites() { + const liveBadgeRedirects = badgeList.live.map(badge => { + return { + source: `/${badge.id}/:path*`, + destination: `/api/${badge.id}/:path*`, + } + }) + const staticBadgeRedirects = [{ + source: `/badge/:path*`, + destination: `/api/badge/:path*`, + }] + + const badgeRedirects = liveBadgeRedirects.concat(staticBadgeRedirects) + + return badgeRedirects + }, } module.exports = nextConfig diff --git a/pages-/index.tsx b/pages-/index.tsx index 4069d09..846c232 100644 --- a/pages-/index.tsx +++ b/pages-/index.tsx @@ -4,7 +4,7 @@ import BadgenTitle from '../components/badgen-title' // import TopBar from '../components/top-bar' import Intro from '../components/home-intro' import Footer from '../components/footer' -import examples from '../static/.meta/badges.json' +import examples from '../public/.meta/badges.json' const Index = () => { const [tab, setTab] = useState('live') diff --git a/pages/index.tsx b/pages/index.tsx index 6f6523e..7b0f8ac 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -26,7 +26,7 @@ import { useState, useEffect } from 'react' import BadgenTitle from '../components/badgen-title' import Intro from '../components/home-intro' import Footer from '../components/footer' -import examples from '../static/.meta/badges.json' +import examples from '../public/.meta/badges.json' export default function Index () { const [tab, setTab] = useState('live') diff --git a/static/badgen-logo-b.svg b/public/static/badgen-logo-b.svg similarity index 100% rename from static/badgen-logo-b.svg rename to public/static/badgen-logo-b.svg diff --git a/static/badgen-logo-w.svg b/public/static/badgen-logo-w.svg similarity index 100% rename from static/badgen-logo-w.svg rename to public/static/badgen-logo-w.svg diff --git a/static/badgen-logo.svg b/public/static/badgen-logo.svg similarity index 100% rename from static/badgen-logo.svg rename to public/static/badgen-logo.svg diff --git a/static/favicon.png b/public/static/favicon.png similarity index 100% rename from static/favicon.png rename to public/static/favicon.png diff --git a/static/index.css b/public/static/index.css similarity index 100% rename from static/index.css rename to public/static/index.css diff --git a/static/sponsors/sentry.svg b/public/static/sponsors/sentry.svg similarity index 100% rename from static/sponsors/sentry.svg rename to public/static/sponsors/sentry.svg diff --git a/static/sponsors/zeit.svg b/public/static/sponsors/zeit.svg similarity index 100% rename from static/sponsors/zeit.svg rename to public/static/sponsors/zeit.svg diff --git a/tools/gen-examples.ts b/tools/gen-examples.ts index 1aee6f9..34c6f18 100644 --- a/tools/gen-examples.ts +++ b/tools/gen-examples.ts @@ -4,11 +4,11 @@ import { loadBadgeMeta } from '../libs/badge-list' const rel = (...args) => path.resolve(__dirname, ...args) -async function main () { +;(async function main () { const badgeMeta = await loadBadgeMeta() - await fse.outputJson(rel('../static/.meta/badges.json'), badgeMeta) -} - -main() + await fse.outputJson(rel('../public/.meta/badges.json'), badgeMeta, { + spaces: 2 + }) +})() process.on('unhandledRejection', console.error) diff --git a/vercel.json b/vercel.json index 08ebc30..2c36a61 100644 --- a/vercel.json +++ b/vercel.json @@ -2,8 +2,7 @@ "version": 2, "regions": ["all"], "routes": [ - { "src": "/docs/(.*)", "status": 301, "headers": { "Location": "/$1" } }, - { "src": "/(?[^/]+).*", "dest": "/api/$name.ts" } + { "src": "/docs/(.*)", "status": 301, "headers": { "Location": "/$1" } } ], "env": { "GH_TOKENS": "@badgen-gh-tokens",