Skip to content

⬅️ Back to Table of Contents

📄 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) => void; }`

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