mirror your GitHub repos to tangled.org automatically
1// https://nuxt.com/docs/api/configuration/nuxt-config
2export default defineNuxtConfig({
3 devServer: {
4 host: '127.0.0.1',
5 },
6 modules: [
7 '@nuxtjs/html-validator',
8 '@nuxt/scripts',
9 '@nuxt/fonts',
10 '@nuxt/image',
11 'nuxt-og-image',
12 '@nuxt/test-utils',
13 ],
14 devtools: { enabled: true },
15 css: ['~/assets/css/tokens.css', '~/assets/css/base.css'],
16 fonts: {
17 families: [
18 { name: 'JetBrains Mono', provider: 'google', weights: [400, 500, 700] },
19 { name: 'IBM Plex Sans', provider: 'google', weights: [300, 400, 600] },
20 ],
21 },
22 runtimeConfig: {
23 databaseUrl: '',
24 githubAppId: '',
25 githubAppPrivateKey: '',
26 githubAppClientId: '',
27 githubAppClientSecret: '',
28 githubWebhookSecret: '',
29 cronSecret: '',
30 workerBudgetMs: '',
31 maxPackBytes: '',
32 encryptionKey: '',
33 atprotoPrivateJwk: '',
34 sessionPassword: '',
35 public: {
36 url: '',
37 },
38 },
39 typescript: {
40 nodeTsConfig: {
41 compilerOptions: {
42 types: ['node'],
43 },
44 include: [
45 '../vite.config.ts',
46 '../test/unit',
47 '../test/utils',
48 // TODO: fix in a better way 🤦
49 './types/nitro-imports.d.ts',
50 ],
51 },
52 },
53 app: {
54 head: {
55 htmlAttrs: { lang: 'en' },
56 title: 'synchub.to',
57 link: [
58 { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },
59 { rel: 'alternate icon', href: '/favicon.ico' },
60 ],
61 },
62 },
63 future: {
64 compatibilityVersion: 4,
65 },
66 experimental: {
67 typedPages: true,
68 },
69 routeRules: {
70 '/': { noScripts: true, prerender: true },
71 '/dashboard': { ssr: false, prerender: true },
72 '/connect': { ssr: false },
73 },
74 nitro: {
75 vercel: {
76 config: {
77 crons: [
78 {
79 path: '/api/jobs/run',
80 schedule: '* * * * *',
81 },
82 ],
83 },
84 functions: {
85 maxDuration: 300,
86 },
87 },
88 typescript: {
89 tsConfig: {
90 // Pull dotted directories like `server/routes/.well-known/` into the
91 // server tsconfig; TypeScript's default include glob skips them.
92 include: ['../server/**/.*/**/*'],
93 },
94 },
95 },
96 compatibilityDate: '2024-04-03',
97 // Ensure that any HTML validation errors are treated as build errors
98 htmlValidator: {
99 failOnError: true,
100 },
101})