x0js

A small nodejs client for interacting with the x0 API.

Usage no npm install needed!

<script type="module">
  import x0js from 'https://cdn.skypack.dev/x0js';
</script>

README

x0js

A small nodejs client for interacting with the x0 API.

Test

Getting started

  1. Install the package by running the command

    npm install x0js
    
  2. 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.

Namespaces

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.

Namespace Elements

Creating

const newPasteElement = await myfirstnamespace.elements.create({
    elementtype: 'paste',
    data: 'my first paste element',
    key: 'mycustomkey' // optinal, if not present the key will be random
});

Getting a certain element by key

const myElement = await myfirstnamespace.elements.get('customkey');

Namespace Methods

Reset Token

If your token ever gets compromised, call this method to reset your token. Returns a new namespace instance.

const myfirstnamespacewithnewtoken = await myfirstnamespace.resetToken();

Get all Elements

const allElements = await myfirstnamespace.getAll();

Delete the namespace

await myfirstnamespace.delete();

Elements

To get an instance of an existing element you can either utilize the previosly created namespace instance or do it manually.

Getting Elements

With Namespace instance created:

const elementInstance = await myfirstnamespace.elements.get('mykey');

Without:

const elementInstanceTheHardWay = await x0.elements.get(token, 'myfirstnamespace', 'mykey');

Creating Elements

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

Element Methods

(Things that you can do with your element instance)

Delete

const wasDeleteSuccess = await elementInstance.delete(token);

Get API Information

x0.serverInfo()
/* 
Output:
{
    invites,
    production,
    version,
    responseTime
}
*/