npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

x0js

v2.1.0

Published

A small nodejs client for interacting with the [x0](https://x0.tf/) API.

Downloads

49

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
}
*/