Files
xen-orchestra/packages/xo-lib
2018-08-31 14:30:58 +02:00
..
2018-02-09 17:56:03 +01:00
2018-08-31 14:30:58 +02:00
2018-08-19 16:46:34 +02:00
2018-08-31 14:30:58 +02:00

xo-lib Build Status

Library to connect to XO-Server.

Install

Installation of the npm package:

npm install --save xo-lib

Then require the package:

import Xo from 'xo-lib'

Usage

If the URL is not provided and the current environment is a web browser, the location of the current page will be used.

// Connect to XO.
const xo = new Xo({ url: 'https://xo.company.tld' })

// Let's start by opening the connection.
await xo.open()

// Must sign in before being able to call any methods (all calls will
// be buffered until signed in).
await xo.signIn({
  email: 'admin@admin.net',
  password: 'admin'
})

console('signed as', xo.user)

The credentials can also be passed directly to the constructor:

const xo = Xo({
  url: 'https://xo.company.tld',
  credentials: {
    email: 'admin@admin.net',
    password: 'admin',
  }
})

xo.open()

xo.on('authenticated', () => {
  console.log(xo.user)
})

If the URL is not provided and the current environment is a web browser, the location of the current page will be used.

Connection

await xo.open()

console.log('connected')

Disconnection

xo.close()

console.log('disconnected')

Method call

const token = await xo.call('token.create')

console.log('Token created', token)

Status

The connection status is available through the status property which is open, connecting or closed.

console.log('%s to xo-server', xo.status)

Current user

Information about the user account used to sign in is available through the user property.

console.log('Current user is', xo.user)

This property is null when the status is not connected.

Events

xo.on('open', () => {
  console.log('connected')
})
xo.on('closed', () => {
  console.log('disconnected')
})
xo.on('notification', function (notif) {
  console.log('notification:', notif.method, notif.params)
})
xo.on('authenticated', () => {
  console.log('authenticated as', xo.user)
})

xo.on('authenticationFailure', () => {
  console.log('failed to authenticate')
})

Development

# Install dependencies
> npm install

# Run the tests
> npm test

# Continuously compile
> npm run dev

# Continuously run the tests
> npm run dev-test

# Build for production (automatically called by npm install)
> npm run build

Contributions

Contributions are very welcomed, either on the documentation or on the code.

You may:

  • report any issue you've encountered;
  • fork and create a pull request.

License

ISC © Vates SAS