Skip to content

Commit

Permalink
fix: add missing type definitions (#278)
Browse files Browse the repository at this point in the history
* fix: @todo docs improvements

* fix: add ClientInfo to Client typings

* add ClientInfoPhone

* fix: set getBatteryStatus as async

* add ClientInfo comment

Co-authored-by: Pedro S. Lopez <pedroslopez@me.com>
  • Loading branch information
stefanfuchs and pedroslopez committed Jul 11, 2020
1 parent a10b458 commit bfea74f
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 13 deletions.
50 changes: 38 additions & 12 deletions index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ declare namespace WAWebJS {

export class Client extends EventEmitter {
constructor(options: ClientOptions)

/**
* Current connection information
* @todo add this in the official docs
*/
public info: ClientInfo

/**Accepts an invitation to join a group */
acceptInvite(inviteCode: string): Promise<void>
Expand Down Expand Up @@ -49,19 +55,13 @@ declare namespace WAWebJS {
/** Gets the current connection state for the client */
getState(): Promise<WAState>

/**
* Returns the version of WhatsApp Web currently being run
* @todo fix the return value in the official docs
*/
/** Returns the version of WhatsApp Web currently being run */
getWWebVersion(): Promise<string>

/** Sets up events and requirements, kicks off authentication request */
initialize(): Promise<void>

/**
* Check if a given ID is registered in whatsapp
* @todo add contactId param in the official docs
*/
/** Check if a given ID is registered in whatsapp */
isRegisteredUser(contactId: string): Promise<boolean>

/**
Expand Down Expand Up @@ -92,10 +92,7 @@ declare namespace WAWebJS {
/** Changes and returns the archive state of the Chat */
unarchiveChat(chatId: string): Promise<boolean>

/**
* Unmutes the Chat
* @todo add chatId param in the official docs
*/
/** Unmutes the Chat */
unmuteChat(chatId: string): Promise<void>

/** Generic event */
Expand Down Expand Up @@ -197,6 +194,35 @@ declare namespace WAWebJS {
on(event: 'ready', listener: () => void): this
}

/** Current connection information */
export interface ClientInfo {
/** Current user ID */
me: ContactId
/** Information about the phone this client is connected to */
phone: ClientInfoPhone
/** Platform the phone is running on */
platform: string
/** Name configured to be shown in push notifications */
pushname: string

/** Get current battery percentage and charging status for the attached device */
getBatteryStatus: () => Promise<BatteryInfo>
}

/** Information about the phone this client is connected to */
export interface ClientInfoPhone {
/** WhatsApp Version running on the phone */
wa_version: string
/** OS Version running on the phone (iOS or Android version) */
os_version: string
/** Device manufacturer */
device_manufacturer: string
/** Device model */
device_model: string
/** OS build number */
os_build_number: string
}

/**
* Options for initializing the whatsapp client
* @todo add these in the official docs
Expand Down
4 changes: 3 additions & 1 deletion src/Client.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const { ClientInfo, Message, MessageMedia, Contact, Location, GroupNotification
/**
* Starting point for interacting with the WhatsApp Web API
* @extends {EventEmitter}
* @param {object} options
* @fires Client#qr
* @fires Client#authenticated
* @fires Client#auth_failure
Expand Down Expand Up @@ -370,7 +371,7 @@ class Client extends EventEmitter {

/**
* Returns the version of WhatsApp Web currently being run
* @returns Promise<string>
* @returns {Promise<string>}
*/
async getWWebVersion() {
return await this.pupPage.evaluate(() => {
Expand Down Expand Up @@ -610,6 +611,7 @@ class Client extends EventEmitter {

/**
* Check if a given ID is registered in whatsapp
* @param {string} id the whatsapp user's ID
* @returns {Promise<Boolean>}
*/
async isRegisteredUser(id) {
Expand Down

0 comments on commit bfea74f

Please sign in to comment.