From 9d45c8695514d271c136f002d63e6f73b8db6a6a Mon Sep 17 00:00:00 2001 From: Nathan Bierema Date: Sun, 8 Jan 2023 14:03:17 -0500 Subject: [PATCH] Update ready promise --- .../redux-devtools-cli/src/bin/injectServer.ts | 2 +- .../src/bin/redux-devtools.ts | 12 +++++------- packages/redux-devtools-cli/src/index.ts | 17 +++++++---------- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/packages/redux-devtools-cli/src/bin/injectServer.ts b/packages/redux-devtools-cli/src/bin/injectServer.ts index 93ccd2b4..50c01ad7 100644 --- a/packages/redux-devtools-cli/src/bin/injectServer.ts +++ b/packages/redux-devtools-cli/src/bin/injectServer.ts @@ -56,7 +56,7 @@ export function inject( startFlag, ' require("' + name + '")(' + JSON.stringify(options) + ')', ' .then(_remotedev =>', - ' _remotedev.on("ready", () => {', + ' _remotedev.ready.then(() => {', ' if (!_remotedev.portAlreadyUsed) console.log("-".repeat(80));', ' ' + serverFlag, ' })', diff --git a/packages/redux-devtools-cli/src/bin/redux-devtools.ts b/packages/redux-devtools-cli/src/bin/redux-devtools.ts index d7b5a704..2356bab5 100644 --- a/packages/redux-devtools-cli/src/bin/redux-devtools.ts +++ b/packages/redux-devtools-cli/src/bin/redux-devtools.ts @@ -87,10 +87,8 @@ if (argv.injectserver) { ); } -// eslint-disable-next-line @typescript-eslint/no-floating-promises -server(argv).then(async function (r) { - if (argv.open && argv.open !== 'false') { - await r.listener('ready').once(); - await openApp(argv.open as string, options); - } -}); +const response = await server(argv); +if (argv.open && argv.open !== 'false') { + await response.ready; + await openApp(argv.open as string, options); +} diff --git a/packages/redux-devtools-cli/src/index.ts b/packages/redux-devtools-cli/src/index.ts index fd93931b..6fc2036b 100644 --- a/packages/redux-devtools-cli/src/index.ts +++ b/packages/redux-devtools-cli/src/index.ts @@ -13,7 +13,7 @@ const LOG_LEVEL_INFO = 3; export default async function (argv: { [arg: string]: any }): Promise<{ portAlreadyUsed?: boolean; - listener: (eventName: 'ready') => { once(): Promise }; + ready: Promise; }> { const options = Object.assign(getOptions(argv), { allowClientPublish: false, @@ -29,13 +29,7 @@ export default async function (argv: { [arg: string]: any }): Promise<{ } return { portAlreadyUsed: true, - listener: function () { - return { - once() { - return Promise.resolve(); - }, - }; - }, + ready: Promise.resolve(), }; } @@ -135,6 +129,9 @@ export default async function (argv: { [arg: string]: any }): Promise<{ })(); httpServer.listen(options.port); - // @ts-expect-error Shouldn't there be a 'ready' event? - return agServer; + return { + ready: (async () => { + await agServer.listener('ready' as 'error').once(); + })(), + }; }