web components for a integrable atproto based guestbook
1import { defineConfig } from 'vite'; 2import { svelte } from '@sveltejs/vite-plugin-svelte'; 3import metadata from './public/client-metadata.json'; 4 5const SERVER_HOST = '127.0.0.1'; 6const SERVER_PORT = 5173; 7 8export default defineConfig({ 9 plugins: [ 10 svelte(), 11 { 12 name: 'oauth', 13 config(_conf, { command }) { 14 if (command === 'build') { 15 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id; 16 process.env.VITE_OAUTH_REDIRECT_URL = metadata.redirect_uris[0]; 17 } else { 18 const redirectUri = ((): string => { 19 const url = new URL(metadata.redirect_uris[0]); 20 return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`; 21 })(); 22 23 const clientId = 24 `http://localhost` + 25 `?redirect_uri=${encodeURIComponent(redirectUri)}` + 26 `&scope=${encodeURIComponent(metadata.scope)}`; 27 28 process.env.VITE_DEV_SERVER_PORT = '' + SERVER_PORT; 29 process.env.VITE_OAUTH_CLIENT_ID = clientId; 30 process.env.VITE_OAUTH_REDIRECT_URL = redirectUri; 31 } 32 33 process.env.VITE_CLIENT_URI = metadata.client_uri; 34 process.env.VITE_OAUTH_SCOPE = metadata.scope; 35 }, 36 }, 37 ], 38 server: { 39 host: SERVER_HOST, 40 port: SERVER_PORT, 41 }, 42}); 43