Skip to content

⬅️ Back to Table of Contents

πŸ“„ createEventsBinder

πŸ“Š Analysis Summary

Metric Count
πŸ”§ Functions 1

πŸ“š Table of Contents

πŸ› οΈ File Location:

πŸ“‚ packages/website/src/components/lib/createEventsBinder.ts

Functions

createEventsBinder(): { register: (cb: T) => () => void; trigger: (...args: Param…

Returns: { register: (cb: T) => () => void; trigger: (...args: Parameters<T>) => void; }

Calls:

  • events.add
  • events.delete
  • events.forEach
  • cb
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));
    },
  };
}

Generated by Syntax Scribe