提交 d5197293 编写于 作者: Huan (李卓桓)'s avatar Huan (李卓桓)

code clean: use never to guard enum all the possible values

上级 174b6775
...@@ -58,7 +58,6 @@ export type WechatyEventName = 'error' ...@@ -58,7 +58,6 @@ export type WechatyEventName = 'error'
| 'room-leave' | 'room-leave'
| 'room-topic' | 'room-topic'
| 'scan' | 'scan'
| 'EVENT_PARAM_ERROR'
/** /**
* Main bot class. * Main bot class.
...@@ -230,27 +229,19 @@ export class Wechaty extends EventEmitter implements Sayable { ...@@ -230,27 +229,19 @@ export class Wechaty extends EventEmitter implements Sayable {
return return
} }
public on(event: 'error' , listener: (this: Wechaty, error: Error) => void): this public on(event: 'error' , listener: (this: Wechaty, error: Error) => void): this
public on(event: 'friend' , listener: (this: Wechaty, friend: Contact, request?: FriendRequest) => void): this
public on(event: 'friend' , listener: (this: Wechaty, friend: Contact, request?: FriendRequest) => void): this public on(event: 'heartbeat' , listener: (this: Wechaty, data: any) => void): this
public on(event: 'logout' , listener: (this: Wechaty, user: Contact) => void): this
public on(event: 'heartbeat' , listener: (this: Wechaty, data: any) => void): this public on(event: 'login' , listener: (this: Wechaty, user: Contact) => void): this
public on(event: 'message' , listener: (this: Wechaty, message: Message) => void): this
public on(event: 'logout' , listener: (this: Wechaty, user: Contact) => void): this public on(event: 'room-join' , listener: (this: Wechaty, room: Room, inviteeList: Contact[], inviter: Contact) => void): this
public on(event: 'room-leave' , listener: (this: Wechaty, room: Room, leaverList: Contact[]) => void): this
public on(event: 'login' , listener: (this: Wechaty, user: Contact) => void): this
public on(event: 'message' , listener: (this: Wechaty, message: Message) => void): this
public on(event: 'room-join' , listener: (this: Wechaty, room: Room, inviteeList: Contact[], inviter: Contact) => void): this
public on(event: 'room-leave' , listener: (this: Wechaty, room: Room, leaverList: Contact[]) => void): this
public on(event: 'room-topic' , listener: (this: Wechaty, room: Room, topic: string, oldTopic: string, changer: Contact) => void): this public on(event: 'room-topic' , listener: (this: Wechaty, room: Room, topic: string, oldTopic: string, changer: Contact) => void): this
public on(event: 'scan' , listener: (this: Wechaty, url: string, code: number) => void): this
public on(event: 'scan' , listener: (this: Wechaty, url: string, code: number) => void): this // guard for the above event: make sure it includes all the possible values
public on(event: never, listener: any): this
public on(event: 'EVENT_PARAM_ERROR', listener: () => void): this
/** /**
* @desc Wechaty Class Event Type * @desc Wechaty Class Event Type
...@@ -354,21 +345,7 @@ export class Wechaty extends EventEmitter implements Sayable { ...@@ -354,21 +345,7 @@ export class Wechaty extends EventEmitter implements Sayable {
*/ */
public on(event: WechatyEventName, listener: (...args: any[]) => any): this { public on(event: WechatyEventName, listener: (...args: any[]) => any): this {
log.verbose('Wechaty', 'addListener(%s, %s)', event, typeof listener) log.verbose('Wechaty', 'addListener(%s, %s)', event, typeof listener)
// const thisWithSay: Sayable = {
// say: (content: string) => {
// return Config.puppetInstance()
// .say(content)
// }
// }
super.on(event, listener) // `this: Wechaty` is Sayable super.on(event, listener) // `this: Wechaty` is Sayable
// (...args) => {
//
// return listener.apply(this, args)
// })
return this return this
} }
...@@ -453,12 +430,13 @@ export class Wechaty extends EventEmitter implements Sayable { ...@@ -453,12 +430,13 @@ export class Wechaty extends EventEmitter implements Sayable {
this.puppet = null this.puppet = null
config.puppetInstance(null) config.puppetInstance(null)
await puppetBeforeDie.quit() try {
.catch(e => { await puppetBeforeDie.quit()
log.error('Wechaty', 'quit() exception: %s', e.message) } catch (e) {
Raven.captureException(e) log.error('Wechaty', 'quit() exception: %s', e.message)
throw e Raven.captureException(e)
}) throw e
}
this.state.current('standby') this.state.current('standby')
return return
} }
...@@ -474,12 +452,13 @@ export class Wechaty extends EventEmitter implements Sayable { ...@@ -474,12 +452,13 @@ export class Wechaty extends EventEmitter implements Sayable {
if (!this.puppet) { if (!this.puppet) {
throw new Error('no puppet') throw new Error('no puppet')
} }
await this.puppet.logout() try {
.catch(e => { await this.puppet.logout()
log.error('Wechaty', 'logout() exception: %s', e.message) } catch (e) {
Raven.captureException(e) log.error('Wechaty', 'logout() exception: %s', e.message)
throw e Raven.captureException(e)
}) throw e
}
return return
} }
...@@ -505,12 +484,13 @@ export class Wechaty extends EventEmitter implements Sayable { ...@@ -505,12 +484,13 @@ export class Wechaty extends EventEmitter implements Sayable {
if (!this.puppet) { if (!this.puppet) {
throw new Error('no puppet') throw new Error('no puppet')
} }
return await this.puppet.send(message) try {
.catch(e => { return await this.puppet.send(message)
log.error('Wechaty', 'send() exception: %s', e.message) } catch (e) {
Raven.captureException(e) log.error('Wechaty', 'send() exception: %s', e.message)
throw e Raven.captureException(e)
}) throw e
}
} }
/** /**
...@@ -540,17 +520,18 @@ export class Wechaty extends EventEmitter implements Sayable { ...@@ -540,17 +520,18 @@ export class Wechaty extends EventEmitter implements Sayable {
/** /**
* @private * @private
*/ */
public ding() { public async ding(): Promise<string> {
if (!this.puppet) { if (!this.puppet) {
return Promise.reject(new Error('wechaty cant ding coz no puppet')) return Promise.reject(new Error('wechaty cant ding coz no puppet'))
} }
return this.puppet.ding() // should return 'dong' try {
.catch(e => { return await this.puppet.ding() // should return 'dong'
log.error('Wechaty', 'ding() exception: %s', e.message) } catch (e) {
Raven.captureException(e) log.error('Wechaty', 'ding() exception: %s', e.message)
throw e Raven.captureException(e)
}) throw e
}
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册