Skip to content

Repository files navigation

npmnpmTypeScriptCI

Reactive XComponent API

Reactive XComponent is a javaScript client API that allows you to interact with microservices generated with XComponent software.

Install

install the latest version of the API:

npm : npm i reactivexcomponent.js --save

yarn : yarn add reactivexcomponent.js

Usage

Import in JS :

importxcomponentfrom'reactivexcomponent.js';

Import in TS :

import{XComponent}from'reactivexcomponent.js';constxcomponent=newXComponent();

Set/Get LogLevel of the API :

import{LogLevel}from'reactivexcomponent.js';xcomponent.setLogLevel(LogLevel.DEBUG);constlogLevel=xcomponent.getLogLevel();

Connect to XComponent WebSocket Bridge :

constserverUrl='ws://localhost:443';xcomponent.connect(serverUrl).then(connection=>{// Here goes your code that uses the connection});

Get the list of available APIs on the WebSocket Bridge :

connection.getXcApiList().then(apiList=>{apiList.forEach(api=>console.log('Available Api : '+api));});

Create a Session on a specific API :

constxcApiName="HelloWorldApi.xcApi"connection.createSession(xcApiName).then(session=>{// Here goes your code that uses the session});

Variables used in the following examples :

constcomponentName="HelloWorld";conststateMachineName="HelloWorldManager";conststateMachineResponse="HelloWorldResponse";constjsonMessage={"Name": "Test"};constmessageType="XComponent.HelloWorld.UserObject.SayHello";

Get the Snapshot using a Session :

session.getSnapshot(componentName,stateMachineName).then(snapshot=>{snapshot.forEach(snapshotElement=>console.log('Element : '+snapshotElement));});

Get StateMachine updates through an Observable using a Session :

constupdates$=session.getStateMachineUpdates(componentName,stateMachineResponse);

Send a message to all instances of a state machine using a Session :

// You can use the method canSend to check if the session is alowed the send this event to this state machine.if(session.canSend(componentName,stateMachineName,messageType)){session.send(componentName,stateMachineName,messageType,jsonMessage);}

Send a message to a specific state machine instance using a StateMachineInstance or StateMachineRef :

stateMachineInstance.send(messageType,jsonMessage);

Build from source

Download the source code and execute the following commands:

yarn install
yarn build 

xcomponentapi.js is built in the lib folder.

Run unit tests

Execute the following command:

yarn test 

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request

License

Apache License V2

Releases

Packages

Used by

Contributors

Languages