📄 createEventHook¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 6 |
| 📦 Imports | 2 |
| ⚡ Async/Await Patterns | 2 |
| 📐 Interfaces | 1 |
| 📑 Type Aliases | 5 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/shared/createEventHook/index.ts
📦 Imports¶
| Name | Source |
|---|---|
IsAny |
../utils/types |
tryOnScopeDispose |
../tryOnScopeDispose |
Async/Await Patterns¶
| Type | Function | Await Expressions | Promise Chains |
|---|---|---|---|
| promise-chain | createEventHook |
none | Promise.all |
| promise-chain | trigger |
none | Promise.all |
Functions¶
createEventHook(): EventHookReturn<T>¶
Utility for creating event hooks
See: https://vueuse.org/createEventHook
Tags: @__NO_SIDE_EFFECTS__
Raw JSDoc
Calls:
fns.deletefns.clearfns.addofftryOnScopeDispose (from ../tryOnScopeDispose)Promise.allArray.from(fns).mapfn
Code
export function createEventHook<T = any>(): EventHookReturn<T> {
const fns: Set<Callback<T>> = new Set()
const off = (fn: Callback<T>) => {
fns.delete(fn)
}
const clear = () => {
fns.clear()
}
const on = (fn: Callback<T>) => {
fns.add(fn)
const offFn = () => off(fn)
tryOnScopeDispose(offFn)
return {
off: offFn,
}
}
const trigger: EventHookTrigger<T> = (...args) => {
return Promise.all(Array.from(fns).map(fn => fn(...args)))
}
return {
on,
off,
trigger,
clear,
}
}
Internal helpers¶
Declared inside another function in this file.
off(fn: Callback<T>): void¶
Parameters:
fnCallback<T>
Returns: void
Calls:
fns.delete
clear(): void¶
Returns: void
Calls:
fns.clear
on(fn: Callback<T>): { off: () => void; }¶
Parameters:
fnCallback<T>
Returns: { off: () => void; }
Calls:
fns.addofftryOnScopeDispose (from ../tryOnScopeDispose)
Code
offFn(): void¶
Returns: void
Calls:
off
trigger(args: Parameters<Callback<T>>): Promise<void[]>¶
Parameters:
argsParameters<Callback<T>>
Returns: Promise<void[]>
Calls:
Promise.allArray.from(fns).mapfn
Interfaces¶
EventHook<T = any>¶
Interface Code
Properties¶
| Name | Type | Optional | Description |
|---|---|---|---|
on |
EventHookOn<T> |
✗ | not shown |
off |
EventHookOff<T> |
✗ | not shown |
trigger |
EventHookTrigger<T> |
✗ | not shown |
clear |
() => void |
✗ | not shown |
Type Aliases¶
Callback<T>¶
type Callback<T> = IsAny<T> extends true
? (...param: any) => void
: (
[T] extends [void]
? (...param: unknown[]) => void
: [T] extends [any[]]
? (...param: T) => void
: (...param: [T, ...unknown[]]) => void
);
EventHookOn<T = any>¶
EventHookOff<T = any>¶
EventHookTrigger<T = any>¶
EventHookReturn<T>¶
Generated by Syntax Scribe