6.0.1 • Published 5 years ago

reactivexcomponent.js v6.0.1

Weekly downloads
6
License
Apache-2.0
Repository
github
Last release
5 years ago

npm.io npm npm Build Status TypeScript

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 :

import xcomponent from 'reactivexcomponent.js';

Import in TS :

import { XComponent } from 'reactivexcomponent.js';
const xcomponent = new XComponent();

Set/Get LogLevel of the API :

import { LogLevel } from 'reactivexcomponent.js';

xcomponent.setLogLevel(LogLevel.DEBUG);
const logLevel = xcomponent.getLogLevel();

Connect to XComponent WebSocket Bridge :

const serverUrl = '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 :

const xcApiName = "HelloWorldApi.xcApi"

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

Variables used in the following examples :

const componentName = "HelloWorld";
const stateMachineName = "HelloWorldManager";
const stateMachineResponse = "HelloWorldResponse";

const jsonMessage = { "Name": "Test" };
const messageType = "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 :

const updates$ = 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

6.0.1

5 years ago

6.0.0

5 years ago

3.1.9

6 years ago

3.1.8

6 years ago

3.1.7

6 years ago

3.1.6

6 years ago

3.1.5

6 years ago

3.1.4

6 years ago

3.1.3

6 years ago

3.1.2

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.1

7 years ago

3.0.0

7 years ago

3.0.0-alpha1

7 years ago

2.2.0

7 years ago

2.1.1

7 years ago

2.1.0

7 years ago

2.0.3

7 years ago

2.0.2

7 years ago

2.0.1

7 years ago

2.0.0

7 years ago

1.1.12

7 years ago

1.1.11

7 years ago

1.1.10

7 years ago

1.1.9

7 years ago

1.1.8

7 years ago

1.1.7

7 years ago

1.1.6

7 years ago

1.1.5

7 years ago

1.1.4

7 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago