UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

49 lines (48 loc) 1.78 kB
import { createRouteManifest } from "../core/routing/index.js"; import { createDevelopmentManifest } from "../vite-plugin-astro-server/plugin.js"; function defineConfig(config) { return config; } function getViteConfig(userViteConfig, inlineAstroConfig = {}) { return async ({ mode, command }) => { const cmd = command === "serve" ? "dev" : "build"; const [ fs, { mergeConfig }, { createNodeLogger }, { resolveConfig, createSettings }, { createVite }, { runHookConfigSetup, runHookConfigDone }, { astroContentListenPlugin } ] = await Promise.all([ import("node:fs"), import("vite"), import("../core/config/logging.js"), import("../core/config/index.js"), import("../core/create-vite.js"), import("../integrations/hooks.js"), import("./vite-plugin-content-listen.js") ]); const logger = createNodeLogger(inlineAstroConfig); const { astroConfig: config } = await resolveConfig(inlineAstroConfig, cmd); let settings = await createSettings(config, userViteConfig.root); settings = await runHookConfigSetup({ settings, command: cmd, logger }); const manifest = await createRouteManifest({ settings }, logger); const devSSRManifest = createDevelopmentManifest(settings); const viteConfig = await createVite( { plugins: config.legacy.collections ? [ // Initialize the content listener astroContentListenPlugin({ settings, logger, fs }) ] : [] }, { settings, command: cmd, logger, mode, sync: false, manifest, ssrManifest: devSSRManifest } ); await runHookConfigDone({ settings, logger }); return mergeConfig(viteConfig, userViteConfig); }; } export { defineConfig, getViteConfig };