pleroma-like client for Bluesky
pl.hexmani.ac
bluesky
pleroma
social-media
1import { defineConfig } from "vite";
2import solidPlugin from "vite-plugin-solid";
3import devtools from "solid-devtools/vite";
4import metadata from "./static/oauth-client-metadata.json";
5
6const SERVER_HOST = "127.0.0.1";
7const SERVER_PORT = 3000;
8
9export default defineConfig({
10 plugins: [
11 devtools(),
12 solidPlugin(),
13 {
14 // Shamelessly stolen from PDSls: https://tangled.org/@pdsls.dev/pdsls/blob/main/vite.config.ts
15 name: "oauth",
16 config(_conf, { command }) {
17 if (command === "build") {
18 process.env.VITE_OAUTH_CLIENT_ID = metadata.client_id;
19 process.env.VITE_OAUTH_REDIRECT_URL = metadata.redirect_uris[0];
20 } else {
21 const redirectUri = ((): string => {
22 const url = new URL(metadata.redirect_uris[0]);
23 return `http://${SERVER_HOST}:${SERVER_PORT}${url.pathname}`;
24 })();
25
26 const clientId =
27 `http://localhost` +
28 `?redirect_uri=${encodeURIComponent(redirectUri)}` +
29 `&scope=${encodeURIComponent(metadata.scope)}`;
30
31 process.env.VITE_DEV_SERVER_PORT = "" + SERVER_PORT;
32 process.env.VITE_OAUTH_CLIENT_ID = clientId;
33 process.env.VITE_OAUTH_REDIRECT_URL = redirectUri;
34 }
35
36 process.env.VITE_CLIENT_URI = metadata.client_uri;
37 process.env.VITE_OAUTH_SCOPE = metadata.scope;
38 },
39 },
40 ],
41 server: {
42 host: SERVER_HOST,
43 port: SERVER_PORT,
44 },
45 root: "./",
46 build: {
47 target: "esnext",
48 },
49 publicDir: "static",
50});