From afe881c2e93c2fb83e5a245d1d6fcd9420ac18b8 Mon Sep 17 00:00:00 2001 From: Will Hunt <will@half-shot.uk> Date: Mon, 29 Apr 2019 17:47:50 +0100 Subject: [PATCH] Linting --- src/clientfactory.ts | 6 ++++-- src/discordas.ts | 13 ++++++++----- src/util.ts | 2 +- test/test_discordbot.ts | 3 +-- test/test_util.ts | 5 +++-- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/clientfactory.ts b/src/clientfactory.ts index 84bebbd..18c8a2e 100644 --- a/src/clientfactory.ts +++ b/src/clientfactory.ts @@ -65,7 +65,9 @@ export class DiscordClientFactory { await client.login(token); const id = client.user.id; - client.destroy(); + client.destroy().catch(() => { + log.warn("Failed to destroy client ", id); + }); return id; } @@ -73,7 +75,7 @@ export class DiscordClientFactory { if (userId === null) { return this.botClient; } - + if (this.clients.has(userId)) { log.verbose("Returning cached user client for", userId); return this.clients.get(userId) as DiscordClient; diff --git a/src/discordas.ts b/src/discordas.ts index e7f6db7..6e28a04 100644 --- a/src/discordas.ts +++ b/src/discordas.ts @@ -94,9 +94,12 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { } catch (err) { log.error("Exception thrown while handling \"onAliasQuery\" event", err); } }, onEvent: async (request) => { - const done = function (resolve, reject) { - (this as Promise<any>).then(resolve); - (this as Promise<any>).then(reject); + // tslint:disable-next-line no-any + const done = function(resolve: (res: any) => void, reject: (err: Error) => void) { + // tslint:disable-next-line no-invalid-this no-floating-promises + (this as Promise<{}>).then(resolve); + // tslint:disable-next-line no-invalid-this no-floating-promises + (this as Promise<{}>).then(reject); }; try { // Build our own context. @@ -115,8 +118,8 @@ async function run(port: number, fileConfig: DiscordBridgeConfig) { await request.outcomeFrom({ done, - ...callbacks.onEvent(request, context) - } as IRequestPromise<any>); + ...callbacks.onEvent(request, context), + } as IRequestPromise<{}>); } catch (err) { log.error("Exception thrown while handling \"onEvent\" event", err); await request.outcomeFrom({done, ...Promise.reject("Failed to handle")}); diff --git a/src/util.ts b/src/util.ts index fd3790d..96ab13d 100644 --- a/src/util.ts +++ b/src/util.ts @@ -52,7 +52,7 @@ export interface IPatternMap { } export interface IRequestPromise<T> extends PromiseLike<T> { - done (resolve: (msg: T) => {}, reject: (err: Error) => {}): void; + done(resolve: (msg: T) => {}, reject: (err: Error) => {}): void; } export class Util { diff --git a/test/test_discordbot.ts b/test/test_discordbot.ts index dc3b79f..4730603 100644 --- a/test/test_discordbot.ts +++ b/test/test_discordbot.ts @@ -65,11 +65,10 @@ const modDiscordBot = Proxyquire("../src/bot", { "./clientfactory": require("./mocks/discordclientfactory"), "./util": { Util: { - AsyncForEach: Util.AsyncForEach, + ...Util, UploadContentFromUrl: async () => { return {mxcUrl: "uploaded"}; }, - DelayedPromise: Util.DelayedPromise, }, }, }); diff --git a/test/test_util.ts b/test/test_util.ts index 45c39b1..1766426 100644 --- a/test/test_util.ts +++ b/test/test_util.ts @@ -181,9 +181,10 @@ describe("Util", () => { }); describe("DelayedPromise", () => { it("delays for some time", async () => { + const DELAY_FOR = 250; const t = Date.now(); - await Util.DelayedPromise(250); - expect(Date.now()).to.be.greaterThan(t + 249); + await Util.DelayedPromise(DELAY_FOR); + expect(Date.now()).to.be.greaterThan(t + DELAY_FOR - 1); }); }); }); -- GitLab