diff --git a/package.json b/package.json index 9a0e504db5ccaacca1f619f2237f05d86255fe80..c689b4024647b29b4e2eb189c794c8c0c88e73e7 100644 --- a/package.json +++ b/package.json @@ -97,7 +97,6 @@ "node": ">= 8.5" }, "dependencies": { - "@types/node": "^9.4.0", "@types/ws": "^4.0.1", "bl": "^1.2.0", "brolog": "^1.2.0", @@ -125,6 +124,7 @@ "@types/fluent-ffmpeg": "^2.1.0", "@types/glob": "^5.0.0p", "@types/mime": "^2.0.0", + "@types/node": "^10.0.0", "@types/puppeteer": "^1.0.0", "@types/raven": "^2.1.0", "@types/read-pkg-up": "^3.0.0", @@ -159,7 +159,7 @@ "sinon-test": "^2.1.2", "sloc": "^0.2.0", "ts-node": "^6.0.0", - "tslint": "^5.9.0", + "tslint": "^5.9.1", "tslint-eslint-rules": "^5.1.0", "tslint-jsdoc-rules": "^0.1.0", "tuling123-client": "^0.0.1", diff --git a/src/abstract-puppet/contact.ts b/src/abstract-puppet/contact.ts index 964d015847875c0b423fefa1effa042d013d3315..64200d54c025a327cdcb32cc1fc7af8ee9ce9b44 100644 --- a/src/abstract-puppet/contact.ts +++ b/src/abstract-puppet/contact.ts @@ -44,8 +44,6 @@ export interface ContactQueryFilter { alias?: string | RegExp, } -export type ContactQueryName = keyof ContactQueryFilter - /** * All wechat contacts(friend) will be encapsulated as a Contact. * diff --git a/src/abstract-puppet/index.ts b/src/abstract-puppet/index.ts index f9439ad3d783f70fd9ce2505639edaf01e568b2c..65a8df652149f25e65b107ff4e5de6401c69b108 100644 --- a/src/abstract-puppet/index.ts +++ b/src/abstract-puppet/index.ts @@ -19,7 +19,6 @@ export { } from './puppet-accessory' export { Room, - RoomMemberQueryName, RoomMemberQueryFilter, RoomQueryFilter, } from './room' diff --git a/src/abstract-puppet/puppet.ts b/src/abstract-puppet/puppet.ts index 09bd02b2e783eea857bf76328ff9d5a9dbef5f42..d0692ad082e48b2a71f139521ad4bc33298bed3f 100644 --- a/src/abstract-puppet/puppet.ts +++ b/src/abstract-puppet/puppet.ts @@ -62,16 +62,16 @@ export interface PuppetOptions { wechaty: Wechaty, } -export type PuppetContactClass = typeof Contact & Constructor<{}> -export type PuppetFriendRequestClass = typeof FriendRequest & Constructor<{}> -export type PuppetMessageClass = typeof Message & Constructor<{}> -export type PuppetRoomClass = typeof Room & Constructor<{}> +export type PuppetContact = typeof Contact & Constructor<{}> +export type PuppetFriendRequest = typeof FriendRequest & Constructor<{}> +export type PuppetMessage = typeof Message & Constructor<{}> +export type PuppetRoom = typeof Room & Constructor<{}> export interface PuppetClasses { - Contact: PuppetContactClass, - FriendRequest: PuppetFriendRequestClass, - Message: PuppetMessageClass, - Room: PuppetRoomClass, + Contact: PuppetContact, + FriendRequest: PuppetFriendRequest, + Message: PuppetMessage, + Room: PuppetRoom, } /** @@ -86,17 +86,17 @@ export abstract class Puppet extends EventEmitter implements Sayable { public watchdog: Watchdog // tslint:disable-next-line:variable-name - public Contact: PuppetContactClass + public Contact: PuppetContact // tslint:disable-next-line:variable-name - public FriendRequest: PuppetFriendRequestClass + public FriendRequest: PuppetFriendRequest // tslint:disable-next-line:variable-name - public Message: PuppetMessageClass + public Message: PuppetMessage // tslint:disable-next-line:variable-name - public Room: PuppetRoomClass + public Room: PuppetRoom constructor( public options: PuppetOptions, - classes: PuppetClasses, + public classes: PuppetClasses, ) { super() diff --git a/src/abstract-puppet/room.ts b/src/abstract-puppet/room.ts index cedde0333b25c9e2e9e3681014653ac8f2a0ae22..d7d2a2fbabe106876ec7dc5f594fd5a1303c24d2 100644 --- a/src/abstract-puppet/room.ts +++ b/src/abstract-puppet/room.ts @@ -38,8 +38,6 @@ export interface RoomMemberQueryFilter { contactAlias?: string, } -export type RoomMemberQueryName = keyof RoomMemberQueryFilter - export interface RoomQueryFilter { topic: string | RegExp, } diff --git a/src/profile.ts b/src/profile.ts index e6e934af74999e04ca67204a205135ddd3fde9f4..95fa2ab092987da029e9ea190bac675b8218f15d 100644 --- a/src/profile.ts +++ b/src/profile.ts @@ -24,15 +24,15 @@ import { log, } from './config' -export type ProfileSection = 'cookies' | 'ToBeAdded' - export interface ProfileSchema { - cookies?: any[] + cookies?: any[] } +export type ProfileSection = keyof ProfileSchema + export class Profile { - private obj : ProfileSchema - private file : string | null + private obj : ProfileSchema + private file? : string constructor( public name = config.profile, @@ -40,7 +40,7 @@ export class Profile { log.verbose('Profile', 'constructor(%s)', name) if (!name) { - this.file = null + this.file = undefined } else { this.file = path.isAbsolute(name) ? name @@ -58,7 +58,7 @@ export class Profile { return `Profile<${this.name}>` } - public load(): void { + public async load(): Promise { log.verbose('Profile', 'load() file: %s', this.file) this.obj = {} @@ -80,7 +80,7 @@ export class Profile { } } - public save(): void { + public async save(): Promise { log.verbose('Profile', 'save() file: %s', this.file) if (!this.file) { log.verbose('Profile', 'save() no file, NOOP') @@ -100,15 +100,15 @@ export class Profile { } } - public get(section: ProfileSection): null | any { + public async get(section: ProfileSection): Promise { log.verbose('Profile', 'get(%s)', section) if (!this.obj) { return null } - return this.obj[section] + return this.obj[section] as any as T } - public set(section: ProfileSection, data: any): void { + public async set(section: ProfileSection, data: any): Promise { log.verbose('Profile', 'set(%s, %s)', section, data) if (!this.obj) { this.obj = {} @@ -116,12 +116,12 @@ export class Profile { this.obj[section] = data } - public destroy(): void { + public async destroy(): Promise { log.verbose('Profile', 'destroy() file: %s', this.file) this.obj = {} if (this.file && fs.existsSync(this.file)) { fs.unlinkSync(this.file) - this.file = null + this.file = undefined } } } diff --git a/src/puppet-web/web-room.ts b/src/puppet-web/web-room.ts index 0d3b120ef2d2fd28de4b5a0ba963dc0646d402a8..ab9f8465f3a1fa4094eba689cdc3093b6c230fb7 100644 --- a/src/puppet-web/web-room.ts +++ b/src/puppet-web/web-room.ts @@ -18,17 +18,13 @@ * @ignore */ import { - // config, Raven, log, } from '../config' import Misc from '../misc' import { Room, - // RoomEventName, - RoomMemberQueryName, RoomMemberQueryFilter, - // RoomQueryFilter, } from '../abstract-puppet/' import PuppetWeb from './puppet-web' @@ -257,7 +253,10 @@ export class WebRoom extends Room { /** * @private */ - private parseMap(parseContent: RoomMemberQueryName, memberList?: WebRoomRawMember[]): Map { + private parseMap( + parseSection: keyof RoomMemberQueryFilter, + memberList?: WebRoomRawMember[], + ): Map { const mapList: Map = new Map() if (memberList && memberList.map) { memberList.forEach(member => { @@ -265,7 +264,7 @@ export class WebRoom extends Room { const contact = WebContact.load(member.UserName) contact.puppet = this.puppet - switch (parseContent) { + switch (parseSection) { case 'name': tmpName = contact.name() break