The recipes.blue monorepo
recipes.blue
recipes
appview
atproto
1import { defineConfig } from 'vite'
2import react from '@vitejs/plugin-react'
3import { tanstackRouter } from '@tanstack/router-plugin/vite'
4import path from 'path'
5import metadata from "./public/oauth-client-metadata.json" with { type: 'json' };
6
7const SERVER_HOST = "127.0.0.1";
8const SERVER_PORT = 5173;
9
10// https://vite.dev/config/
11export default defineConfig({
12 plugins: [
13 tanstackRouter(),
14 react({ babel: { plugins: ['babel-plugin-react-compiler'] } }),
15 {
16 name: '_config',
17 config(_conf, { command }) {
18 if (command === 'build') {
19 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
20 process.env.VITE_OAUTH_REDIRECT_URI = metadata.redirect_uris[0];
21 } else {
22 const redirectUri = (() => {
23 const url = new URL(metadata.redirect_uris[0]);
24 return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`;
25 })();
26
27 const clientId =
28 `http://localhost` +
29 `?redirect_uri=${encodeURIComponent(redirectUri)}` +
30 `&scope=${encodeURIComponent(metadata.scope)}`;
31
32 process.env.VITE_API_SERVICE = 'http://localhost:3000';
33 process.env.VITE_DEV_SERVER_PORT = '' + SERVER_PORT;
34 process.env.VITE_OAUTH_CLIENT_ID = clientId;
35 process.env.VITE_OAUTH_REDIRECT_URI = redirectUri;
36 }
37
38 process.env.VITE_CLIENT_URI = metadata.client_uri;
39 process.env.VITE_OAUTH_SCOPE = metadata.scope;
40 },
41 },
42 ],
43 server: {
44 host: SERVER_HOST,
45 port: SERVER_PORT,
46 },
47 build: {
48 target: "esnext",
49 },
50 resolve: {
51 alias: {
52 '@': path.resolve(__dirname, './src'),
53 }
54 }
55})