JSPM

@spotware/connect-ts-api

4.6.1
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 7
    • Score
      100M100P100Q39315F

    Connect API in TypeScript

    Package Exports

    • @spotware/connect-ts-api

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@spotware/connect-ts-api) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    connect-ts-api

    Build Status

    A connector SDK for Spotware Connect Open API in TypeScript

    API v2.x.x

    This api provides a layer to send and receive messages using Spotware Open API Protobuf protocol. For a detailed messages structure description check this link

    installation

    npm i spotware/connect-ts-api

    Usage

    import {Connect} from 'connect-ts-api';
    import {encoder} from 'my-encoder-module'; //For more information and Interfaces check the docs
    import {adapter} from 'my-adapter-module'; //For more information and Interfaces check the docs
    
    const connect = new Connect({
        encodeDecode: encoder,
        adapter: adapter
    });
    
    connect.start();
    
    connect.sendCommand(990, {}) //Send Hello event
        .then(res => { 
            //Work with response
        }).catch(err => {
            //Handle error
        });

    Low level API: Communication layer structure

    The main interfaces for subscribing callbacks that will be handled after sending a certain request to the server through an open connection and handling errors.

    interface IMultiResponseParams {
        payloadType: number;
        payload: Object;
        onMessage: (data) => boolean;
        onError?: (err: ISendRequestError) => void;
    }
    
    interface ISendRequestError {
        errorCode: SendRequestError,
        description: string
    }
    
    enum SendRequestError {
        ADAPTER_DISCONNECTED = 1,
        ADAPTER_DROP = 2,
        ADAPTER_ERROR = 3
    }
    payloadType
    • The message ID that will identify on the server the type of serialized message.
    payload
    • The serialized message to be sent.
    onMessage
    • Callback that will handle all received responses that match the request. Must return boolean to indicate that the message was successfully handled
    onError
    • [optional] Callback that will be executed if the request could not be sent. Called with error code and description as parameters.

    sendMultiresponseCommand
    sendMultiresponseCommand(multiResponseParams: IMultiResponseParams): void

    Sends one single command to server. Subscribes onMessage to incoming responses and push events and unsubscribes as soon as onMessage returns true. If onError is executed before onMessage can handle any incoming message, the onMessage callback will be unsubscribed.

    sendGuaranteedMultiresponseCommand
    sendGuaranteedMultiresponseCommand(multiResponseParams: IMultiResponseParams): void;

    The same as sendMultiresponseCommand but onError will be handled only with errorCode 3. If the Error is due to codes 1 or 2 before onMessage can handle any incoming message, the request will be cached and re-sent as soon as a new connection is open, and no onError will be called.

    Contributions

    Pull requests must address at least one open issue.