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(); + })(), + }; }