powerpointproto
slides.waow.tech
slides
1import { sveltekit } from '@sveltejs/kit/vite';
2import { defineConfig } from 'vite';
3import metadata from './static/oauth-client-metadata.json';
4
5const SERVER_HOST = '127.0.0.1';
6const SERVER_PORT = 5173;
7
8export default defineConfig({
9 server: {
10 host: SERVER_HOST,
11 port: SERVER_PORT,
12 },
13 plugins: [
14 // OAuth environment variables for dev/prod
15 {
16 name: 'oauth-env',
17 config(_conf, { command }) {
18 if (command === 'build') {
19 // Production: use the actual client metadata
20 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
21 process.env.VITE_OAUTH_REDIRECT_URI = metadata.redirect_uris[0];
22 } else {
23 // Dev mode: use loopback IP client ID format (RFC 8252)
24 const redirectUri = `http://${SERVER_HOST}:${SERVER_PORT}/`;
25 const clientId =
26 `http://localhost` +
27 `?redirect_uri=${encodeURIComponent(redirectUri)}` +
28 `&scope=${encodeURIComponent(metadata.scope)}`;
29
30 process.env.VITE_OAUTH_CLIENT_ID = clientId;
31 process.env.VITE_OAUTH_REDIRECT_URI = redirectUri;
32 }
33 process.env.VITE_OAUTH_SCOPE = metadata.scope;
34 }
35 },
36 sveltekit()
37 ]
38});