xo-lib
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.