@assistant-ui/react
Version:
TypeScript/React library for AI Chat
57 lines (56 loc) • 1.72 kB
JavaScript
"use client";
// src/runtimes/external-store/createMessageConverter.tsx
import { useContentPart, useMessage } from "../../context/index.js";
import {
useExternalMessageConverter,
convertExternalMessages
} from "./external-message-converter.js";
import { getExternalStoreMessages } from "./getExternalStoreMessage.js";
var createMessageConverter = (callback) => {
const result = {
useThreadMessages: ({
messages,
isRunning,
joinStrategy
}) => {
return useExternalMessageConverter({
callback,
messages,
isRunning,
joinStrategy
});
},
toThreadMessages: (messages) => {
return convertExternalMessages(messages, callback, false);
},
toOriginalMessages: (input) => {
const messages = getExternalStoreMessages(input);
if (messages.length === 0) throw new Error("No original messages found");
return messages;
},
toOriginalMessage: (input) => {
const messages = result.toOriginalMessages(input);
return messages[0];
},
useOriginalMessage: () => {
const messageMessages = result.useOriginalMessages();
const first = messageMessages[0];
return first;
},
useOriginalMessages: () => {
const contentPartMessages = useContentPart({
optional: true,
selector: getExternalStoreMessages
});
const messageMessages = useMessage(getExternalStoreMessages);
const messages = contentPartMessages ?? messageMessages;
if (messages.length === 0) throw new Error("No original messages found");
return messages;
}
};
return result;
};
export {
createMessageConverter
};
//# sourceMappingURL=createMessageConverter.js.map