Unfollow tool for Bluesky
1import tailwindcss from "@tailwindcss/vite";
2import { defineConfig } from "vite";
3import solidPlugin from "vite-plugin-solid";
4
5import metadata from "./public/client-metadata.json";
6
7const SERVER_HOST = "127.0.0.1";
8const SERVER_PORT = 13213;
9
10export default defineConfig({
11 plugins: [
12 tailwindcss(),
13 solidPlugin(),
14
15 // Injects OAuth-related variables
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 = ((): string => {
24 const url = new URL(metadata.redirect_uris[0]);
25 return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`;
26 })();
27
28 const clientId =
29 `http://localhost` +
30 `?redirect_uri=${encodeURIComponent(redirectUri)}` +
31 `&scope=${encodeURIComponent(metadata.scope)}`;
32
33 process.env.VITE_DEV_SERVER_PORT = "" + SERVER_PORT;
34 process.env.VITE_OAUTH_CLIENT_ID = clientId;
35 process.env.VITE_OAUTH_REDIRECT_URL = redirectUri;
36 }
37
38 process.env.VITE_CLIENT_URI = metadata.client_uri;
39 process.env.VITE_OAUTH_SCOPE = metadata.scope;
40 },
41 },
42 ],
43 server: {
44 host: SERVER_HOST,
45 port: SERVER_PORT,
46 },
47 build: {
48 target: "esnext",
49 },
50});