LazyRequest: support offload

This commit is contained in:
Rory&
2026-06-21 20:45:03 +02:00
parent 39bfd5050e
commit 1013bfd5b2
+6 -2
View File
@@ -19,9 +19,9 @@
import murmur from "murmurhash-js/murmurhash3_gc";
import { getDatabase, Member, Role, Session, User, Channel } from "@spacebar/database";
import { arrayPartition, Stopwatch } from "@spacebar/extensions";
import { WebSocket, Payload, handlePresenceUpdate, OPCODES, Send } from "@spacebar/gateway";
import { WebSocket, Payload, handlePresenceUpdate, OPCODES, Send, handleOffloadedGatewayRequest } from "@spacebar/gateway";
import { LazyRequestSchema } from "@spacebar/schemas";
import { getPermission, listenEvent, Presence, Permissions, getMostRelevantSession } from "@spacebar/util";
import { getPermission, listenEvent, Presence, Permissions, getMostRelevantSession, Config } from "@spacebar/util";
import { check } from "./instanceOf";
import { start } from "node:repl";
@@ -158,6 +158,10 @@ export async function onLazyRequest(this: WebSocket, { d }: Payload) {
// noinspection JSUnusedLocalSymbols - TODO: implement typing/activities subscriptions
const { guild_id, typing, channels, activities, members } = d as LazyRequestSchema;
if (Config.get().offload.gateway.lazyRequestUrl !== null) {
return await handleOffloadedGatewayRequest(this, Config.get().offload.gateway.lazyRequestUrl!, d);
}
if (members) {
// Client has requested a PRESENCE_UPDATE for specific member