Giter Club home page Giter Club logo

ptero-client's Introduction

Pterodactyl API Client

Ptero-client is wrapper around the official API for the Pterodactyl panel using axios. It is designed for ease of use and type safety. All the responses are strongly typed using Typescript. The library also includes the option to import useful types for the user to work with.

This project will be published as a npm-package once all client endpoints are covered.


Guide

To get started, install the package:

npm install ptero-client

Then you will need to import the Class and instanciate it with the URL of your panel and your client API key:

import { PteroClient } from 'ptero-client';

const client = new PteroClient({
  hostURL: 'https://panel.example.com/',
  apiKey: 'your-api-key',
});

After that you are ready to use it for example like this. Make sure to catch Errors as all the methods will throw if they fail to succeed at what they are meant to do:

try {
  const { data, meta } = await client.backups.list('fbb9784b');

  console.log(data[0]);
  console.log(meta.backup_count);
} catch (err) {
  console.error(err);
}

If a function throws, you will get an Error that is as accurate and descriptive as possible.

Here is an example Error from trying to create a backup on a server that has already reached its limit:

PterodactylError: Status: 400 (TooManyBackupsException): Cannot create a new backup, this server has reached its limit of 0 backups.

Addionally, every method that is available to the consumer has documentation comments that describe:

  • what the method does
  • what the method returns
  • what the parameters are
  • how to use it (including an example)

This gives you documentation of the available features directly in your IDE.

It is strongly recommended to use this library with Typescript because it is specifically made with maximum type-safety in mind. Additionally you get nice auto-complete and we all know that this is a good selling point for TS.

If you want to contribute, suggest features or just talk to me about anything, consider joining my Discord Server, open an issue or email me!

ptero-client's People

Contributors

defnot001 avatar

Stargazers

 avatar

Watchers

 avatar

ptero-client's Issues

Received invalid data from the API (nests)

code

const result = await app.nests.list();

result:

⨯ Error: Received invalid data from the API! Please report this error to the developers!
[
  {
    "received": "list",
    "code": "invalid_literal",
    "expected": "nest",
    "path": [
      "object"
    ],
    "message": "Invalid literal value, expected \"nest\""
  },
  {
    "code": "invalid_type",
    "expected": "object",
    "received": "undefined",
    "path": [
      "attributes"
    ],
    "message": "Required"
  }
]

Recieved invalid data

code

await ptero.servers.list();

error

ValidationError: Received invalid data from the API! Please report this error to the developers!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.