Skip to content

Commit 116e37a

Browse files
authored
feat(types): support custom VitePreloadErrorEvent (#17615)
1 parent bbf001f commit 116e37a

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

packages/vite/client.d.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,3 +246,20 @@ declare module '*?inline' {
246246
const src: string
247247
export default src
248248
}
249+
250+
declare interface VitePreloadErrorEvent extends Event {
251+
payload: Error
252+
}
253+
254+
declare interface Window {
255+
addEventListener(
256+
type: 'vite:preloadError',
257+
listener: (this: Window, ev: VitePreloadErrorEvent) => unknown,
258+
options?: boolean | AddEventListenerOptions,
259+
): void
260+
removeEventListener(
261+
type: 'vite:preloadError',
262+
listener: (this: Window, ev: VitePreloadErrorEvent) => unknown,
263+
options?: boolean | EventListenerOptions,
264+
): void
265+
}

packages/vite/src/node/plugins/importAnalysisBuild.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ type FileDep = {
2626
runtime: boolean
2727
}
2828

29+
type VitePreloadErrorEvent = Event & { payload: Error }
30+
2931
/**
3032
* A flag for injected helpers. This flag will be set to `false` if the output
3133
* target is not native es - so that injected helper logic can be conditionally
@@ -145,8 +147,9 @@ function preload(
145147
return promise
146148
.then(() => baseModule())
147149
.catch((err) => {
148-
const e = new Event('vite:preloadError', { cancelable: true })
149-
// @ts-expect-error custom payload
150+
const e = new Event('vite:preloadError', {
151+
cancelable: true,
152+
}) as VitePreloadErrorEvent
150153
e.payload = err
151154
window.dispatchEvent(e)
152155
if (!e.defaultPrevented) {

0 commit comments

Comments
 (0)