A Prediction Market on the AT Protocol
at main 48 lines 1.5 kB view raw
1import "dotenv/config" 2import { defineConfig, type Plugin } from "vite" 3import react from "@vitejs/plugin-react"; 4import tailwindcss from '@tailwindcss/vite' 5import path from "path"; 6import metadata from "./src/web/public/oauth-client-metadata.json" 7 8const SERVER_HOST = "127.0.0.1"; 9const SERVER_PORT = 12520; 10 11const atProtoOAuthPlugin: Plugin = { 12 name: "atproto-oauth-plugin", 13 config: (_conf, { command }) => { 14 if (command === "build") { 15 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id; 16 process.env.VITE_OAUTH_REDIRECT_URI = metadata.redirect_uris[0]; 17 } else { 18 const redirectUri = `http://${SERVER_HOST}:${SERVER_PORT}${new URL(metadata.redirect_uris[0]!).pathname}` 19 process.env.VITE_OAUTH_CLIENT_ID = `http://localhost?redirect_uri=${encodeURIComponent(redirectUri)}&scope=${encodeURIComponent(metadata.scope)}`; 20 process.env.VITE_OAUTH_REDIRECT_URI = redirectUri; 21 } 22 process.env.VITE_OAUTH_SCOPE = metadata.scope; 23 24 } 25} 26 27export default defineConfig({ 28 server: { 29 host: SERVER_HOST, 30 port: SERVER_PORT, 31 proxy: { "/api": `http://${SERVER_HOST}:${process.env.PORT}` } 32 }, 33 root: path.resolve(__dirname, './src/web'), 34 plugins: [ 35 atProtoOAuthPlugin, 36 react(), 37 tailwindcss(), 38 ], 39 build: { 40 outDir: "../../dist", 41 emptyOutDir: true, 42 }, 43 resolve: { 44 alias: { 45 "@": path.resolve(__dirname, "./src/"), 46 } 47 }, 48});