Files
PaperClipAI/server/src/services/connection-event-wake.ts
T
2026-11-03 14:30:07 -06:00

16 lines
646 B
TypeScript

/** Process-local hint only; Cloud retains the durable target until event acknowledgment. */
const receivers = new WeakMap<object, () => void>();
export function registerConnectionEventWake(owner: object, wake: () => void) {
receivers.set(owner, wake);
return () => { if (receivers.get(owner) === wake) receivers.delete(owner); };
}
export function wakeConnectionEvents(owner: object): boolean {
const wake = receivers.get(owner);
if (!wake) return false;
wake();
return true;
}
/** Inspection never emits a wake or polls the broker. */
export const hasConnectionEventWakeReceiver = (owner: object): boolean => receivers.has(owner);