OverviewFilesCommitsIssuesDocsReleasesPeers

autobase-doctor / node_modules / bare-inspector / lib / session.d.ts

44 lines · typescript ref:
import EventEmitter, { EventMap } from 'bare-events'

interface SessionMessage {
  method: string
  params: Record<string, unknown>
}

interface InspectorSessionEvents extends EventMap {
  inspectorNotification: [message: SessionMessage]
  [method: string]: [message: SessionMessage]
}

interface InspectorSession<
  M extends InspectorSessionEvents = InspectorSessionEvents
> extends EventEmitter<M> {
  readonly connected: boolean
  readonly destroyed: boolean

  connect(): void

  post<T extends unknown = unknown>(
    method: string,
    cb: (err: Error, result: T) => void
  ): Promise<T>

  post<T extends unknown = unknown>(
    method: string,
    params?: Record<string, unknown>,
    cb?: (err: Error, result: T) => void
  ): Promise<T>

  destroy(): void
}

declare class InspectorSession {
  constructor(onpaused?: () => boolean)
}

declare namespace InspectorSession {
  export { type SessionMessage, type InspectorSessionEvents }
}

export = InspectorSession