forked from
did:plc:2hcnfmbfr4ucfbjpnvjqvt3e/bbell
wip bsky client for the web & android
1import { fileURLToPath, URL } from 'node:url'
2
3import { defineConfig } from 'vite'
4import vue from '@vitejs/plugin-vue'
5import vueDevTools from 'vite-plugin-vue-devtools'
6import { visualizer } from 'rollup-plugin-visualizer'
7
8import packageJson from './package.json'
9import metadata from './public/oauth-client-metadata.json' with { type: 'json' }
10
11const SERVER_HOST = '127.0.0.1'
12const SERVER_PORT = 5173
13
14export default defineConfig({
15 plugins: [
16 vue(),
17 visualizer({ filename: '_keep/stats.html' }),
18 vueDevTools(),
19 {
20 name: 'oauth-config',
21 config(_conf, { command }) {
22 if (command === 'build') {
23 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id
24 process.env.VITE_OAUTH_REDIRECT_URI = metadata.redirect_uris[0]
25 } else {
26 const redirectUri = `http://${SERVER_HOST}:${SERVER_PORT}${new URL(metadata.redirect_uris[0]).pathname}`
27 process.env.VITE_OAUTH_CLIENT_ID =
28 `http://localhost?redirect_uri=${encodeURIComponent(redirectUri)}` +
29 `&scope=${encodeURIComponent(metadata.scope)}`
30 process.env.VITE_OAUTH_REDIRECT_URI = redirectUri
31 }
32 process.env.VITE_OAUTH_SCOPE = metadata.scope
33 },
34 },
35 ],
36 define: {
37 __APP_VERSION__: JSON.stringify(packageJson.version),
38 },
39 resolve: {
40 alias: {
41 '@': fileURLToPath(new URL('./src', import.meta.url)),
42 },
43 },
44})