mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 11:51:23 +00:00
refactor(gateway): share broadcast function types
This commit is contained in:
@@ -15,6 +15,29 @@ const EVENT_SCOPE_GUARDS: Record<string, string[]> = {
|
||||
"node.pair.resolved": [PAIRING_SCOPE],
|
||||
};
|
||||
|
||||
export type GatewayBroadcastStateVersion = {
|
||||
presence?: number;
|
||||
health?: number;
|
||||
};
|
||||
|
||||
export type GatewayBroadcastOpts = {
|
||||
dropIfSlow?: boolean;
|
||||
stateVersion?: GatewayBroadcastStateVersion;
|
||||
};
|
||||
|
||||
export type GatewayBroadcastFn = (
|
||||
event: string,
|
||||
payload: unknown,
|
||||
opts?: GatewayBroadcastOpts,
|
||||
) => void;
|
||||
|
||||
export type GatewayBroadcastToConnIdsFn = (
|
||||
event: string,
|
||||
payload: unknown,
|
||||
connIds: ReadonlySet<string>,
|
||||
opts?: GatewayBroadcastOpts,
|
||||
) => void;
|
||||
|
||||
function hasEventScope(client: GatewayWsClient, event: string): boolean {
|
||||
const required = EVENT_SCOPE_GUARDS[event];
|
||||
if (!required) {
|
||||
@@ -37,10 +60,7 @@ export function createGatewayBroadcaster(params: { clients: Set<GatewayWsClient>
|
||||
const broadcastInternal = (
|
||||
event: string,
|
||||
payload: unknown,
|
||||
opts?: {
|
||||
dropIfSlow?: boolean;
|
||||
stateVersion?: { presence?: number; health?: number };
|
||||
},
|
||||
opts?: GatewayBroadcastOpts,
|
||||
targetConnIds?: ReadonlySet<string>,
|
||||
) => {
|
||||
if (params.clients.size === 0) {
|
||||
@@ -97,24 +117,10 @@ export function createGatewayBroadcaster(params: { clients: Set<GatewayWsClient>
|
||||
}
|
||||
};
|
||||
|
||||
const broadcast = (
|
||||
event: string,
|
||||
payload: unknown,
|
||||
opts?: {
|
||||
dropIfSlow?: boolean;
|
||||
stateVersion?: { presence?: number; health?: number };
|
||||
},
|
||||
) => broadcastInternal(event, payload, opts);
|
||||
const broadcast: GatewayBroadcastFn = (event, payload, opts) =>
|
||||
broadcastInternal(event, payload, opts);
|
||||
|
||||
const broadcastToConnIds = (
|
||||
event: string,
|
||||
payload: unknown,
|
||||
connIds: ReadonlySet<string>,
|
||||
opts?: {
|
||||
dropIfSlow?: boolean;
|
||||
stateVersion?: { presence?: number; health?: number };
|
||||
},
|
||||
) => {
|
||||
const broadcastToConnIds: GatewayBroadcastToConnIdsFn = (event, payload, connIds, opts) => {
|
||||
if (connIds.size === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user