import { isAstroServerEnvironment } from "../environments.js"; import { fileURLToPath } from "node:url"; import { ASTRO_VITE_ENVIRONMENT_NAMES } from "../core/constants.js"; const VIRTUAL_CLIENT_ID = "virtual:astro:adapter-config/client"; const RESOLVED_VIRTUAL_CLIENT_ID = "\0" + VIRTUAL_CLIENT_ID; function vitePluginAdapterConfig(settings) { return { name: "astro:adapter-config", config() { const { adapter } = settings; if (adapter && adapter.entrypointResolution === "auto" && adapter.serverEntrypoint) { return { environments: { [ASTRO_VITE_ENVIRONMENT_NAMES.ssr]: { build: { rollupOptions: { input: { index: typeof adapter.serverEntrypoint === "string" ? adapter.serverEntrypoint : fileURLToPath(adapter.serverEntrypoint) } } } } } }; } }, resolveId: { filter: { id: new RegExp(`^${VIRTUAL_CLIENT_ID}$`) }, handler() { return RESOLVED_VIRTUAL_CLIENT_ID; } }, load: { filter: { id: new RegExp(`^${RESOLVED_VIRTUAL_CLIENT_ID}$`) }, handler() { if (isAstroServerEnvironment(this.environment)) { return { code: `export const internalFetchHeaders = {};` }; } const adapter = settings.adapter; const clientConfig = adapter?.client || {}; let internalFetchHeaders = {}; if (clientConfig.internalFetchHeaders) { internalFetchHeaders = typeof clientConfig.internalFetchHeaders === "function" ? clientConfig.internalFetchHeaders() : clientConfig.internalFetchHeaders; } return { code: `export const internalFetchHeaders = ${JSON.stringify(internalFetchHeaders)};` }; } } }; } export { vitePluginAdapterConfig };