summaryrefslogtreecommitdiffstats
path: root/public/src/app/sdc/plugin-pubsub.ts
blob: 848c7d2c51c72c6cae87985b92f377a712bd50c1 (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
27
28
29
30
31
32
import { BasePubSub } from './base-pubsub';

declare const window: Window;

export class PluginPubSub extends BasePubSub {
  constructor(
    pluginId: string,
    parentUrl: string,
    eventsToWait?: Array<string>
  ) {
    super(pluginId);
    this.register('sdc-hub', window.parent, parentUrl);
    this.subscribe(eventsToWait);
  }

  public subscribe(eventsToWait?: Array<string>) {
    const registerData = {
      pluginId: this.clientId,
      eventsToWait: eventsToWait || []
    };

    this.notify('PLUGIN_REGISTER', registerData);
  }

  public unsubscribe() {
    const unregisterData = {
      pluginId: this.clientId
    };

    this.notify('PLUGIN_UNREGISTER', unregisterData);
  }
}