forked from
juliet.paris/streamplace-spa
minimal streamplace frontend
1import tailwindcss from "@tailwindcss/vite";
2import { defineConfig } from "vite";
3import lucidePreprocess from "vite-plugin-lucide-preprocess";
4import solidPlugin from "vite-plugin-solid";
5
6import metadata from "./public/oauth-client-metadata.json";
7
8const SERVER_HOST = "127.0.0.1";
9const SERVER_PORT = 5173;
10
11export default defineConfig({
12 plugins: [
13 lucidePreprocess(),
14 tailwindcss(),
15 solidPlugin(),
16 {
17 name: "oauth",
18 config(_conf, { command }) {
19 if (command === "build") {
20 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
21 process.env.VITE_OAUTH_REDIRECT_URL = metadata.redirect_uris[0];
22 } else {
23 const redirectUri = `http://${SERVER_HOST}:${SERVER_PORT}/`;
24
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_URL = redirectUri;
32 }
33
34 process.env.VITE_CLIENT_URI = metadata.client_uri;
35 process.env.VITE_OAUTH_SCOPE = metadata.scope;
36 },
37 },
38 ],
39 server: {
40 host: SERVER_HOST,
41 port: SERVER_PORT,
42 },
43 build: {
44 target: "esnext",
45 },
46});