From 2d2f2e590eeeef502042a14ea9fe00627d92d256 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Mon, 29 Aug 2022 19:15:58 +0800 Subject: [PATCH] fix(types): explicitly set Vite hooks' `this` to `void` (#9885) --- packages/vite/src/node/plugin.ts | 11 +++++++++-- packages/vite/src/node/plugins/html.ts | 1 + packages/vite/src/node/preview.ts | 11 +++++++---- packages/vite/src/node/server/index.ts | 1 + 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/vite/src/node/plugin.ts b/packages/vite/src/node/plugin.ts index a30006ec7915f5..8cc78df892d7df 100644 --- a/packages/vite/src/node/plugin.ts +++ b/packages/vite/src/node/plugin.ts @@ -55,7 +55,10 @@ export interface Plugin extends RollupPlugin { /** * Apply the plugin only for serve or build, or on certain conditions. */ - apply?: 'serve' | 'build' | ((config: UserConfig, env: ConfigEnv) => boolean) + apply?: + | 'serve' + | 'build' + | ((this: void, config: UserConfig, env: ConfigEnv) => boolean) /** * Modify vite config before it's resolved. The hook can either mutate the * passed-in config directly, or return a partial config object that will be @@ -66,6 +69,7 @@ export interface Plugin extends RollupPlugin { */ config?: ObjectHook< ( + this: void, config: UserConfig, env: ConfigEnv ) => UserConfig | null | void | Promise @@ -73,7 +77,9 @@ export interface Plugin extends RollupPlugin { /** * Use this hook to read and store the final resolved vite config. */ - configResolved?: ObjectHook<(config: ResolvedConfig) => void | Promise> + configResolved?: ObjectHook< + (this: void, config: ResolvedConfig) => void | Promise + > /** * Configure the vite server. The hook receives the {@link ViteDevServer} * instance. This can also be used to store a reference to the server @@ -126,6 +132,7 @@ export interface Plugin extends RollupPlugin { */ handleHotUpdate?: ObjectHook< ( + this: void, ctx: HmrContext ) => Array | void | Promise | void> > diff --git a/packages/vite/src/node/plugins/html.ts b/packages/vite/src/node/plugins/html.ts index eb20b2d0af205b..a3df68ca539602 100644 --- a/packages/vite/src/node/plugins/html.ts +++ b/packages/vite/src/node/plugins/html.ts @@ -846,6 +846,7 @@ export interface IndexHtmlTransformContext { } export type IndexHtmlTransformHook = ( + this: void, html: string, ctx: IndexHtmlTransformContext ) => IndexHtmlTransformResult | void | Promise diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index c81772a8672682..bebd212217d384 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -62,10 +62,13 @@ export interface PreviewServer { printUrls(): void } -export type PreviewServerHook = (server: { - middlewares: Connect.Server - httpServer: http.Server -}) => (() => void) | void | Promise<(() => void) | void> +export type PreviewServerHook = ( + this: void, + server: { + middlewares: Connect.Server + httpServer: http.Server + } +) => (() => void) | void | Promise<(() => void) | void> /** * Starts the Vite server in preview mode, to simulate a production deployment diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index 925bd96c5661b1..f51dfb8b19401d 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -151,6 +151,7 @@ export interface FileSystemServeOptions { } export type ServerHook = ( + this: void, server: ViteDevServer ) => (() => void) | void | Promise<(() => void) | void>