chore: ws readme

This commit is contained in:
Yuzu 2022-08-01 20:49:57 -05:00
parent bbe7513a14
commit ef5321cb90
2 changed files with 71 additions and 2 deletions

View File

@ -16,13 +16,13 @@ for further reading join our [Discord](https://discord.gg/zmuvzzEFz2)
## Most importantly, biscuit's rest is:
A standalone rest library that is yet easy to use and easy to host on a serverless infrastructure, it is meant to be used with biscuit's libraries.
## Example
## Example (Standalone rest)
```ts
import { DefaultRestAdapter } from "@biscuitland/rest";
import Fastify from "fastify";
const manager = new DefaultRestAdapter({
url: `http://localhost:port...`,
url: "http://localhost:port...",
token: "your token goes here",
version: 10,
});

View File

@ -0,0 +1,69 @@
# biscuit
## A brand new bleeding edge non bloated Discord library
<img align="right" src="https://raw.githubusercontent.com/oasisjs/biscuit/main/assets/icon.svg" alt="biscuit"/>
## Install (for [node18](https://nodejs.org/en/download/))
```sh-session
npm install @biscuitland/rest
yarn add @biscuitland/rest
```
for further reading join our [Discord](https://discord.gg/zmuvzzEFz2)
## Most importantly, biscuit's ws is:
A standalone gateway to interface Discord, it is meant to be used with a rest manager to send fetch requests to Discord
## Example (GW proxy)
```ts
import { DefaultWsAdapter } from "@biscuitland/ws"
import { DefaultRestAdapter } from "@biscuitland/rest"
import { GATEWAY_BOT, GatewayIntents } from "@biscuitland/api-types"
const intents = GatewayIntents.Guilds | GatewayIntents.GuildMessages | GatewayIntents.MessageContent;
const restManager = new DefaultRestAdapter({
url: "http://localhost:port..."
token: "your token goes here",
version: 10,
});
const config = await restManager.get("/gateway/bot").then(res => ({
url: res.url,
shards: res.shards,
sessionStartLimit: {
total: res.session_start_limit.total,
remaining: res.session_start_limit.remaining,
resetAfter: res.session_start_limit.reset_after,
maxConcurrency: res.session_start_limit.max_concurrency,
},
});
const wsManager = new DefaultWsAdapter({
gatewayConfig: {
token: "your token goes here",
intents: intents,
},
handleDiscordPayload(shard, data) {
if (!data.t) return;
await fetch("http://localhost:port...", {
method: "POST",
body: JSON.stringify({ shardId: shard.id, data: data }),
})
.then(res => res.text())
.catch(err => null);
},
});
wsManager.options.gatewayBot = config
wsManager.options.lastShardId = wsManager.options.gatewayBot.shards - 1
wsManager.options.totalShards = wsManager.options.gatewayBot.shards
wsManager.agent.options.totalShards = wsManager.options.gatewayBot.shards
// start a quick bot
wsManager.shards();
```