UNPKG

mediasfu-reactjs

Version:

MediaSFU Prebuilt ReactJS SDK - Compatible with React 18 & 19, TypeScript & JavaScript

85 lines 3.02 kB
import { CreateMediaSFURoomOptions, JoinMediaSFURoomOptions } from '../../@types/types'; export type CreateJoinRoomType = (options: { payload: CreateMediaSFURoomOptions | JoinMediaSFURoomOptions; apiUserName: string; apiKey: string; localLink?: string; }) => Promise<{ data: CreateJoinRoomResponse | CreateJoinRoomError | null; success: boolean; }>; export type CreateRoomOnMediaSFUType = (options: { payload: CreateMediaSFURoomOptions; apiUserName: string; apiKey: string; localLink?: string; }) => Promise<{ data: CreateJoinRoomResponse | CreateJoinRoomError | null; success: boolean; }>; export interface CreateJoinRoomResponse { message: string; roomName: string; secureCode?: string; publicURL: string; link: string; secret: string; success: boolean; } export interface CreateJoinRoomError { error: string; success?: boolean; } export type JoinRoomOnMediaSFUType = (options: { payload: JoinMediaSFURoomOptions; apiUserName: string; apiKey: string; localLink?: string; }) => Promise<{ data: CreateJoinRoomResponse | CreateJoinRoomError | null; success: boolean; }>; /** * Asynchronously joins a room on MediaSFU. * * This function sends a POST request to the MediaSFU API to join an existing room. * It validates the provided credentials and constructs the appropriate API endpoint, * including support for the Community Edition via a custom `localLink`. * * @param {object} options - Configuration options for joining the room. * @param {JoinMediaSFURoomOptions | CreateMediaSFURoomOptions} options.payload - The payload containing the room details and action (`join` or `create`). * @param {string} options.apiUserName - The API username, used for authentication. * @param {string} options.apiKey - The API key, used for authentication. * @param {string} [options.localLink=""] - The local link for Community Edition users. If provided, it overrides the default API URL. * * @returns {Promise<{ * data: CreateJoinRoomResponse | CreateJoinRoomError | null; * success: boolean; * }>} A promise resolving to an object containing the API response: * - `data`: The response object, either `CreateJoinRoomResponse` or `CreateJoinRoomError`. * - `success`: Boolean indicating whether the operation was successful. * * @throws {Error} Throws an error if the request fails or if the provided credentials are invalid. * * @example * ```ts * const response = await joinRoomOnMediaSFU({ * payload: { * action: 'join', * meetingID: '123456', * userName: 'user123', * }, * apiUserName: 'yourAPIUSERNAME', * apiKey: 'yourAPIKEY', * localLink: 'http://localhost:3000', // Optional for Community Edition * }); * * if (response.success) { * console.log('Joined room:', response.data); * } else { * console.error('Failed to join room:', response.data?.error); * } * ``` */ export declare const joinRoomOnMediaSFU: CreateJoinRoomType; //# sourceMappingURL=joinRoomOnMediaSFU.d.ts.map