From afba008363d82437c6eceff2e08508cb2b5382b3 Mon Sep 17 00:00:00 2001 From: Max Leiter Date: Tue, 31 May 2022 13:44:54 -0700 Subject: [PATCH] Fix package commands by adding .argument() call --- client/js/router.ts | 2 +- client/js/socket-events/quit.ts | 4 ++-- src/command-line/install.ts | 5 +++-- src/command-line/uninstall.ts | 19 ++++++++++++------- src/command-line/upgrade.ts | 1 + src/command-line/users/list.ts | 1 + src/command-line/users/remove.ts | 1 + src/command-line/users/reset.ts | 1 + src/plugins/irc-events/connection.ts | 1 + src/plugins/irc-events/mode.ts | 2 +- src/plugins/irc-events/nick.ts | 1 + src/types/modules/irc-framework.d.ts | 2 +- src/types/socket-events.d.ts | 8 ++++++-- test/fixtures/.thelounge/sts-policies.json | 2 +- test/models/network.ts | 1 - test/util.ts | 4 ++-- 16 files changed, 35 insertions(+), 20 deletions(-) diff --git a/client/js/router.ts b/client/js/router.ts index ab79f329..c5e2879e 100644 --- a/client/js/router.ts +++ b/client/js/router.ts @@ -171,7 +171,7 @@ async function navigate(routeName: string, params: any = {}) { } function switchToChannel(channel: ClientChan) { - return void navigate("RoutedChat", {id: channel.id}); + void navigate("RoutedChat", {id: channel.id}); } if ("serviceWorker" in navigator) { diff --git a/client/js/socket-events/quit.ts b/client/js/socket-events/quit.ts index cf042b47..21460fb3 100644 --- a/client/js/socket-events/quit.ts +++ b/client/js/socket-events/quit.ts @@ -2,7 +2,7 @@ import socket from "../socket"; import {switchToChannel, navigate} from "../router"; import {store} from "../store"; -socket.on("quit", function (data) { +socket.on("quit", async function (data) { // If we're in a channel, and it's on the network that is being removed, // then open another channel window const isCurrentNetworkBeingRemoved = @@ -17,6 +17,6 @@ socket.on("quit", function (data) { if (store.state.networks.length > 0) { switchToChannel(store.state.networks[0].channels[0]); } else { - navigate("Connect"); + await navigate("Connect"); } }); diff --git a/src/command-line/install.ts b/src/command-line/install.ts index a04e3d6a..eb299e2a 100644 --- a/src/command-line/install.ts +++ b/src/command-line/install.ts @@ -9,9 +9,10 @@ import {Command} from "commander"; const program = new Command("install"); program .usage("install ") + .argument("", "package to install") .description("Install a theme or a package") .on("--help", Utils.extraHelp) - .action(async function (packageName) { + .action(async function (packageName: string) { const fs = await import("fs"); const fspromises = fs.promises; const path = await import("path"); @@ -31,7 +32,7 @@ program isLocalFile = true; readFile = fspromises .readFile(path.join(packageName.substr("file:".length), "package.json"), "utf-8") - .then((data) => JSON.parse(data)); + .then((data) => JSON.parse(data) as typeof packageJson); } else { const split = packageName.split("@"); packageName = split[0]; diff --git a/src/command-line/uninstall.ts b/src/command-line/uninstall.ts index 04c88ca6..9a8631ba 100644 --- a/src/command-line/uninstall.ts +++ b/src/command-line/uninstall.ts @@ -7,10 +7,13 @@ import Utils from "./utils"; const program = new Command("uninstall"); program .usage("uninstall ") + .argument("", "The package to uninstall") .description("Uninstall a theme or a package") .on("--help", Utils.extraHelp) - .action(function (packageName) { + .action(function (packageName: string) { + // eslint-disable-next-line @typescript-eslint/no-var-requires const fs = require("fs"); + // eslint-disable-next-line @typescript-eslint/no-var-requires const path = require("path"); const packagesConfig = path.join(Config.getPackagesPath(), "package.json"); @@ -20,20 +23,22 @@ program !packages.dependencies || !Object.prototype.hasOwnProperty.call(packages.dependencies, packageName) ) { + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions log.warn(`${colors.green(packageName)} is not installed.`); process.exit(1); } log.info(`Uninstalling ${colors.green(packageName)}...`); - return Utils.executeYarnCommand("remove", packageName) - .then(() => { + try { + void Utils.executeYarnCommand("remove", packageName).then(() => { log.info(`${colors.green(packageName)} has been successfully uninstalled.`); - }) - .catch((code) => { - log.error(`Failed to uninstall ${colors.green(packageName)}. Exit code: ${code}`); - process.exit(1); }); + } catch (code_1) { + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + log.error(`Failed to uninstall ${colors.green(packageName)}. Exit code: ${code_1}`); + process.exit(1); + } }); export default program; diff --git a/src/command-line/upgrade.ts b/src/command-line/upgrade.ts index 3b27f13f..d567be73 100644 --- a/src/command-line/upgrade.ts +++ b/src/command-line/upgrade.ts @@ -8,6 +8,7 @@ import Utils from "./utils"; const program = new Command("upgrade"); program .usage("upgrade [packages...]") + .arguments("[packages...]") .description("Upgrade installed themes and packages to their latest versions") .on("--help", Utils.extraHelp) .action(function (packages) { diff --git a/src/command-line/users/list.ts b/src/command-line/users/list.ts index a7941726..90e33787 100644 --- a/src/command-line/users/list.ts +++ b/src/command-line/users/list.ts @@ -9,6 +9,7 @@ program .description("List all users") .on("--help", Utils.extraHelp) .action(function () { + // eslint-disable-next-line @typescript-eslint/no-var-requires const ClientManager = require("../../clientManager"); const users = new ClientManager().getUsers(); diff --git a/src/command-line/users/remove.ts b/src/command-line/users/remove.ts index a0d6659c..3cebdcc7 100644 --- a/src/command-line/users/remove.ts +++ b/src/command-line/users/remove.ts @@ -16,6 +16,7 @@ program return; } + // eslint-disable-next-line @typescript-eslint/no-var-requires const ClientManager = require("../../clientManager"); const manager = new ClientManager(); diff --git a/src/command-line/users/reset.ts b/src/command-line/users/reset.ts index b95044b8..da868456 100644 --- a/src/command-line/users/reset.ts +++ b/src/command-line/users/reset.ts @@ -18,6 +18,7 @@ program return; } + // eslint-disable-next-line @typescript-eslint/no-var-requires const ClientManager = require("../../clientManager"); const users = new ClientManager().getUsers(); diff --git a/src/plugins/irc-events/connection.ts b/src/plugins/irc-events/connection.ts index bffa77af..2f06b63a 100644 --- a/src/plugins/irc-events/connection.ts +++ b/src/plugins/irc-events/connection.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/restrict-plus-operands */ import _ from "lodash"; import {IrcEventHandler} from "../../client"; diff --git a/src/plugins/irc-events/mode.ts b/src/plugins/irc-events/mode.ts index d7498379..ec5bf558 100644 --- a/src/plugins/irc-events/mode.ts +++ b/src/plugins/irc-events/mode.ts @@ -2,7 +2,6 @@ import _ from "lodash"; import {IrcEventHandler} from "../../client"; import Msg, {MessageType} from "../../models/msg"; -import User from "../../models/user"; export default function (irc, network) { const client = this; @@ -35,6 +34,7 @@ export default function (irc, network) { const msg = new Msg({ type: MessageType.MODE_CHANNEL, + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions text: `${data.raw_modes} ${data.raw_params.join(" ")}`, }); targetChan.pushMessage(client, msg); diff --git a/src/plugins/irc-events/nick.ts b/src/plugins/irc-events/nick.ts index f4b9f3d3..34e89f5a 100644 --- a/src/plugins/irc-events/nick.ts +++ b/src/plugins/irc-events/nick.ts @@ -13,6 +13,7 @@ export default function (irc, network) { const lobby = network.channels[0]; const msg = new Msg({ + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions text: `You're now known as ${data.new_nick}`, }); lobby.pushMessage(client, msg, true); diff --git a/src/types/modules/irc-framework.d.ts b/src/types/modules/irc-framework.d.ts index 3d5ca447..d001461a 100644 --- a/src/types/modules/irc-framework.d.ts +++ b/src/types/modules/irc-framework.d.ts @@ -1,5 +1,5 @@ // @ts-nocheck -// @eslint-disable +// eslint-disable // https://raw.githubusercontent.com/eternagame/HTML-Chat/vue-rewrite/src/app/types/modules/irc-framework/irc-framework.d.ts // TODO: Fix this diff --git a/src/types/socket-events.d.ts b/src/types/socket-events.d.ts index 647da190..e9705b66 100644 --- a/src/types/socket-events.d.ts +++ b/src/types/socket-events.d.ts @@ -1,6 +1,7 @@ -import {ClientNetwork} from "../../client/js/types"; +import {ClientMessage, ClientNetwork} from "../../client/js/types"; import {Mention} from "../client"; import Msg from "../models/msg"; +import Network from "../models/network"; import {ChangelogData} from "../plugins/changelog"; import {ClientConfiguration} from "../server"; @@ -37,7 +38,6 @@ interface ServerToClientEvents { "mentions:list": (data: Mention[]) => void; "setting:new": ({name: string, value: any}) => void; - "setting:all": (settings: {[key: string]: any}) => void; more: ({ @@ -61,6 +61,10 @@ interface ServerToClientEvents { networks: ClientNetwork[]; token: string; }) => void; + + "search:results": (response: {results: ClientMessage[]}) => void; + + quit: ({network}: {network: string}) => void; } interface ClientToServerEvents { diff --git a/test/fixtures/.thelounge/sts-policies.json b/test/fixtures/.thelounge/sts-policies.json index 505bccba..b7361e62 100644 --- a/test/fixtures/.thelounge/sts-policies.json +++ b/test/fixtures/.thelounge/sts-policies.json @@ -3,6 +3,6 @@ "host": "irc.example.com", "port": 7000, "duration": 3600, - "expires": 1654030206992 + "expires": 1654030493590 } ] diff --git a/test/models/network.ts b/test/models/network.ts index c5a21359..264250c4 100644 --- a/test/models/network.ts +++ b/test/models/network.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ "use strict"; import {expect} from "chai"; diff --git a/test/util.ts b/test/util.ts index 0cf86e10..71363395 100644 --- a/test/util.ts +++ b/test/util.ts @@ -1,11 +1,11 @@ "use strict"; -import util from "util"; import _ from "lodash"; import express from "express"; import Network from "../src/models/network"; import Chan from "../src/models/chan"; import {EventEmitter} from "events"; +import {Message} from "../src/models/msg"; class MockClient extends EventEmitter { config: { @@ -29,7 +29,7 @@ class MockClient extends EventEmitter { previews: [], }, opts - ); + ) as Message; return message; }