Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

xo-lib

0.9.0 • Public • Published

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

Install

npm i xo-lib

DownloadsWeekly Downloads

381

Version

0.9.0

License

ISC

Last publish

Collaborators

  • avatar
  • avatar