@atlassian/pubsub

Atlassian PubSub is the javascript client for Atlassian Frontend PubSub service.

Usage no npm install needed!

<script type="module">
  import atlassianPubsub from 'https://cdn.skypack.dev/@atlassian/pubsub';
</script>

README

Atlassian PubSub

Atlassian PubSub is the javascript client for Atlassian Frontend PubSub service.

Installation

$ yarn add @atlassian/pubsub
$ npm install @atlassian/pubsub --save

Usage

As a component developer

As a component developer, you should not instantiate a PubSubClient, instead you should let the product inject an instance in your component.

import { PubSubClient } from '@atlassian/pubsub';

class Component {
  private pubSubClient: PubSubClient;
  
  constructor(pubSubClient: PubSubClient) {
    this.pubSubClient = pubSubClient;
    this.subscribeToPubSubEvents();
  }
  
  private subscribeToPubSubEvents() {
    this.pubSubClient.on('avi:jira:updated:issue', this.onIssueUpdate);
  }
  
  onIssueUpdate = (event: string, payload) => {
    
  };
}

As a product developer

import { default as Client } from '@atlassian/pubsub';

const pubSubClient = new Client({
 product: 'STRIDE',
 url: 'https://api-private.atlassian.com/pubsub',
});

// Call join to join channels for the given context, for example for current conversations in Stride
pubSubClient.join(['ari:cloud:banana:f7ebe2c0-0309-4687-b913-41d422f2110b:conversation/b17d8707-db6e-436e-95b9-102dd1986293']);

// Call leave to leave channels (when closing a conversation for example)
pubSubClient.leave(['ari:cloud:banana:f7ebe2c0-0309-4687-b913-41d422f2110b:conversation/b17d8707-db6e-436e-95b9-102dd1986293']);

You should then make the pubSubClient available to components.