chore: format and remove unneccessary code

This commit is contained in:
PalmDevs
2023-11-25 22:45:27 +07:00
parent 72adec51b4
commit 306f627cef
39 changed files with 690 additions and 647 deletions

View File

@@ -1,39 +1,39 @@
# 🏗️ Setting up the development environment
> [!IMPORTANT]
> **This project uses [Bun](https://bun.sh) to run and bundle the code.**
> Compatibility with other runtimes (Node.js, Deno, ...) are not guaranteed and most package scripts won't work.
To start developing, you'll need to set up the development environment first.
1. Install [Bun](https://bun.sh)
2. Clone the mono-repository
```sh
git clone https://github.com/ReVanced/revanced-helper.git &&
cd revanced-helper
```
3. Install dependencies
```sh
bun install
```
4. Build packages/libraries
```sh
bun build:deps
```
5. Change your directory to this project's root
```sh
cd apis/websocket
```
## ⏭️ What's next
The next page will tell you about server configurations.
Continue: [⚙️ Configuration](./1_configuration.md)
# 🏗️ Setting up the development environment
> [!IMPORTANT]
> **This project uses [Bun](https://bun.sh) to run and bundle the code.**
> Compatibility with other runtimes (Node.js, Deno, ...) are not guaranteed and most package scripts won't work.
To start developing, you'll need to set up the development environment first.
1. Install [Bun](https://bun.sh)
2. Clone the mono-repository
```sh
git clone https://github.com/ReVanced/revanced-helper.git &&
cd revanced-helper
```
3. Install dependencies
```sh
bun install
```
4. Build packages/libraries
```sh
bun build:deps
```
5. Change your directory to this project's root
```sh
cd apis/websocket
```
## ⏭️ What's next
The next page will tell you about server configurations.
Continue: [⚙️ Configuration](./1_configuration.md)

View File

@@ -1,39 +1,39 @@
# ⚙️ Configuration
This is the default configuration:
```json
{
"address": "127.0.0.1",
"port": 3000,
"ocrConcurrentQueues": 1,
"clientHeartbeatInterval": 60000,
"debugLogsInProduction": false
}
```
---
### `config.address` & `config.port`
The address and port for the server to listen on.
### `config.ocrConcurrentQueues`
Amount of concurrent queues that can be run at a time.
> Setting this too high may cause performance issues.
### `config.clientHeartbeatInterval`
Heartbeat interval for clients. See [**💓 Heartbeating**](./packets.md#💓-heartbeating).
### `config.debugLogsInProduction`
Whether to print debug logs at all in production mode (when `NODE_ENV` is `production`).
## ⏭️ What's next
The next page will tell you how to run and bundle the server.
Continue: [🏃🏻‍♂️ Running the server](./2_running.md)
# ⚙️ Configuration
This is the default configuration:
```json
{
"address": "127.0.0.1",
"port": 3000,
"ocrConcurrentQueues": 1,
"clientHeartbeatInterval": 60000,
"debugLogsInProduction": false
}
```
---
### `config.address` & `config.port`
The address and port for the server to listen on.
### `config.ocrConcurrentQueues`
Amount of concurrent queues that can be run at a time.
> Setting this too high may cause performance issues.
### `config.clientHeartbeatInterval`
Heartbeat interval for clients. See [**💓 Heartbeating**](./packets.md#💓-heartbeating).
### `config.debugLogsInProduction`
Whether to print debug logs at all in production mode (when `NODE_ENV` is `production`).
## ⏭️ What's next
The next page will tell you how to run and bundle the server.
Continue: [🏃🏻‍♂️ Running the server](./2_running.md)

View File

@@ -1,42 +1,41 @@
# 🏃🏻‍♂️ Running the server
There are many methods to run the server. Choose one that suits best for the situation.
> [!IMPORTANT]
> Make sure you've followed the [**🏗️ Setting up the environment**](./0_development_environment.md) steps.
## 👷🏻 Development mode (recommended)
There will be no compilation step, and Bun will automatically watch changes and restart the server for you.
You can quickly start the server by running:
```sh
bun dev
```
## 🌐 Production mode
Production mode runs no different from the development server, it simply has less debugging information printed to console by default. However, more production-specific features may come.
To start the server in production mode, you'll have to:
1. Set the `NODE_ENV` environment variable to `production`
> It is very possible to set the value in the `.env` file and let Bun load it, **but it is recommended to set the variable before Bun even starts**.
2. Start the server
```sh
bun dev
```
## 📦 Building
If you're looking to build and host the server somewhere else, you can run:
```sh
bun bundle
```
The files will be placed in the `dist` directory. **Configurations and `.env` files will NOT be copied automatically.**
# 🏃🏻‍♂️ Running the server
There are many methods to run the server. Choose one that suits best for the situation.
> [!IMPORTANT]
> Make sure you've followed the [**🏗️ Setting up the environment**](./0_development_environment.md) steps.
## 👷🏻 Development mode (recommended)
There will be no compilation step, and Bun will automatically watch changes and restart the server for you.
You can quickly start the server by running:
```sh
bun dev
```
## 🌐 Production mode
Production mode runs no different from the development server, it simply has less debugging information printed to console by default. However, more production-specific features may come.
To start the server in production mode, you'll have to:
1. Set the `NODE_ENV` environment variable to `production`
> It is very possible to set the value in the `.env` file and let Bun load it, **but it is recommended to set the variable before Bun even starts**.
2. Start the server
```sh
bun dev
```
## 📦 Building
If you're looking to build and host the server somewhere else, you can run:
```sh
bun bundle
```
The files will be placed in the `dist` directory. **Configurations and `.env` files will NOT be copied automatically.**

View File

@@ -1,33 +1,33 @@
# 📨 Packets
Packets are BSON messages sent to the server. They're structured like the following when decoded:
```json
{
"op": 12345,
"d": {
"some_field": "some data"
}
}
```
### `packet.op`
Operation codes are numbers that communicate an action.
### `packet.d`
Data fields include additional information for the server to process. They are **either an object with specific fields or just `null`**.
#### 📦 Schemas and constants
Schemas for packets and their respective data[^1], and the list of possible operation codes[^2] can be found in the `@revanced/bot-shared` package, with typings as well.
[^1]: [`@revanced/bot-shared/src/schemas/Packet.ts`](../../packages/shared/src/schemas/Packet.ts)
[^2]: [`@revanced/bot-shared/src/constants/Operation`](../../packages/shared/src/constants/Operation.ts)
## 💓 Heartbeating
Heartbeating is a process where the client regularly send each other signals to confirm that they are still connected and functioning. If the server doesn't receive a heartbeat from the client within a specified timeframe, it assume the client has disconnected and closes the socket.
You can configure the interval in the configuration file. See [**📝 Configuration > `config.clientHeartbeatInterval`**](./1_configuration.md#configclientheartbeatinterval).
# 📨 Packets
Packets are BSON messages sent to the server. They're structured like the following when decoded:
```json
{
"op": 12345,
"d": {
"some_field": "some data"
}
}
```
### `packet.op`
Operation codes are numbers that communicate an action.
### `packet.d`
Data fields include additional information for the server to process. They are **either an object with specific fields or just `null`**.
#### 📦 Schemas and constants
Schemas for packets and their respective data[^1], and the list of possible operation codes[^2] can be found in the `@revanced/bot-shared` package, with typings as well.
[^1]: [`@revanced/bot-shared/src/schemas/Packet.ts`](../../packages/shared/src/schemas/Packet.ts)
[^2]: [`@revanced/bot-shared/src/constants/Operation`](../../packages/shared/src/constants/Operation.ts)
## 💓 Heartbeating
Heartbeating is a process where the client regularly send each other signals to confirm that they are still connected and functioning. If the server doesn't receive a heartbeat from the client within a specified timeframe, it assume the client has disconnected and closes the socket.
You can configure the interval in the configuration file. See [**📝 Configuration > `config.clientHeartbeatInterval`**](./1_configuration.md#configclientheartbeatinterval).

View File

@@ -1,16 +1,16 @@
# 🚙 ReVanced Bot WebSocket API
This documentation explains how the server works, how to start developing, and how to configure the server.
# 📖 Table of contents
0. [🏗️ Setting up the development environment](./0_development_environment.md)
1. [⚙️ Configuration](./1_configuration.md)
2. [🏃🏻‍♂️ Running the server](./2_running.md)
3. [📨 Packets](./3_packets.md)
## ⏭️ Start here
The next page will tell you how to set up the development environment.
Continue: [🏗️ Setting up the development environment](./0_development_environment.md)
# 🚙 ReVanced Bot WebSocket API
This documentation explains how the server works, how to start developing, and how to configure the server.
# 📖 Table of contents
0. [🏗️ Setting up the development environment](./0_development_environment.md)
1. [⚙️ Configuration](./1_configuration.md)
2. [🏃🏻‍♂️ Running the server](./2_running.md)
3. [📨 Packets](./3_packets.md)
## ⏭️ Start here
The next page will tell you how to set up the development environment.
Continue: [🏗️ Setting up the development environment](./0_development_environment.md)