Files
kandev/apps/web/lib/integrations/integration-availability-events.ts
T
2026-07-21 08:40:26 +01:00

19 lines
525 B
TypeScript

type Listener = () => void;
const listeners = new Set<Listener>();
export function subscribeIntegrationAvailability(listener: Listener): () => void {
listeners.add(listener);
return () => listeners.delete(listener);
}
export function invalidateIntegrationAvailability(): void {
for (const listener of listeners) listener();
}
export async function invalidateIntegrationAvailabilityAfter<T>(request: Promise<T>): Promise<T> {
const result = await request;
invalidateIntegrationAvailability();
return result;
}