A small nodejs client for interacting with the x0 API. Read the full Documentation.
-
Install the package by running the command
npm install x0js
-
Require or import and use the package
const x0js = require('x0js') const x0 = new x0js.Client()
There are essentially 2 things that are important when working with the x0 API: Namespaces and Elements. Lets get started by creating our first namespace.
const myfirstnamespace = await x0.namespace.create('myfirstnamespace');
If you already have a namespace and token, you would instantiate a new namespace like so: (simply pass in the name of the existing namespace, followed by its token)
const myalreadyexistingnamespace = await x0.namespace.create('myalreadyexistingnamespace', 'kfghdklsjghsneuriiuvherub')
This namespace instance now gives us the possibility to do all our following operations without having to enter our token every time. Make sure to save and store your token (myalreadyexistingnamespace.token) so you can instantiate the namespace again later on.
const newPasteElement = await myfirstnamespace.elements.create({
elementtype: 'paste',
data: 'my first paste element',
key: 'mycustomkey' // optinal, if not present the key will be random
});
const myElement = await myfirstnamespace.elements.get('customkey');
If your token ever gets compromised, call this method to reset your token. Returns a new namespace instance.
const myfirstnamespacewithnewtoken = await myfirstnamespace.resetToken();
const allElements = await myfirstnamespace.getAll();
await myfirstnamespace.delete();
To get an instance of an existing element you can either utilize the previosly created namespace instance or do it manually.
With Namespace instance created:
const elementInstance = await myfirstnamespace.elements.get('mykey');
Without:
const elementInstanceTheHardWay = await x0.elements.get(token, 'myfirstnamespace', 'mykey');
With Namespace instance created:
const myNewElement = await myfirstnamespace.elements.create({
elementtype: 'paste',
data: 'test',
key: 'mykey'
});
Without:
const myNewElementTheHardWay = await x0.elements.create(token, {
elementtype: 'paste',
namespace: 'myfirstnamespace',
data: 'test',
key: 'mykey'
});
(Things that you can do with your element instance)
const wasDeleteSuccess = await elementInstance.delete(token);
x0.serverInfo()
/*
Output:
{
invites,
production,
version,
responseTime
}
*/