UNPKG

astro

Version:

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

48 lines (47 loc) 1.59 kB
function defineConfig(config) { return config; } function getViteConfig(userViteConfig, inlineAstroConfig = {}) { return async ({ mode, command }) => { const cmd = command === "serve" ? "dev" : "build"; const [ { mergeConfig }, { loadOrCreateNodeLogger }, { resolveConfig, createSettings }, { createVite }, { runHookConfigSetup, runHookConfigDone }, { createRoutesList }, { getPrerenderDefault } ] = await Promise.all([ import("vite"), import("../core/logger/load.js"), import("../core/config/index.js"), import("../core/create-vite.js"), import("../integrations/hooks.js"), import("../core/routing/create-manifest.js"), import("../prerender/utils.js") ]); const { astroConfig: config } = await resolveConfig(inlineAstroConfig, cmd); const logger = await loadOrCreateNodeLogger(config, inlineAstroConfig); let settings = await createSettings(config, inlineAstroConfig.logLevel, userViteConfig.root); settings = await runHookConfigSetup({ settings, command: cmd, logger }); const routesList = await createRoutesList( { settings }, logger, { dev: true } ); settings.buildOutput = getPrerenderDefault(settings.config) ? "static" : "server"; const viteConfig = await createVite( {}, { routesList, settings, command: cmd, logger, mode, sync: false } ); await runHookConfigDone({ settings, logger }); return mergeConfig(viteConfig, userViteConfig); }; } export { defineConfig, getViteConfig };