From bc851e31d88cb26a2cba3fa46763bcd368e8df36 Mon Sep 17 00:00:00 2001 From: John Marlo Lapiz <91590512+lazuee@users.noreply.github.com> Date: Thu, 23 Jan 2025 13:20:02 +0000 Subject: [PATCH] fix: change ResolvedConfig type to interface to allow extending it (#19210) --- packages/vite/rollup.dts.config.ts | 4 +- packages/vite/src/node/config.ts | 161 +++++++++++++++-------------- 2 files changed, 83 insertions(+), 82 deletions(-) diff --git a/packages/vite/rollup.dts.config.ts b/packages/vite/rollup.dts.config.ts index 58c3f9e6b1edb4..d909755844ac1a 100644 --- a/packages/vite/rollup.dts.config.ts +++ b/packages/vite/rollup.dts.config.ts @@ -51,10 +51,10 @@ const identifierReplacements: Record> = { PluginContext$1: 'rollup.PluginContext', MinimalPluginContext$1: 'rollup.MinimalPluginContext', TransformPluginContext$1: 'rollup.TransformPluginContext', - TransformResult$2: 'rollup.TransformResult', + TransformResult$1: 'rollup.TransformResult', }, esbuild: { - TransformResult$1: 'esbuild_TransformResult', + TransformResult$2: 'esbuild_TransformResult', TransformOptions$1: 'esbuild_TransformOptions', BuildOptions$1: 'esbuild_BuildOptions', }, diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index cc697229940a3d..493e1b7ec60dc0 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -549,86 +549,87 @@ export interface InlineConfig extends UserConfig { envFile?: false } -export type ResolvedConfig = Readonly< - Omit< - UserConfig, - | 'plugins' - | 'css' - | 'json' - | 'assetsInclude' - | 'optimizeDeps' - | 'worker' - | 'build' - | 'dev' - | 'environments' - | 'server' - | 'preview' - > & { - configFile: string | undefined - configFileDependencies: string[] - inlineConfig: InlineConfig - root: string - base: string - /** @internal */ - decodedBase: string - /** @internal */ - rawBase: string - publicDir: string - cacheDir: string - command: 'build' | 'serve' - mode: string - isWorker: boolean - // in nested worker bundle to find the main config - /** @internal */ - mainConfig: ResolvedConfig | null - /** @internal list of bundle entry id. used to detect recursive worker bundle. */ - bundleChain: string[] - isProduction: boolean - envDir: string - env: Record - resolve: Required & { - alias: Alias[] - } - plugins: readonly Plugin[] - css: ResolvedCSSOptions - json: Required - esbuild: ESBuildOptions | false - server: ResolvedServerOptions - dev: ResolvedDevEnvironmentOptions - /** @experimental */ - builder: ResolvedBuilderOptions | undefined - build: ResolvedBuildOptions - preview: ResolvedPreviewOptions - ssr: ResolvedSSROptions - assetsInclude: (file: string) => boolean - logger: Logger - createResolver: (options?: Partial) => ResolveFn - optimizeDeps: DepOptimizationOptions - /** @internal */ - packageCache: PackageCache - worker: ResolvedWorkerOptions - appType: AppType - experimental: ExperimentalOptions - environments: Record - /** - * The token to connect to the WebSocket server from browsers. - * - * We recommend using `import.meta.hot` rather than connecting - * to the WebSocket server directly. - * If you have a usecase that requires connecting to the WebSocket - * server, please create an issue so that we can discuss. - * - * @deprecated - */ - webSocketToken: string - /** @internal */ - fsDenyGlob: AnymatchFn - /** @internal */ - safeModulePaths: Set - /** @internal */ - additionalAllowedHosts: string[] - } & PluginHookUtils -> +export interface ResolvedConfig + extends Readonly< + Omit< + UserConfig, + | 'plugins' + | 'css' + | 'json' + | 'assetsInclude' + | 'optimizeDeps' + | 'worker' + | 'build' + | 'dev' + | 'environments' + | 'server' + | 'preview' + > & { + configFile: string | undefined + configFileDependencies: string[] + inlineConfig: InlineConfig + root: string + base: string + /** @internal */ + decodedBase: string + /** @internal */ + rawBase: string + publicDir: string + cacheDir: string + command: 'build' | 'serve' + mode: string + isWorker: boolean + // in nested worker bundle to find the main config + /** @internal */ + mainConfig: ResolvedConfig | null + /** @internal list of bundle entry id. used to detect recursive worker bundle. */ + bundleChain: string[] + isProduction: boolean + envDir: string + env: Record + resolve: Required & { + alias: Alias[] + } + plugins: readonly Plugin[] + css: ResolvedCSSOptions + json: Required + esbuild: ESBuildOptions | false + server: ResolvedServerOptions + dev: ResolvedDevEnvironmentOptions + /** @experimental */ + builder: ResolvedBuilderOptions | undefined + build: ResolvedBuildOptions + preview: ResolvedPreviewOptions + ssr: ResolvedSSROptions + assetsInclude: (file: string) => boolean + logger: Logger + createResolver: (options?: Partial) => ResolveFn + optimizeDeps: DepOptimizationOptions + /** @internal */ + packageCache: PackageCache + worker: ResolvedWorkerOptions + appType: AppType + experimental: ExperimentalOptions + environments: Record + /** + * The token to connect to the WebSocket server from browsers. + * + * We recommend using `import.meta.hot` rather than connecting + * to the WebSocket server directly. + * If you have a usecase that requires connecting to the WebSocket + * server, please create an issue so that we can discuss. + * + * @deprecated + */ + webSocketToken: string + /** @internal */ + fsDenyGlob: AnymatchFn + /** @internal */ + safeModulePaths: Set + /** @internal */ + additionalAllowedHosts: string[] + } & PluginHookUtils + > {} // inferred ones are omitted export const configDefaults = Object.freeze({