Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Client

Hierarchy

  • EventEmitter
    • Client

Index

Constructors

constructor

Properties

Private Axios

Axios: AxiosInstance

bots

bots: default

channels

channels: default

Optional configuration

configuration: RevoltConfiguration

heartbeat

heartbeat: number

members

members: default

messages

messages: default

options

options: ClientOptions

servers

servers: default

Optional session

session: string | Session

Optional unreads

unreads: default

user

user: Nullable<User> = null

users

users: default

websocket

websocket: WebSocketClient

Static prefixed

prefixed: string | boolean

Accessors

apiURL

  • get apiURL(): string

autoReconnect

  • get autoReconnect(): boolean

debug

  • get debug(): boolean

Methods

Private $connect

  • $connect(): Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>
  • Check onboarding status and connect to notifications service.

    Returns Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>

Private $generateHeaders

  • $generateHeaders(session?: undefined | string | Session): { x-bot-token: string; x-session-token: undefined } | { x-bot-token: undefined; x-session-token: undefined | string }
  • Parameters

    • session: undefined | string | Session = ...

    Returns { x-bot-token: string; x-session-token: undefined } | { x-bot-token: undefined; x-session-token: undefined | string }

Private $updateHeaders

  • $updateHeaders(): void

addListener

  • addListener<T>(event: T, fn: (...args: any[]) => void, context?: any): Client
  • Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any

    Returns Client

completeOnboarding

  • completeOnboarding(data: { username: string }, loginAfterSuccess?: boolean): Promise<void>
  • Finish onboarding for a user, for example by providing a username.

    Parameters

    • data: { username: string }

      Onboarding data object

      • username: string
    • Optional loginAfterSuccess: boolean

      Defines whether to automatically log in and connect after onboarding finishes

    Returns Promise<void>

connect

  • connect(): Promise<void>
  • Fetches the configuration of the server.

    remarks

    Unlike fetchConfiguration, this function also fetches the configuration if it has already been fetched before.

    Returns Promise<void>

deleteInvite

  • deleteInvite(code: string): Promise<void>
  • Delete an invite.

    Parameters

    • code: string

      The invite code.

    Returns Promise<void>

emit

  • emit<T>(event: T, ...args: any[]): boolean
  • Calls each of the listeners registered for a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • Rest ...args: any[]

    Returns boolean

eventNames

  • eventNames(): (string | symbol)[]
  • Return an array listing the events for which the emitter has registered listeners.

    Returns (string | symbol)[]

fetchConfiguration

  • fetchConfiguration(): Promise<void>
  • Fetches the configuration of the server if it has not been already fetched.

    Returns Promise<void>

fetchInvite

  • fetchInvite(code: string): Promise<RetrievedInvite>
  • Fetch information about a given invite code.

    Parameters

    • code: string

      The invite code.

    Returns Promise<RetrievedInvite>

    Invite information.

generateFileURL

  • generateFileURL(attachment?: { _id: string; content_type?: string; metadata?: AttachmentMetadata; tag: string }, ...args: FileArgs): undefined | string
  • Generates a URL to a given file with given options.

    Parameters

    • Optional attachment: { _id: string; content_type?: string; metadata?: AttachmentMetadata; tag: string }

      Partial of attachment object

      • _id: string
      • Optional content_type?: string
      • Optional metadata?: AttachmentMetadata
      • tag: string
    • Rest ...args: FileArgs

    Returns undefined | string

    Generated URL or nothing

joinInvite

  • joinInvite(code: string): Promise<{ channel: TextChannel; server: Server; type: "Server" }>
  • Use an invite.

    Parameters

    • code: string

      The invite code.

    Returns Promise<{ channel: TextChannel; server: Server; type: "Server" }>

    Data provided by invite.

listenerCount

  • listenerCount(event: string | symbol): number
  • Return the number of listeners listening to a given event.

    Parameters

    • event: string | symbol

    Returns number

listeners

  • listeners<T>(event: T): ((...args: any[]) => void)[]
  • Return the listeners registered for a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T

    Returns ((...args: any[]) => void)[]

login

  • login(details: { captcha?: string; challenge?: string; email: string; friendly_name?: string; password?: string }): Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>
  • Log in with auth data, creating a new session in the process.

    Parameters

    • details: { captcha?: string; challenge?: string; email: string; friendly_name?: string; password?: string }

      Login data object

      • Optional captcha?: string
      • Optional challenge?: string
      • email: string
      • Optional friendly_name?: string
      • Optional password?: string

    Returns Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>

    An onboarding function if onboarding is required, undefined otherwise

loginBot

  • loginBot(token: string): Promise<void>
  • Log in as a bot.

    Parameters

    • token: string

      Bot token

    Returns Promise<void>

logout

  • logout(avoidRequest?: boolean): Promise<void>
  • Log out of Revolt. Disconnect the WebSocket, request a session invalidation and reset the client.

    Parameters

    • Optional avoidRequest: boolean

    Returns Promise<void>

markdownToText

  • markdownToText(source: string): string
  • Prepare a markdown-based message to be displayed to the user as plain text.

    Parameters

    • source: string

      Source markdown text

    Returns string

    Modified plain text

off

  • off<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): Client
  • Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • Optional fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any
    • Optional once: boolean

    Returns Client

on

  • on(event: "connected", listener: () => void): Client
  • on(event: "connecting", listener: () => void): Client
  • on(event: "dropped", listener: () => void): Client
  • on(event: "ready", listener: () => void): Client
  • on(event: "logout", listener: () => void): Client
  • on(event: "packet", listener: (packet: ClientboundNotification) => void): Client
  • on(event: "message", listener: (message: Message) => void): Client
  • on(event: "message/update", listener: (message: Message) => void): Client
  • on(event: "message/delete", listener: (id: string) => void): Client
  • on(event: "channel/create", listener: (channel: Channel) => void): Client
  • on(event: "channel/update", listener: (channel: Channel) => void): Client
  • on(event: "channel/delete", listener: (id: string) => void): Client
  • on(event: "server/update", listener: (server: Server) => void): Client
  • on(event: "server/delete", listener: (id: string) => void): Client
  • on(event: "role/update", listener: (roleId: string, role: Role, serverId: string) => void): Client
  • on(event: "role/delete", listener: (id: string, serverId: string) => void): Client
  • on(event: "member/join", listener: (member: Member) => void): Client
  • on(event: "member/update", listener: (member: Member) => void): Client
  • on(event: "member/leave", listener: (id: MemberCompositeKey) => void): Client
  • on(event: "user/relationship", listener: (user: User) => void): Client
  • Parameters

    • event: "connected"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "connecting"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "dropped"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "ready"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    • event: "logout"
    • listener: () => void
        • (): void
        • Returns void

    Returns Client

  • Parameters

    Returns Client

  • Parameters

    • event: "message"
    • listener: (message: Message) => void

    Returns Client

  • Parameters

    • event: "message/update"
    • listener: (message: Message) => void

    Returns Client

  • Parameters

    • event: "message/delete"
    • listener: (id: string) => void
        • (id: string): void
        • Parameters

          • id: string

          Returns void

    Returns Client

  • Parameters

    • event: "channel/create"
    • listener: (channel: Channel) => void

    Returns Client

  • Parameters

    • event: "channel/update"
    • listener: (channel: Channel) => void

    Returns Client

  • Parameters

    • event: "channel/delete"
    • listener: (id: string) => void
        • (id: string): void
        • Parameters

          • id: string

          Returns void

    Returns Client

  • Parameters

    • event: "server/update"
    • listener: (server: Server) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "server/delete"
    • listener: (id: string) => void
        • (id: string): void
        • Parameters

          • id: string

          Returns void

    Returns Client

  • Parameters

    • event: "role/update"
    • listener: (roleId: string, role: Role, serverId: string) => void
        • (roleId: string, role: Role, serverId: string): void
        • Parameters

          • roleId: string
          • role: Role
          • serverId: string

          Returns void

    Returns Client

  • Parameters

    • event: "role/delete"
    • listener: (id: string, serverId: string) => void
        • (id: string, serverId: string): void
        • Parameters

          • id: string
          • serverId: string

          Returns void

    Returns Client

  • Parameters

    • event: "member/join"
    • listener: (member: Member) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "member/update"
    • listener: (member: Member) => void
        • Parameters

          Returns void

    Returns Client

  • Parameters

    • event: "member/leave"
    • listener: (id: MemberCompositeKey) => void
        • (id: MemberCompositeKey): void
        • Parameters

          • id: MemberCompositeKey

          Returns void

    Returns Client

  • Parameters

    • event: "user/relationship"
    • listener: (user: User) => void
        • (user: User): void
        • Parameters

          Returns void

    Returns Client

once

  • once<T>(event: T, fn: (...args: any[]) => void, context?: any): Client
  • Add a one-time listener for a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any

    Returns Client

proxyFile

  • proxyFile(url: string): undefined | string
  • Proxy a file through January.

    Parameters

    • url: string

      URL to proxy

    Returns undefined | string

    Proxied media URL

register

  • register(data: { captcha?: string; email: string; invite?: string; password: string }): Promise<undefined>
  • Register for a new account.

    Parameters

    • data: { captcha?: string; email: string; invite?: string; password: string }

      Registration data object

      • Optional captcha?: string
      • email: string
      • Optional invite?: string
      • password: string

    Returns Promise<undefined>

    A promise containing a registration response object

removeAllListeners

  • removeAllListeners(event?: string | symbol): Client
  • Remove all listeners, or those of the specified event.

    Parameters

    • Optional event: string | symbol

    Returns Client

removeListener

  • removeListener<T>(event: T, fn?: (...args: any[]) => void, context?: any, once?: boolean): Client
  • Remove the listeners of a given event.

    Type parameters

    • T: string | symbol

    Parameters

    • event: T
    • Optional fn: (...args: any[]) => void
        • (...args: any[]): void
        • Parameters

          • Rest ...args: any[]

          Returns void

    • Optional context: any
    • Optional once: boolean

    Returns Client

req

  • req<M, T>(method: M, url: T): Promise<Route<M, T>["response"]>
  • req<M, T>(method: M, url: T, data: Route<M, T>["data"]): Promise<Route<M, T>["response"]>
  • ? Axios request wrapper.

    Type parameters

    • M: "GET" | "POST" | "PATCH" | "DELETE" | "PUT"

    • T: "/" | "/auth/account" | "/auth/account/create" | "/auth/account/reverify" | "/auth/account/verify/:code" | "/auth/account/reset_password" | "/auth/account/change/password" | "/auth/account/change/email" | "/auth/session/login" | "/auth/session/logout" | "/auth/session/id" | "/auth/session/all" | "/onboard/hello" | "/onboard/complete" | "/users/id" | "/users/id/username" | "/users/id/profile" | "/users/dms" | "/users/id/dm" | "/users/relationships" | "/users/id/relationship" | "/users/id/mutual" | "/users/id/friend" | "/users/id/block" | "/users/id/avatar" | "/users/id/default_avatar" | "/channels/id" | "/channels/id/members" | "/channels/create" | "/channels/id/invites" | "/channels/id/recipients/id" | "/channels/id/ack/id" | "/channels/id/permissions/id" | "/channels/id/messages" | "/channels/id/messages/id" | "/channels/id/search" | "/channels/id/messages/stale" | "/servers/create" | "/servers/id" | "/servers/id/ack" | "/servers/id/members" | "/servers/id/members/id" | "/servers/id/bans/id" | "/servers/id/bans" | "/servers/id/channels" | "/servers/id/invites" | "/servers/id/roles" | "/servers/id/roles/id" | "/servers/id/permissions/id" | "/bots/create" | "/bots/@me" | "/bots/id" | "/bots/id/invite" | "/invites/id" | "/sync/settings/fetch" | "/sync/settings/set" | "/sync/unreads" | "/push/subscribe" | "/push/unsubscribe" | "/channels/id/join_call"

    Parameters

    • method: M
    • url: T

    Returns Promise<Route<M, T>["response"]>

  • Type parameters

    • M: "GET" | "POST" | "PATCH" | "DELETE" | "PUT"

    • T: "/" | "/auth/account" | "/auth/account/create" | "/auth/account/reverify" | "/auth/account/verify/:code" | "/auth/account/reset_password" | "/auth/account/change/password" | "/auth/account/change/email" | "/auth/session/login" | "/auth/session/logout" | "/auth/session/id" | "/auth/session/all" | "/onboard/hello" | "/onboard/complete" | "/users/id" | "/users/id/username" | "/users/id/profile" | "/users/dms" | "/users/id/dm" | "/users/relationships" | "/users/id/relationship" | "/users/id/mutual" | "/users/id/friend" | "/users/id/block" | "/users/id/avatar" | "/users/id/default_avatar" | "/channels/id" | "/channels/id/members" | "/channels/create" | "/channels/id/invites" | "/channels/id/recipients/id" | "/channels/id/ack/id" | "/channels/id/permissions/id" | "/channels/id/messages" | "/channels/id/messages/id" | "/channels/id/search" | "/channels/id/messages/stale" | "/servers/create" | "/servers/id" | "/servers/id/ack" | "/servers/id/members" | "/servers/id/members/id" | "/servers/id/bans/id" | "/servers/id/bans" | "/servers/id/channels" | "/servers/id/invites" | "/servers/id/roles" | "/servers/id/roles/id" | "/servers/id/permissions/id" | "/bots/create" | "/bots/@me" | "/bots/id" | "/bots/id/invite" | "/invites/id" | "/sync/settings/fetch" | "/sync/settings/set" | "/sync/unreads" | "/push/subscribe" | "/push/unsubscribe" | "/channels/id/join_call"

    Parameters

    • method: M
    • url: T
    • data: Route<M, T>["data"]

    Returns Promise<Route<M, T>["response"]>

request

  • request<M, T>(method: M, url: T, data: AxiosRequestConfig): Promise<Route<M, T>["response"]>
  • Perform an HTTP request using Axios, specifying a request config.

    Type parameters

    • M: "GET" | "POST" | "PATCH" | "DELETE" | "PUT"

    • T: "/" | "/auth/account" | "/auth/account/create" | "/auth/account/reverify" | "/auth/account/verify/:code" | "/auth/account/reset_password" | "/auth/account/change/password" | "/auth/account/change/email" | "/auth/session/login" | "/auth/session/logout" | "/auth/session/id" | "/auth/session/all" | "/onboard/hello" | "/onboard/complete" | "/users/id" | "/users/id/username" | "/users/id/profile" | "/users/dms" | "/users/id/dm" | "/users/relationships" | "/users/id/relationship" | "/users/id/mutual" | "/users/id/friend" | "/users/id/block" | "/users/id/avatar" | "/users/id/default_avatar" | "/channels/id" | "/channels/id/members" | "/channels/create" | "/channels/id/invites" | "/channels/id/recipients/id" | "/channels/id/ack/id" | "/channels/id/permissions/id" | "/channels/id/messages" | "/channels/id/messages/id" | "/channels/id/search" | "/channels/id/messages/stale" | "/servers/create" | "/servers/id" | "/servers/id/ack" | "/servers/id/members" | "/servers/id/members/id" | "/servers/id/bans/id" | "/servers/id/bans" | "/servers/id/channels" | "/servers/id/invites" | "/servers/id/roles" | "/servers/id/roles/id" | "/servers/id/permissions/id" | "/bots/create" | "/bots/@me" | "/bots/id" | "/bots/id/invite" | "/invites/id" | "/sync/settings/fetch" | "/sync/settings/set" | "/sync/unreads" | "/push/subscribe" | "/push/unsubscribe" | "/channels/id/join_call"

    Parameters

    • method: M

      HTTP method

    • url: T

      Target route

    • data: AxiosRequestConfig

      Axios request config object

    Returns Promise<Route<M, T>["response"]>

    The response body

reset

  • reset(): void
  • Reset the client by setting properties to their original value or deleting them entirely. Disconnects the current WebSocket.

    Returns void

syncFetchSettings

  • syncFetchSettings(keys: string[]): Promise<UserSettings>
  • Fetch user settings for current user.

    Parameters

    • keys: string[]

      Settings keys to fetch, leave blank to fetch full object.

    Returns Promise<UserSettings>

    Key-value object of settings.

syncFetchUnreads

  • syncFetchUnreads(): Promise<ChannelUnread[]>
  • Fetch user unreads for current user.

    Returns Promise<ChannelUnread[]>

    Array of channel unreads.

syncSetSettings

  • syncSetSettings(data: {}, timestamp?: number): Promise<void>
  • Set user settings for current user.

    Parameters

    • data: {}

      Data to set as an object. Any non-string values will be automatically serialised.

      • [key: string]: object | string
    • Optional timestamp: number

      Timestamp to use for the current revision.

    Returns Promise<void>

useExistingSession

  • useExistingSession(session: Session): Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>
  • Use an existing session to log into Revolt.

    Parameters

    • session: Session

      Session data object

    Returns Promise<undefined | ((username: string, loginAfterSuccess?: boolean) => Promise<void>)>

    An onboarding function if onboarding is required, undefined otherwise

Generated using TypeDoc