@livekit/components-core
Advanced tools
Comparing version 0.6.12 to 0.6.13
@@ -10,3 +10,6 @@ import type { Participant, Room } from 'livekit-client'; | ||
} | ||
export declare function setupChat(room: Room): { | ||
export declare function setupChat(room: Room, options?: { | ||
messageEncoder?: (message: ChatMessage) => Uint8Array; | ||
messageDecoder?: (message: Uint8Array) => ReceivedChatMessage; | ||
}): { | ||
messageObservable: import("rxjs").Observable<ReceivedChatMessage[]>; | ||
@@ -13,0 +16,0 @@ isSendingObservable: BehaviorSubject<boolean>; |
@@ -1488,3 +1488,5 @@ "use strict"; | ||
var decoder = new TextDecoder(); | ||
function setupChat(room) { | ||
var encode = (message) => encoder.encode(JSON.stringify({ message: message.message, timestamp: message.timestamp })); | ||
var decode = (message) => JSON.parse(decoder.decode(message)); | ||
function setupChat(room, options) { | ||
const onDestroyObservable = new import_rxjs7.Subject(); | ||
@@ -1494,5 +1496,7 @@ const messageSubject = new import_rxjs7.Subject(); | ||
messageObservable.pipe((0, import_rxjs7.takeUntil)(onDestroyObservable)).subscribe(messageSubject); | ||
const { messageDecoder, messageEncoder } = options != null ? options : {}; | ||
const finalMessageDecoder = messageDecoder != null ? messageDecoder : decode; | ||
const messagesObservable = messageSubject.pipe( | ||
(0, import_rxjs7.map)((msg) => { | ||
const parsedMessage = JSON.parse(decoder.decode(msg.payload)); | ||
const parsedMessage = finalMessageDecoder(msg.payload); | ||
const newMessage = __spreadProps(__spreadValues({}, parsedMessage), { from: msg.from }); | ||
@@ -1505,5 +1509,6 @@ return newMessage; | ||
const isSending$ = new import_rxjs7.BehaviorSubject(false); | ||
const finalMessageEncoder = messageEncoder != null ? messageEncoder : encode; | ||
const send = (message) => __async(this, null, function* () { | ||
const timestamp = Date.now(); | ||
const encodedMsg = encoder.encode(JSON.stringify({ timestamp, message })); | ||
const encodedMsg = finalMessageEncoder({ message, timestamp }); | ||
isSending$.next(true); | ||
@@ -1510,0 +1515,0 @@ try { |
{ | ||
"name": "@livekit/components-core", | ||
"version": "0.6.12", | ||
"version": "0.6.13", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "author": "LiveKit", |
@@ -19,3 +19,14 @@ /* eslint-disable camelcase */ | ||
export function setupChat(room: Room) { | ||
const encode = (message: ChatMessage) => | ||
encoder.encode(JSON.stringify({ message: message.message, timestamp: message.timestamp })); | ||
const decode = (message: Uint8Array) => JSON.parse(decoder.decode(message)) as ReceivedChatMessage; | ||
export function setupChat( | ||
room: Room, | ||
options?: { | ||
messageEncoder?: (message: ChatMessage) => Uint8Array; | ||
messageDecoder?: (message: Uint8Array) => ReceivedChatMessage; | ||
}, | ||
) { | ||
const onDestroyObservable = new Subject<void>(); | ||
@@ -32,6 +43,10 @@ const messageSubject = new Subject<{ | ||
const { messageDecoder, messageEncoder } = options ?? {}; | ||
const finalMessageDecoder = messageDecoder ?? decode; | ||
/** Build up the message array over time. */ | ||
const messagesObservable = messageSubject.pipe( | ||
map((msg) => { | ||
const parsedMessage = JSON.parse(decoder.decode(msg.payload)) as ChatMessage; | ||
const parsedMessage = finalMessageDecoder(msg.payload); | ||
const newMessage: ReceivedChatMessage = { ...parsedMessage, from: msg.from }; | ||
@@ -46,5 +61,7 @@ return newMessage; | ||
const finalMessageEncoder = messageEncoder ?? encode; | ||
const send = async (message: string) => { | ||
const timestamp = Date.now(); | ||
const encodedMsg = encoder.encode(JSON.stringify({ timestamp, message })); | ||
const encodedMsg = finalMessageEncoder({ message, timestamp }); | ||
isSending$.next(true); | ||
@@ -51,0 +68,0 @@ try { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
497852
6809