This commit is contained in:
Robin
2026-10-07 15:08:29 +02:00
parent e6fed4c458
commit ddfcde4a0d
3 changed files with 29 additions and 24 deletions
+9 -7
View File
@@ -49,19 +49,21 @@ export type ClientDelegationParts = Pick<
"_unstable_delegateDelayedLeave" | "baseUrl" "_unstable_delegateDelayedLeave" | "baseUrl"
>; >;
export interface DelegateDelayedLeaveParams {
client: ClientDelegationParts;
membership: CallMembershipIdentityParts;
url: string;
roomId: string;
delayId: string;
}
export async function delegateDelayedLeave({ export async function delegateDelayedLeave({
client, client,
membership, membership,
url, url,
roomId, roomId,
delayId, delayId,
}: { }: DelegateDelayedLeaveParams): Promise<void> {
client: ClientDelegationParts;
membership: CallMembershipIdentityParts;
url: string;
roomId: string;
delayId: string;
}): Promise<void> {
await doNetworkOperationWithRetry(async () => await doNetworkOperationWithRetry(async () =>
client._unstable_delegateDelayedLeave({ client._unstable_delegateDelayedLeave({
url, url,
+20 -16
View File
@@ -37,6 +37,15 @@ function isEndpointUnsupported(e: unknown): boolean {
); );
} }
export interface GetSFUConfigParams {
client: csApi.ClientGetTokenParts & openID.ClientOpenIDParts;
membership: CallMembershipIdentityParts;
transport: UnstableLivekitTransport;
roomId: string;
role: "publisher" | "subscriber";
logger: Logger;
}
export async function getSFUConfig({ export async function getSFUConfig({
client, client,
membership, membership,
@@ -44,14 +53,7 @@ export async function getSFUConfig({
roomId, roomId,
role, role,
logger, logger,
}: { }: GetSFUConfigParams): Promise<SFUConfig> {
client: csApi.ClientGetTokenParts & openID.ClientOpenIDParts;
membership: CallMembershipIdentityParts;
transport: UnstableLivekitTransport;
roomId: string;
role: "publisher" | "subscriber";
logger: Logger;
}): Promise<SFUConfig> {
if ("url" in transport) { if ("url" in transport) {
try { try {
return await csApi.getSFUConfig({ return await csApi.getSFUConfig({
@@ -91,6 +93,15 @@ export async function getSFUConfig({
}); });
} }
export interface DelegateDelayedLeaveParams {
client: csApi.ClientDelegationParts & openID.ClientOpenIDParts;
membership: CallMembershipIdentityParts;
transport: UnstableLivekitTransport;
roomId: string;
delayId: string;
logger: Logger;
}
export async function delegateDelayedLeave({ export async function delegateDelayedLeave({
client, client,
membership, membership,
@@ -98,14 +109,7 @@ export async function delegateDelayedLeave({
roomId, roomId,
delayId, delayId,
logger, logger,
}: { }: DelegateDelayedLeaveParams): Promise<void> {
client: csApi.ClientDelegationParts & openID.ClientOpenIDParts;
membership: CallMembershipIdentityParts;
transport: UnstableLivekitTransport;
roomId: string;
delayId: string;
logger: Logger;
}): Promise<void> {
if ("url" in transport) { if ("url" in transport) {
try { try {
await csApi.delegateDelayedLeave({ await csApi.delegateDelayedLeave({
-1
View File
@@ -78,7 +78,6 @@ import {
type RemoteScreenShareViewModel, type RemoteScreenShareViewModel,
} from "../state/media/RemoteScreenShareViewModel"; } from "../state/media/RemoteScreenShareViewModel";
import { Connection } from "../state/CallViewModel/remoteMembers/Connection"; import { Connection } from "../state/CallViewModel/remoteMembers/Connection";
import { type SFUConfig } from "../livekit/auth";
export function withFakeTimers(continuation: () => void): void { export function withFakeTimers(continuation: () => void): void {
vi.useFakeTimers(); vi.useFakeTimers();