@open-condo/bridge
TypeScript icon, indicating that this package has built-in type declarations

1.8.1 • Public • Published

@open-condo/bridge NPM

A library that allows the client of your mini-application to communicate with the main user's condo client on different devices, using a common bridge API

Table of contents

Installation
Usage
API Reference

Installation

To install package simply run the following command if you're using npm as your package manager:

npm i @open-condo/bridge

or it's yarn alternative

yarn add @open-condo/bridge

Usage

You can access and use the bridge as follows:

import bridge from '@open-condo/bridge'

// Send event
bridge.send('<event-name>')

// Send event with args
bridge.send('<event-name>', { someArg: 'some value' })

// Send event and process response
bridge.send('<event-name>', { someArg: 'some value' })
    .then((response) => {
        // successful state processing
    }).catch((error) => {
        // error processing        
    })

You can also use the bridge in the browser environment:

<script src="https://unpkg.com/@open-condo/bridge/dist/browser.min.js"></script>
<script>
    condoBridge.send('<event-name>')
</script>

API Reference

bridge.send(method[, params])

Sends a message to main client and returns the Promise object with response data

Parameters

  • method required The method of Condo Bridge
  • params optional Object containing method args. Make sure you are not sending sensitive data!

Example

// Sending event to client
bridge
  .send('CondoWebAppResizeWindow', { height: 800 })
  .then(data => {
    // Handling response
    console.log(data.height)
  })
  .catch(error => {
    // Handling an error
  });

Since bridge.send returns a Promise you can use async / await flow for handling events:

try {
    const response = await bridge.send('CondoWebAppResizeWindow', { height: 800 })
    // Handling response
    console.log(response.height)
} catch (err) {
    // Handling error
}

bridge.subscribe(listener)

Subscribes listener to all incoming events and responses.

Parameters

  • listener required Function handling events

Example

// Subscribing to receive events
bridge.subscribe((event) => {
    const { type, data } = event
    if (type === 'CondoWebAppResizeWindowResult') {
        // Processing event result
        console.log(data.height)
    } else if (type === 'CondoWebAppResizeWindowError') {
        // Processing event error
        const { errorType, errorMessage } = data
    }
})

bridge.unsubscribe(listener)

Unsubscribes a function from event listening

Parameters

  • listener required Function handling events

Example

import bridge from "@open-condo/bridge";

const myListener = (event) => {
    logger.info(event)
}

// Subscribing
bridge.subscribe(myListener)

// Unsubscribing
bridge.unsubscribe(myListener)

bridge.supports(method)

Checks if the main client (runtime environment) supports this method

Parameters

  • method required The method of Condo Bridge

Example

// Checking if event is available
if (bridge.supports('CondoWebAppResizeWindow')) {
    // Then sending actual event
    bridge.send('CondoWebAppResizeWindow', { height: document.body.scrollHeight })
}

Package Sidebar

Install

npm i @open-condo/bridge

Weekly Downloads

21

Version

1.8.1

License

MIT

Unpacked Size

132 kB

Total Files

46

Last publish

Collaborators

  • open-condo-software