pleroma-like client for Bluesky pl.hexmani.ac
bluesky pleroma social-media
at main 1.5 kB view raw
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});