fix: add missing type definitions (#278)

* 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>
This commit is contained in:
stefanfuchs
2020-07-11 03:58:57 -03:00
committed by GitHub
parent a10b458cd5
commit bfea74f567
2 changed files with 41 additions and 13 deletions

50
index.d.ts vendored
View File

@@ -7,6 +7,12 @@ declare namespace WAWebJS {
export class Client extends EventEmitter { export class Client extends EventEmitter {
constructor(options: ClientOptions) constructor(options: ClientOptions)
/**
* Current connection information
* @todo add this in the official docs
*/
public info: ClientInfo
/**Accepts an invitation to join a group */ /**Accepts an invitation to join a group */
acceptInvite(inviteCode: string): Promise<void> acceptInvite(inviteCode: string): Promise<void>
@@ -49,19 +55,13 @@ declare namespace WAWebJS {
/** Gets the current connection state for the client */ /** Gets the current connection state for the client */
getState(): Promise<WAState> getState(): Promise<WAState>
/** /** Returns the version of WhatsApp Web currently being run */
* Returns the version of WhatsApp Web currently being run
* @todo fix the return value in the official docs
*/
getWWebVersion(): Promise<string> getWWebVersion(): Promise<string>
/** Sets up events and requirements, kicks off authentication request */ /** Sets up events and requirements, kicks off authentication request */
initialize(): Promise<void> initialize(): Promise<void>
/** /** Check if a given ID is registered in whatsapp */
* Check if a given ID is registered in whatsapp
* @todo add contactId param in the official docs
*/
isRegisteredUser(contactId: string): Promise<boolean> isRegisteredUser(contactId: string): Promise<boolean>
/** /**
@@ -92,10 +92,7 @@ declare namespace WAWebJS {
/** Changes and returns the archive state of the Chat */ /** Changes and returns the archive state of the Chat */
unarchiveChat(chatId: string): Promise<boolean> unarchiveChat(chatId: string): Promise<boolean>
/** /** Unmutes the Chat */
* Unmutes the Chat
* @todo add chatId param in the official docs
*/
unmuteChat(chatId: string): Promise<void> unmuteChat(chatId: string): Promise<void>
/** Generic event */ /** Generic event */
@@ -197,6 +194,35 @@ declare namespace WAWebJS {
on(event: 'ready', listener: () => void): this 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 * Options for initializing the whatsapp client
* @todo add these in the official docs * @todo add these in the official docs

View File

@@ -15,6 +15,7 @@ const { ClientInfo, Message, MessageMedia, Contact, Location, GroupNotification
/** /**
* Starting point for interacting with the WhatsApp Web API * Starting point for interacting with the WhatsApp Web API
* @extends {EventEmitter} * @extends {EventEmitter}
* @param {object} options
* @fires Client#qr * @fires Client#qr
* @fires Client#authenticated * @fires Client#authenticated
* @fires Client#auth_failure * @fires Client#auth_failure
@@ -370,7 +371,7 @@ class Client extends EventEmitter {
/** /**
* Returns the version of WhatsApp Web currently being run * Returns the version of WhatsApp Web currently being run
* @returns Promise<string> * @returns {Promise<string>}
*/ */
async getWWebVersion() { async getWWebVersion() {
return await this.pupPage.evaluate(() => { return await this.pupPage.evaluate(() => {
@@ -610,6 +611,7 @@ class Client extends EventEmitter {
/** /**
* Check if a given ID is registered in whatsapp * Check if a given ID is registered in whatsapp
* @param {string} id the whatsapp user's ID
* @returns {Promise<Boolean>} * @returns {Promise<Boolean>}
*/ */
async isRegisteredUser(id) { async isRegisteredUser(id) {