-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathastro.config.mjs
More file actions
66 lines (58 loc) · 1.62 KB
/
astro.config.mjs
File metadata and controls
66 lines (58 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import preact from '@astrojs/preact';
import sitemap from '@astrojs/sitemap';
import vercel from '@astrojs/vercel/serverless';
import tailwindcss from '@tailwindcss/vite';
import icon from 'astro-icon';
import { defineConfig, fontProviders } from 'astro/config';
import postgres from 'postgres';
import { visualizer } from 'rollup-plugin-visualizer';
import { loadEnv } from 'vite';
// eslint-disable-next-line no-undef
const { DATABASE_URL } = loadEnv(process.env.NODE_ENV, process.cwd(), '');
// gets redirects from the database
const pg = postgres(DATABASE_URL, { ssl: true });
const redirects = await pg`SELECT slug, destination, status FROM redirects;`;
export default defineConfig({
site: 'https://diced.sh',
integrations: [icon({ iconDir: 'src/icons' }), sitemap(), preact()],
redirects: {
...redirects.reduce((acc, { slug, destination, status }) => {
acc[`/go/${slug}`] = {
status,
destination,
};
return acc;
}, {}),
},
experimental: {
fonts: [
{
provider: fontProviders.google(),
name: 'JetBrains Mono',
cssVariable: '--font-jetbrains-mono',
},
{
provider: fontProviders.google(),
name: 'Inter',
cssVariable: '--font-inter',
},
],
},
vite: {
plugins: [
tailwindcss(),
// eslint-disable-next-line no-undef
...(process.env.ANALYZE === 'true'
? [
visualizer({
filename: 'stats.html',
open: true,
gzipSize: true,
brotliSize: true,
}),
]
: []),
],
},
adapter: vercel(),
});