Skip to content

Commit 29d43f9

Browse files
committed
feat: support async deactivate hooks, close #34
1 parent f7f7c4d commit 29d43f9

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

packages/core/src/utils/defineExtension.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,12 @@ export function defineExtension<T>(setup: (context: ExtensionContext) => T) {
2020
activate: (context: ExtensionContext) => {
2121
extensionContext.value = context
2222
return extensionScope.run(() => {
23-
activateCbs.map(fn => fn(context))
23+
activateCbs.forEach(fn => fn(context))
2424
return setup(context)
2525
})
2626
},
27-
deactivate: () => {
28-
deactivateCbs.map(fn => fn())
27+
deactivate: async () => {
28+
await Promise.allSettled(deactivateCbs.map(fn => fn()))
2929
extensionScope.stop()
3030
},
3131
}

packages/core/src/utils/onDeactivate.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
type OnDeactivateCb = () => void
1+
import type { Awaitable } from './types'
2+
3+
type OnDeactivateCb = () => Awaitable<void>
24

35
/**
46
* @internal

0 commit comments

Comments
 (0)