Skip to content

UseEventSource

Demo

loading

Types

ts
type State = 'CONNECTING' | 'OPEN' | 'CLOSED'
type AutoRetry = boolean | {
  retries?: number
  delay?: number
  onFailed?: () => void
}
type UseEventSourceOptions = EventSourceInit & {
  manual?: boolean
  autoRetry?: AutoRetry
  parseMessage?: boolean
  handlerKey?: string
}
type MessageRaw = any
interface HandlerType {
  [key: string]: any
}
declare function useEventSource<T extends HandlerType = HandlerType, D extends MessageRaw = MessageRaw>(url?: string | URL | Ref<string | URL>, options?: UseEventSourceOptions): {
  source: ShallowRef<EventSource | null>
  url: Ref<string | URL | undefined, string | URL | undefined>
  status: Ref<State, State>
  data: Ref<D | null, D | null>
  dataRecord: Ref<D[], D[]>
  messageEvent: Ref<MessageEvent<D> | null, MessageEvent<D> | null>
  messageEventRecord: Ref<MessageEvent<D>[], MessageEvent<D>[]>
  error: Ref<Event | null, Event | null>
  controller: ShallowRef<AbortController>
  connect: (url?: string | URL, options?: EventSourceInit) => void
  reconnect: () => void
  close: () => void
  destroy: () => void
  registerHandler: <K extends keyof T>(type: K, handler: (data: T[K]) => void) => () => void
  cancelHandler: <K extends keyof T>(type: K, handler: (data: T[K]) => void) => void
  registerEvent: (type: string, handler: (ev: MessageEvent<D>) => void) => void
  onOpen: _vueuse_core42.EventHookOn<Event>
  onMessage: _vueuse_core42.EventHookOn<MessageEvent<any>>
  onError: _vueuse_core42.EventHookOn<Event>
}
type UseEventSourceReturns = ReturnType<typeof useEventSource>