Skip to content

Commit

Permalink
feat(vite-node): support import.meta.hot.off for vite 5 (#4315)
Browse files Browse the repository at this point in the history
  • Loading branch information
bluwy committed Oct 16, 2023
1 parent 8ac9f8b commit 01b1c55
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions packages/vite-node/src/hmr/hmr.ts
Expand Up @@ -288,6 +288,28 @@ export function createHotContext(
addToMap(newListeners)
},

// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
// @ts-ignore added in vite 5
off<T extends string>(
event: T,
cb: (payload: InferCustomEventPayload<T>) => void,
) {
const removeFromMap = (map: Map<string, any[]>) => {
const existing = map.get(event)
if (existing === undefined)
return

const pruned = existing.filter(l => l !== cb)
if (pruned.length === 0) {
map.delete(event)
return
}
map.set(event, pruned)
}
removeFromMap(maps.customListenersMap)
removeFromMap(newListeners)
},

send<T extends string>(event: T, data?: InferCustomEventPayload<T>): void {
maps.messageBuffer.push(JSON.stringify({ type: 'custom', event, data }))
sendMessageBuffer(runner, emitter)
Expand Down

0 comments on commit 01b1c55

Please sign in to comment.