mirror of
https://github.com/discordeno/discordeno.git
synced 2026-09-17 08:47:22 +00:00
fix(website): fix typedoc configuration (#3733)
* Fix typedoc CI crashse And adapt the website to its new output * Revert /tsconfig.json changes * Update footer
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Discordeno
|
||||
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/website/static/img/logo.png" height="150px" />
|
||||
|
||||
Discord API library for [Node.JS](https://nodejs.org), [Deno](https://deno.land) & [Bun](https://bun.sh/)
|
||||
|
||||
[](https://discord.com/invite/5vBgXk3UcZ)
|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||

|
||||
|
||||
Discordeno is actively maintained to guarantee **excellent performance, latest features, and ease of use.**
|
||||
|
||||
- **Simple, Efficient, and Lightweight**: Discordeno is lightweight, simple to use, and adaptable.
|
||||
- By default: No caching.
|
||||
- **Functional API**:
|
||||
- The functional API eliminates the challenges of extending built-in classes and inheritance while ensuring overall simple but performant code.
|
||||
- **Cross Runtime**: Supports the Node.js, Deno, and Bun runtimes.
|
||||
- **Standalone components**: Discordeno offers the option to have practically any component of a bot as a separate
|
||||
piece, including standalone REST, gateways, custom caches, and more.
|
||||
- **Flexibility/Scalability:** Remove any properties, if your bot doesn't need them. For instance, remove `Channel.topic` if your bot doesn't require it. You may save GBs of RAM in this way. A few lines of code are all that are needed to accomplish this for any property on any object.
|
||||
|
||||
### Custom Cache
|
||||
|
||||
Have your cache setup in any way you like. Redis, PGSQL or any cache layer you would like.
|
||||
|
||||
## Links
|
||||
|
||||
- [Website](https://discordeno.js.org/)
|
||||
- [Documentation](https://doc.deno.land/https/deno.land/x/discordeno/mod.ts)
|
||||
- [Discord](https://discord.com/invite/5vBgXk3UcZ)
|
||||
+16
-13
@@ -1,8 +1,17 @@
|
||||
# Standalone WS / Proxy WS
|
||||
# Discordeno WS
|
||||
|
||||
This WS service is meant for ADVANCED DEVELOPERS ONLY!
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/website/static/img/logo.png" height="150px" />
|
||||
|
||||
## Benefits
|
||||
Discord API library for [Node.JS](https://nodejs.org), [Deno](https://deno.land) & [Bun](https://bun.sh/)
|
||||
|
||||
[](https://discord.com/invite/5vBgXk3UcZ)
|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||

|
||||
|
||||
> [!WARNING]
|
||||
> Using a Standalone / Proxy WS is mean for advanced developers only
|
||||
|
||||
Standalone WebSocket to connect to the Discord API.
|
||||
|
||||
- **Zero Downtime Updates**:
|
||||
|
||||
@@ -48,14 +57,8 @@ This WS service is meant for ADVANCED DEVELOPERS ONLY!
|
||||
- Take full advantage of all your CPU cores by using workers to spread the load. Control how many shards per worker
|
||||
and how many workers to maximize efficiency!
|
||||
|
||||
## Usage
|
||||
## Links
|
||||
|
||||
```ts
|
||||
createGatewayManager({
|
||||
// TODO: (docs) Fill this out
|
||||
})
|
||||
```
|
||||
|
||||
## API/Docs
|
||||
|
||||
// TODO: (docs) Fill this out. List all props/methods.
|
||||
- [Website](https://discordeno.js.org/)
|
||||
- [Documentation](https://doc.deno.land/https/deno.land/x/discordeno/mod.ts)
|
||||
- [Discord](https://discord.com/invite/5vBgXk3UcZ)
|
||||
|
||||
@@ -712,7 +712,7 @@ export interface GatewayManager extends Required<CreateGatewayManagerOptions> {
|
||||
* Edits the bot status in all shards that this gateway manages.
|
||||
*
|
||||
* @param data The status data to set the bots status to.
|
||||
* @returns Promise<void>
|
||||
* @returns nothing
|
||||
*/
|
||||
editBotStatus: (data: StatusUpdate) => Promise<void>
|
||||
/**
|
||||
@@ -720,7 +720,7 @@ export interface GatewayManager extends Required<CreateGatewayManagerOptions> {
|
||||
*
|
||||
* @param shardId The shard id to edit the status for.
|
||||
* @param data The status data to set the bots status to.
|
||||
* @returns Promise<void>
|
||||
* @returns nothing
|
||||
*/
|
||||
editShardStatus: (shardId: number, data: StatusUpdate) => Promise<void>
|
||||
/**
|
||||
|
||||
+15
-1
@@ -1,6 +1,14 @@
|
||||
# Discordeno Rest
|
||||
|
||||
A standalone and server-less REST module with functionality of REST, independently.
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/website/static/img/logo.png" height="150px" />
|
||||
|
||||
Discord API library for [Node.JS](https://nodejs.org), [Deno](https://deno.land) & [Bun](https://bun.sh/)
|
||||
|
||||
[](https://discord.com/invite/5vBgXk3UcZ)
|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||

|
||||
|
||||
A standalone REST module with functionality of REST, independently.
|
||||
|
||||
- Easily host on any serverless infrastructure.
|
||||
- Easy to use and setup with Cloudflare Workers (FREE for 100K requests per day!)
|
||||
@@ -14,3 +22,9 @@ A standalone and server-less REST module with functionality of REST, independent
|
||||
- Seamless updates! When you want to update and reboot the bot, you could potentially lose tons of messages or
|
||||
responses that are in queue. Using this you could restart your bot without ever worrying about losing any responses.
|
||||
- Scalability! Scalability! Scalability!
|
||||
|
||||
## Links
|
||||
|
||||
- [Website](https://discordeno.js.org/)
|
||||
- [Documentation](https://doc.deno.land/https/deno.land/x/discordeno/mod.ts)
|
||||
- [Discord](https://discord.com/invite/5vBgXk3UcZ)
|
||||
|
||||
+6
-143
@@ -1,151 +1,14 @@
|
||||
# Discordeno
|
||||
# Discordeno Utils
|
||||
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/site/static/img/logo.png" height="150px">
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/website/static/img/logo.png" height="150px" />
|
||||
|
||||
Discord API library for [Deno](https://deno.land)
|
||||
|
||||
Discordeno follows [semantic versioning](https://semver.org/)
|
||||
Discord API library for [Node.JS](https://nodejs.org), [Deno](https://deno.land) & [Bun](https://bun.sh/)
|
||||
|
||||
[](https://discord.com/invite/5vBgXk3UcZ)
|
||||

|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
Discordeno is actively maintained to guarantee **excellent performance and ease.**
|
||||
|
||||
- **Simple, Efficient, and Lightweight**: Discordeno is lightweight, simple to use, and adaptable. By default, no
|
||||
caching.
|
||||
- **Functional API**: The functional API eliminates the challenges of extending built-in classes and inheritance while
|
||||
ensuring overall simple but performant code.
|
||||
- **Cross Runtime**: Supports the Node.js and Deno runtimes.
|
||||
- **Standalone components**: Discordeno offers the option to have practically any component of a bot as a separate
|
||||
piece, including standalone REST, gateways, custom caches, and more.
|
||||
- **Plugins:** Designed to allow you to overwrite any portion of the code with your own code. Never go through the
|
||||
hassle of maintaining your fork in order to acquire something that is specifically tailored to your requirements.
|
||||
Plugins may be used for nearly anything; for instance, we have a few authorised plugins.
|
||||
|
||||
- A caching plugin that makes anything cacheable.
|
||||
- A plugin for sweepers that allows them to periodically clear the cache.
|
||||
- The permission plugin internally verifies any missing permissions before sending a call to the Discord API to
|
||||
prevent the client from receiving a Discord global ban.
|
||||
|
||||
- **Flexibility:** You may easily delete an object's attributes if your bot doesn't require them. For instance, you
|
||||
shouldn't be required to keep `Channel.topic` if your bot doesn't require it. You may save GBs of RAM in this way. A
|
||||
few lines of code are all that are needed to accomplish this for any property on any object.
|
||||
|
||||
### REST
|
||||
|
||||
- Freedom from 1 hour downtimes due to invalid requests
|
||||
- By lowering the maximum downtime to 10 minutes, Discordeno will prevent your bot from being down for an hour.
|
||||
- Freedom from global rate limit errors
|
||||
- As your bot grows, you want to handle global rate limits better. Shards don't communicate fast enough to truly
|
||||
handle it properly so this allows 1 rest handler across the entire bot.
|
||||
- You may really run numerous instances of your bot on different hosts, all of which will connect to the same REST
|
||||
server.
|
||||
- REST does not rest!
|
||||
- Separate rest guarantees that your queued requests will continue to be processed even if your bot breaks for
|
||||
whatever reason.
|
||||
- Seamless updates! There's a chance you'll lose a lot of messages or replies that are waiting to be given when you
|
||||
wish to update and restart the bot. You may restart your bot using this technique and never have to worry about
|
||||
losing any answers.
|
||||
- Single source of contact to Discord API
|
||||
- As a result, you will be able to send requests to Discord from any location, even a bot dashboard. You are no longer
|
||||
need to interact with your bot processes in order to submit a request or do anything else. Your bot process should
|
||||
be freed up to handle bot events.
|
||||
- Scalability! Scalability! Scalability!
|
||||
|
||||
### Gateway
|
||||
|
||||
- **Zero Downtime Updates:**
|
||||
- A few seconds are needed to update your bot. When using conventional sharding, you must restart in addition to going
|
||||
through a 1/5s rate-limited process of identifying all of your shards. As WS processing has been relocated to a
|
||||
proxy process, you may resume the bot code right away without worrying about any delays. Normally, if you had a bot
|
||||
that was spread across 200,000 servers, restarting it after making a simple modification would take 20 minutes.
|
||||
- **Zero Downtime Resharding:**
|
||||
- At various periods in time, Discord stops allowing your bot to be added to new servers. Consider 150 shards
|
||||
operating on 150,000 servers, for instance. Your shards may support a maximum of 150 \* 2500 = 375,000 servers. Your
|
||||
bot will be unable to join new servers once it reaches this point until it re-shards.
|
||||
- DD proxy provides 2 types of re-sharding. Automated and manual. You can also have both.
|
||||
- Automated: This system will automatically begin a Zero-downtime resharding process behind the scenes when you
|
||||
reach 80% of your maximum servers allowed by your shards. For example, since 375,000 was the max, at 300,000 we
|
||||
would begin re-sharding behind the scenes with ZERO DOWNTIME.
|
||||
- 80% of maximum servers reached (The % of 80% is customizable.)
|
||||
- Identify limits have room to allow re-sharding. (Also customizable)
|
||||
- Manual: You can also trigger this manually should you choose.
|
||||
- **Horizontal Scaling:**
|
||||
- The bot may be scaled horizontally thanks to the proxy mechanism. When your business grows significantly, you have
|
||||
two options: you can either keep investing money to upgrade your server or you may expand horizontally by purchasing
|
||||
numerous more affordable servers. The proxy enables WS handling on a totally other system.
|
||||
- **No Loss Restarts:**
|
||||
- Without the proxy mechanism, you would typically lose numerous events while restarting a bot. Users could issue
|
||||
instructions or send messages that are not screened. As your bot population increases, this amount grows sharply.
|
||||
Users who don't receive the automatic roles or any other activities your bot should do may join. You may keep
|
||||
restarting your bot thanks to the proxy technology without ever losing any events. While your bot is unavailable,
|
||||
events will be added to a queue (the maximum size of the queue is configurable), and once the bot is back online,
|
||||
the queue will start processing all of the events.
|
||||
- **Controllers:**
|
||||
- You have complete control over everything inside the proxy thanks to the controller aspect. To simply override the
|
||||
handler, you may supply a function. For instance, you may simply give a method to override a specific function if
|
||||
you want it to behave differently rather than forking and maintaining your fork.
|
||||
- **Clustering With Workers:**
|
||||
- Utilize all of your CPU cores to their greatest potential by distributing the workload across employees. To enhance
|
||||
efficiency, manage how many employees and shards there are each worker!
|
||||
|
||||
### Custom Cache
|
||||
|
||||
Have your cache setup in any way you like. Redis, PGSQL or any cache layer you would like.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Minimal Example
|
||||
|
||||
Here is a minimal example to get started with:
|
||||
|
||||
```typescript
|
||||
import { createBot, Intents, startBot } from 'https://deno.land/x/discordeno@13.0.0/mod.ts'
|
||||
|
||||
const bot = createBot({
|
||||
token: process.env.DISCORD_TOKEN,
|
||||
intents: Intents.Guilds | Intents.GuildMessages,
|
||||
events: {
|
||||
ready() {
|
||||
console.log('Successfully connected to gateway')
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
// Another way to do events
|
||||
bot.events.messageCreate = function (b, message) {
|
||||
// Process the message here with your command handler.
|
||||
}
|
||||
|
||||
await startBot(bot)
|
||||
```
|
||||
|
||||
### Tools
|
||||
|
||||
This library is not intended for beginners, however if you still want to utilise it, check out these excellent official
|
||||
and unofficial templates:
|
||||
|
||||
**Templates**
|
||||
|
||||
- [Discordeno Template (official)](https://github.com/discordeno/discordeno/tree/main/template)
|
||||
- [Serverless Slash Commands Template (official)](https://github.com/discordeno/serverless-deno-deploy-template)
|
||||
- [`create-discordeno-bot` (WIP, unoffical)](https://github.com/Reboot-Codes/create-discordeno-bot/)
|
||||
- [Add Your Own!](https://github.com/discordeno/discordeno/pulls)
|
||||
|
||||
**Frameworks**
|
||||
|
||||
- [Amethyst Framework](https://github.com/AmethystFramework/framework)
|
||||
- [Add Your Own!](https://github.com/discordeno/discordeno/pulls)
|
||||
|
||||
**Plugins**
|
||||
|
||||
- [Cache Plugin](plugins/cache)
|
||||
- [Fileloader Plugin](plugins/fileloader)
|
||||
- [Helpers Plugin](plugins/helpers)
|
||||
- [Permissions Plugin](plugins/permissions)
|
||||
Types used in Discordeno. Including Discord types
|
||||
|
||||
## Links
|
||||
|
||||
|
||||
+6
-143
@@ -1,151 +1,14 @@
|
||||
# Discordeno
|
||||
# Discordeno Utils
|
||||
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/site/static/img/logo.png" height="150px">
|
||||
<img align="right" src="https://raw.githubusercontent.com/discordeno/discordeno/main/website/static/img/logo.png" height="150px" />
|
||||
|
||||
Discord API library for [Deno](https://deno.land)
|
||||
|
||||
Discordeno follows [semantic versioning](https://semver.org/)
|
||||
Discord API library for [Node.JS](https://nodejs.org), [Deno](https://deno.land) & [Bun](https://bun.sh/)
|
||||
|
||||
[](https://discord.com/invite/5vBgXk3UcZ)
|
||||

|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||
[](https://codecov.io/gh/discordeno/discordeno)
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
Discordeno is actively maintained to guarantee **excellent performance and ease.**
|
||||
|
||||
- **Simple, Efficient, and Lightweight**: Discordeno is lightweight, simple to use, and adaptable. By default, no
|
||||
caching.
|
||||
- **Functional API**: The functional API eliminates the challenges of extending built-in classes and inheritance while
|
||||
ensuring overall simple but performant code.
|
||||
- **Cross Runtime**: Supports the Node.js and Deno runtimes.
|
||||
- **Standalone components**: Discordeno offers the option to have practically any component of a bot as a separate
|
||||
piece, including standalone REST, gateways, custom caches, and more.
|
||||
- **Plugins:** Designed to allow you to overwrite any portion of the code with your own code. Never go through the
|
||||
hassle of maintaining your fork in order to acquire something that is specifically tailored to your requirements.
|
||||
Plugins may be used for nearly anything; for instance, we have a few authorised plugins.
|
||||
|
||||
- A caching plugin that makes anything cacheable.
|
||||
- A plugin for sweepers that allows them to periodically clear the cache.
|
||||
- The permission plugin internally verifies any missing permissions before sending a call to the Discord API to
|
||||
prevent the client from receiving a Discord global ban.
|
||||
|
||||
- **Flexibility:** You may easily delete an object's attributes if your bot doesn't require them. For instance, you
|
||||
shouldn't be required to keep `Channel.topic` if your bot doesn't require it. You may save GBs of RAM in this way. A
|
||||
few lines of code are all that are needed to accomplish this for any property on any object.
|
||||
|
||||
### REST
|
||||
|
||||
- Freedom from 1 hour downtimes due to invalid requests
|
||||
- By lowering the maximum downtime to 10 minutes, Discordeno will prevent your bot from being down for an hour.
|
||||
- Freedom from global rate limit errors
|
||||
- As your bot grows, you want to handle global rate limits better. Shards don't communicate fast enough to truly
|
||||
handle it properly so this allows 1 rest handler across the entire bot.
|
||||
- You may really run numerous instances of your bot on different hosts, all of which will connect to the same REST
|
||||
server.
|
||||
- REST does not rest!
|
||||
- Separate rest guarantees that your queued requests will continue to be processed even if your bot breaks for
|
||||
whatever reason.
|
||||
- Seamless updates! There's a chance you'll lose a lot of messages or replies that are waiting to be given when you
|
||||
wish to update and restart the bot. You may restart your bot using this technique and never have to worry about
|
||||
losing any answers.
|
||||
- Single source of contact to Discord API
|
||||
- As a result, you will be able to send requests to Discord from any location, even a bot dashboard. You are no longer
|
||||
need to interact with your bot processes in order to submit a request or do anything else. Your bot process should
|
||||
be freed up to handle bot events.
|
||||
- Scalability! Scalability! Scalability!
|
||||
|
||||
### Gateway
|
||||
|
||||
- **Zero Downtime Updates:**
|
||||
- A few seconds are needed to update your bot. When using conventional sharding, you must restart in addition to going
|
||||
through a 1/5s rate-limited process of identifying all of your shards. As WS processing has been relocated to a
|
||||
proxy process, you may resume the bot code right away without worrying about any delays. Normally, if you had a bot
|
||||
that was spread across 200,000 servers, restarting it after making a simple modification would take 20 minutes.
|
||||
- **Zero Downtime Resharding:**
|
||||
- At various periods in time, Discord stops allowing your bot to be added to new servers. Consider 150 shards
|
||||
operating on 150,000 servers, for instance. Your shards may support a maximum of 150 \* 2500 = 375,000 servers. Your
|
||||
bot will be unable to join new servers once it reaches this point until it re-shards.
|
||||
- DD proxy provides 2 types of re-sharding. Automated and manual. You can also have both.
|
||||
- Automated: This system will automatically begin a Zero-downtime resharding process behind the scenes when you
|
||||
reach 80% of your maximum servers allowed by your shards. For example, since 375,000 was the max, at 300,000 we
|
||||
would begin re-sharding behind the scenes with ZERO DOWNTIME.
|
||||
- 80% of maximum servers reached (The % of 80% is customizable.)
|
||||
- Identify limits have room to allow re-sharding. (Also customizable)
|
||||
- Manual: You can also trigger this manually should you choose.
|
||||
- **Horizontal Scaling:**
|
||||
- The bot may be scaled horizontally thanks to the proxy mechanism. When your business grows significantly, you have
|
||||
two options: you can either keep investing money to upgrade your server or you may expand horizontally by purchasing
|
||||
numerous more affordable servers. The proxy enables WS handling on a totally other system.
|
||||
- **No Loss Restarts:**
|
||||
- Without the proxy mechanism, you would typically lose numerous events while restarting a bot. Users could issue
|
||||
instructions or send messages that are not screened. As your bot population increases, this amount grows sharply.
|
||||
Users who don't receive the automatic roles or any other activities your bot should do may join. You may keep
|
||||
restarting your bot thanks to the proxy technology without ever losing any events. While your bot is unavailable,
|
||||
events will be added to a queue (the maximum size of the queue is configurable), and once the bot is back online,
|
||||
the queue will start processing all of the events.
|
||||
- **Controllers:**
|
||||
- You have complete control over everything inside the proxy thanks to the controller aspect. To simply override the
|
||||
handler, you may supply a function. For instance, you may simply give a method to override a specific function if
|
||||
you want it to behave differently rather than forking and maintaining your fork.
|
||||
- **Clustering With Workers:**
|
||||
- Utilize all of your CPU cores to their greatest potential by distributing the workload across employees. To enhance
|
||||
efficiency, manage how many employees and shards there are each worker!
|
||||
|
||||
### Custom Cache
|
||||
|
||||
Have your cache setup in any way you like. Redis, PGSQL or any cache layer you would like.
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Minimal Example
|
||||
|
||||
Here is a minimal example to get started with:
|
||||
|
||||
```typescript
|
||||
import { createBot, Intents, startBot } from 'https://deno.land/x/discordeno@13.0.0/mod.ts'
|
||||
|
||||
const bot = createBot({
|
||||
token: process.env.DISCORD_TOKEN,
|
||||
intents: Intents.Guilds | Intents.GuildMessages,
|
||||
events: {
|
||||
ready() {
|
||||
console.log('Successfully connected to gateway')
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
// Another way to do events
|
||||
bot.events.messageCreate = function (b, message) {
|
||||
// Process the message here with your command handler.
|
||||
}
|
||||
|
||||
await startBot(bot)
|
||||
```
|
||||
|
||||
### Tools
|
||||
|
||||
This library is not intended for beginners, however if you still want to utilise it, check out these excellent official
|
||||
and unofficial templates:
|
||||
|
||||
**Templates**
|
||||
|
||||
- [Discordeno Template (official)](https://github.com/discordeno/discordeno/tree/main/template)
|
||||
- [Serverless Slash Commands Template (official)](https://github.com/discordeno/serverless-deno-deploy-template)
|
||||
- [`create-discordeno-bot` (WIP, unoffical)](https://github.com/Reboot-Codes/create-discordeno-bot/)
|
||||
- [Add Your Own!](https://github.com/discordeno/discordeno/pulls)
|
||||
|
||||
**Frameworks**
|
||||
|
||||
- [Amethyst Framework](https://github.com/AmethystFramework/framework)
|
||||
- [Add Your Own!](https://github.com/discordeno/discordeno/pulls)
|
||||
|
||||
**Plugins**
|
||||
|
||||
- [Cache Plugin](plugins/cache)
|
||||
- [Fileloader Plugin](plugins/fileloader)
|
||||
- [Helpers Plugin](plugins/helpers)
|
||||
- [Permissions Plugin](plugins/permissions)
|
||||
Utilities useful when using Discordeno.
|
||||
|
||||
## Links
|
||||
|
||||
|
||||
Reference in New Issue
Block a user