Welcome to mirror list, hosted at ThFree Co, Russian Federation.

event_hub_factory.js « helpers « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 08cfe40b52db6b17cb39b0af9b8adc4e68604330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import mitt from 'mitt';

export default () => {
  const emitter = mitt();

  const originalEmit = emitter.emit;

  emitter.once = (event, handler) => {
    const wrappedHandler = evt => {
      handler(evt);
      emitter.off(event, wrappedHandler);
    };
    emitter.on(event, wrappedHandler);
  };

  emitter.emit = (event, args = []) => {
    originalEmit(event, args);
  };

  emitter.$on = emitter.on;
  emitter.$once = emitter.once;
  emitter.$off = emitter.off;
  emitter.$emit = emitter.emit;

  return emitter;
};