From 1013bfd5b21c07af81eb9b763c3c06f0b381c8ad Mon Sep 17 00:00:00 2001 From: Rory& Date: Sun, 21 Jun 2026 20:45:03 +0200 Subject: [PATCH] LazyRequest: support offload --- src/gateway/opcodes/LazyRequest.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gateway/opcodes/LazyRequest.ts b/src/gateway/opcodes/LazyRequest.ts index e4c9bcafb..410c265f1 100644 --- a/src/gateway/opcodes/LazyRequest.ts +++ b/src/gateway/opcodes/LazyRequest.ts @@ -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