kemono2/client/vite.dev.mjs
2025-04-11 00:58:59 +02:00

66 lines
1.5 KiB
JavaScript

// @ts-check
import { defineConfig, mergeConfig } from "vite";
import { baseConfig } from "./vite.config.mjs";
import {
apiServerBaseURL,
apiServerPort,
} from "./configs/vars.mjs";
const config = defineConfig(async (configEnv) => {
/**
* @type {import("vite").UserConfig}
*/
const targetBackend = `${apiServerBaseURL}${apiServerPort ? `:${apiServerPort}` : ''}`;
const proxyConfig = {};
if (targetBackend.includes("kemono.su")) {
proxyConfig["/api/v1/creators"] = {
target: "https://kemono.su", // target the base URL for the proxy
changeOrigin: true,
secure: true,
rewrite: (path) => path.replace(/^\/api\/v1\/creators/, '/api/v1/creators.txt'),
};
}
proxyConfig["/api"] = {
target: targetBackend,
changeOrigin: true,
secure: true,
};
proxyConfig["/icons"] = {
target: targetBackend,
changeOrigin: true,
secure: true,
};
proxyConfig["/banners"] = {
target: targetBackend,
changeOrigin: true,
secure: true,
};
proxyConfig["/thumbnail"] = {
target: targetBackend,
changeOrigin: true,
secure: true,
};
proxyConfig["/data"] = {
target: targetBackend,
changeOrigin: true,
secure: true,
};
const devConfig = {
server: {
host: "0.0.0.0",
port: 3450,
strictPort: true,
proxy: proxyConfig,
allowedHosts: ["all"],
},
};
const resolvedBase = await baseConfig(configEnv);
const finalConfig = mergeConfig(resolvedBase, devConfig);
return finalConfig;
});
export default config;