@whirlybird/http
v0.0.2
Published
[![](https://github.com/apacheli/whirlybird/actions/workflows/ci.yaml/badge.svg)](https://github.com/apacheli/whirlybird/actions/workflows/ci.yaml) [![](https://canary.discord.com/api/v10/guilds/812458966357377067/widget.png)](https://discord.gg/GtyB7gmx9
Downloads
6
Readme
@whirlybird/http
Warning whirlybird is experimental software. Use at your own risk!
About
A low-level implementation for the Discord HTTP API.
Ecosystem
Discover the rest of the whirlybird ecosystem!
Installing
Using Node.js
You will need Node.js v18.x.x
or higher.
Install with the package manager of your choice:
$ npm i @whirlybird/http
$ pnpm i @whirlybird/http
$ yarn add @whirlybird/http
Enable ECMAScript modules (ESM) for your project:
{
"type": "module"
}
Using Deno
You will need Deno v1.26.x
or higher.
CLI Arguments: --allow-net
Import for GitHub:
export * from "https://github.com/apacheli/whirlybird/raw/dev/core/http/lib.js";
Getting Started
The Discord HTTP API allows you to execute most actions, such as sending and editing messages.
A simple example showing you how to send a message to a channel:
import { Http } from "@whirlybird/http";
const http = new Http(process.env["BOT_TOKEN"]);
await http.createMessage("826605722397442089", {
content: "Hello, World!",
});
Some endpoints allow you to upload files (also known as attachments). You must
use Blob
as Node.js does not support File
from the Web API.
const files = [
// Deno
{
name: "hello.png",
value: new Blob([await Deno.readFile("hello.png")]),
},
// Bun
{
name: "hello.png",
value: Bun.file("hello.png"),
},
// Node.js
{
name: "hello.png",
value: new Blob([await fs.readFile("hello.png")]),
},
];
You can create an interval to clear inactive rate limits:
const interval = setInterval(() => http.clearRateLimits(), 3.6e+6);
A client is probably not necessary for the CDN API as they are not held by the same constraints as the HTTP API. whirlybird will simply just export functions for them.
import { customEmoji } from "@whirlybird/http";
const data = await customEmoji("843384625254367245", { format: "png" });
await fs.writeFile("emoji.png", data);