UNPKG

@artmate/chat

Version:

**开箱即用的AI组件库(基于 Vue3 + ElementPlus)**

69 lines (68 loc) 2.81 kB
export interface UseSendProps { onAbort?: () => void; sendHandler?: (...args: any[]) => void; abortHandler?: () => void; finishHandler?: () => void; } type OnError = (eventSource: EventSource, event: Event) => void; type BaseFetchOptions = Omit<RequestInit, 'headers' | 'signal'> & { headers?: HeadersInit | Headers; }; type Transformer<T> = (message: string) => T; interface BaseSSEProps<T = string> { baseURL?: string; type?: SSEType; onFinish?: (data: T[]) => void; onAbort?: (data: T[]) => void; transformer?: Transformer<T>; onMessage?: (message: T) => void; } interface SSEWithFetchProps { baseOptions?: BaseFetchOptions; onError?: (e: unknown) => void; } interface SSEWithSSEProps { baseOptions?: EventSourceInit; onError?: OnError; onOpen?: () => void; } type SSEType = 'fetch' | 'sse' | 'sip'; export type SSEProps<T> = BaseSSEProps<T> & (SSEWithSSEProps | SSEWithFetchProps); export declare class XRequest<T> { #private; constructor({ baseURL, onAbort, onMessage, onError, baseOptions, transformer, type, onFinish, ...props }?: SSEProps<T>); send(url: string, options?: EventSourceInit | BaseFetchOptions): this; abort(): void; } /** * @description 一个用于处理发送操作管理请求状态的实用函数,支持可选的中止功能,同时支持 Promise 和 SSE(服务端事件)。 * * @type {@link WithAbortProps} * @property {(signal: AbortSignal) => Promise<any>} promise - 一个返回 Promise 的函数,接受一个用于取消的 `AbortSignal`。 * * @type {@link WithSSEProps} * @property {EventSource} eventSource - 用于处理服务器发送事件的“EventSource”实例。 * * @type {@link UseSendProps} * @property {WithAbortProps | WithSSEProps} props - "WithAbortProps" 或 "WithSSEProps",具体取决于使用情况。 * @property {() => void} [onAbort] - 可选的回调函数,在操作被中止时触发。 * @property {(...args: any[]) => void} [sendHandler] - 可选的处理函数,在发送开始前调用。 * * @param {UseSendProps} props - `useSend` 函数的配置选项。 * * @returns 返回一个包含实用方法和状态的对象。 * * @property {Ref<boolean>} loading - 一个响应式引用,指示是否正在执行发送操作。 * * * @property {() => void} abort - 一个用于中止当前操作的函数,可以中止 Promise 或关闭 EventSource。 * * @property {(...args: any[]) => void} send - 一个用于启动发送操作的函数,如果提供了 `sendHandler` 则会调用。 */ export declare function useSend({ onAbort, sendHandler, abortHandler }?: UseSendProps): { loading: import('vue').Ref<boolean, boolean>; abort: () => void; send: (...args: any[]) => void; finish: () => void; }; export {};