📄 createEventsBinder.ts
¶
📊 Analysis Summary¶
Metric | Count |
---|---|
🔧 Functions | 1 |
📊 Variables & Constants | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/website/src/components/lib/createEventsBinder.ts
Variables & Constants¶
Name | Type | Kind | Value | Exported |
---|---|---|---|---|
events |
Set<T> |
const | new Set<T>() |
✗ |
Functions¶
`createEventsBinder(): {¶
register: (cb: T) => () => void;
trigger: (...args: Parameters
Code
export function createEventsBinder<T extends (...args: any[]) => void>(): {
register: (cb: T) => () => void;
trigger: (...args: Parameters<T>) => void;
} {
const events = new Set<T>();
return {
register(cb: T): () => void {
events.add(cb);
return (): void => {
events.delete(cb);
};
},
trigger(...args: Parameters<T>): void {
events.forEach(cb => cb(...args));
},
};
}
- Return Type:
{ register: (cb: T) => () => void; trigger: (...args: Parameters<T>) => void; }
- Calls:
events.add
events.delete
events.forEach
cb