diff --git a/.changeset/fresh-sheep-help.md b/.changeset/fresh-sheep-help.md new file mode 100644 index 000000000000..54e82776e2c6 --- /dev/null +++ b/.changeset/fresh-sheep-help.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': patch +--- + +[chore] return config from server start methods diff --git a/packages/kit/src/cli.js b/packages/kit/src/cli.js index 4451b1343f0d..8ed551c49292 100755 --- a/packages/kit/src/cli.js +++ b/packages/kit/src/cli.js @@ -61,30 +61,34 @@ prog /** @type {() => Promise} */ let close; - /** @param {import('types').ValidatedConfig} config */ - async function start(config) { + async function start() { const { dev } = await import('./core/dev/index.js'); - const { address_info, server_config, close } = await dev({ + const { server, config } = await dev({ port, host, - https, - config + https }); + const address_info = /** @type {import('net').AddressInfo} */ ( + /** @type {import('http').Server} */ (server.httpServer).address() + ); + + const vite_config = server.config; + welcome({ port: address_info.port, host: address_info.address, - https: !!(https || server_config.https), - open: first && (open || !!server_config.open), + https: !!(https || vite_config.server.https), + open: first && (open || !!vite_config.server.open), base: config.kit.paths.base, - loose: server_config.fs.strict === false, - allow: server_config.fs.allow + loose: vite_config.server.fs.strict === false, + allow: vite_config.server.fs.allow }); first = false; - return close; + return server.close; } async function relaunch() { @@ -92,9 +96,8 @@ prog relaunching = true; try { - const updated_config = await load_config(); await close(); - close = await start(updated_config); + close = await start(); if (id !== uid) relaunch(); } catch (e) { @@ -114,8 +117,7 @@ prog process.env.NODE_ENV = process.env.NODE_ENV || 'development'; - const config = await load_config(); - close = await start(config); + close = await start(); chokidar.watch('svelte.config.js', { ignoreInitial: true }).on('change', () => { if (relaunching) uid += 1; @@ -178,11 +180,10 @@ prog await check_port(port); process.env.NODE_ENV = process.env.NODE_ENV || 'production'; - const config = await load_config(); const { preview } = await import('./core/preview/index.js'); - await preview({ port, host, config, https }); + const { config } = await preview({ port, host, https }); welcome({ port, host, https, open, base: config.kit.paths.base }); } catch (error) { diff --git a/packages/kit/src/core/dev/index.js b/packages/kit/src/core/dev/index.js index fa5f7d013d61..2afd4151e055 100644 --- a/packages/kit/src/core/dev/index.js +++ b/packages/kit/src/core/dev/index.js @@ -2,7 +2,7 @@ import path from 'path'; import { svelte } from '@sveltejs/vite-plugin-svelte'; import * as vite from 'vite'; import { deep_merge } from '../../utils/object.js'; -import { print_config_conflicts } from '../config/index.js'; +import { load_config, print_config_conflicts } from '../config/index.js'; import { get_aliases, get_runtime_path } from '../utils.js'; import { create_plugin } from './plugin.js'; import * as sync from '../sync/sync.js'; @@ -14,13 +14,15 @@ const cwd = process.cwd(); * port: number, * host?: string, * https: boolean, - * config: import('types').ValidatedConfig * }} Options * @typedef {import('types').SSRComponent} SSRComponent */ /** @param {Options} opts */ -export async function dev({ port, host, https, config }) { +export async function dev({ port, host, https }) { + /** @type {import('types').ValidatedConfig} */ + const config = await load_config(); + sync.init(config); const [vite_config] = deep_merge( @@ -98,13 +100,8 @@ export async function dev({ port, host, https, config }) { const server = await vite.createServer(merged_config); await server.listen(port); - const address_info = /** @type {import('net').AddressInfo} */ ( - /** @type {import('http').Server} */ (server.httpServer).address() - ); - return { - address_info, - server_config: vite_config.server, - close: () => server.close() + server, + config }; } diff --git a/packages/kit/src/core/preview/index.js b/packages/kit/src/core/preview/index.js index b931202f18df..5cf910db557a 100644 --- a/packages/kit/src/core/preview/index.js +++ b/packages/kit/src/core/preview/index.js @@ -6,6 +6,7 @@ import sirv from 'sirv'; import { pathToFileURL } from 'url'; import { getRequest, setResponse } from '../../node/index.js'; import { installPolyfills } from '../../node/polyfills.js'; +import { load_config } from '../config/index.js'; import { SVELTE_KIT_ASSETS } from '../constants.js'; /** @typedef {import('http').IncomingMessage} Req */ @@ -28,14 +29,14 @@ const mutable = (dir) => * @param {{ * port: number; * host?: string; - * config: import('types').ValidatedConfig; * https?: boolean; * cwd?: string; * }} opts */ -export async function preview({ port, host, config, https: use_https = false }) { +export async function preview({ port, host, https: use_https = false }) { installPolyfills(); + const config = await load_config(); const { paths } = config.kit; const base = paths.base; const assets = paths.assets ? SVELTE_KIT_ASSETS : paths.base; @@ -163,7 +164,7 @@ export async function preview({ port, host, config, https: use_https = false }) return new Promise((fulfil) => { http_server.listen(port, host, () => { - fulfil(http_server); + fulfil({ server: http_server, config }); }); }); }