xo-lib

Library to connect to XO-Server

Usage no npm install needed!

<script type="module">
  import xoLib from 'https://cdn.skypack.dev/xo-lib';
</script>

README

xo-lib

Package Version License PackagePhobia Node compatibility

Library to connect to XO-Server

Install

Installation of the npm package:

> npm install --save 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.

import Xo from 'xo-lib'

// 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')
})

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

AGPL-3.0-or-later © Vates SAS