diff --git a/packages/redux-devtools-cli/src/index.ts b/packages/redux-devtools-cli/src/index.ts index c5e1f2f208..c5bad2b44c 100644 --- a/packages/redux-devtools-cli/src/index.ts +++ b/packages/redux-devtools-cli/src/index.ts @@ -1,10 +1,10 @@ import express from 'express'; -import http from 'http'; import getPort from 'get-port'; import socketClusterServer from 'socketcluster-server'; import getOptions from './options.js'; import routes from './routes.js'; import createStore from './store.js'; +import { createServer } from './utils/create-server.js'; // const LOG_LEVEL_NONE = 0; // const LOG_LEVEL_ERROR = 1; @@ -37,7 +37,8 @@ export default async function (argv: { [arg: string]: any }): Promise<{ console.log('[ReduxDevTools] Start server...'); console.log('-'.repeat(80) + '\n'); } - const httpServer = http.createServer(); + + const httpServer = createServer(argv); const agServer = socketClusterServer.attach(httpServer, options); const app = express(); diff --git a/packages/redux-devtools-cli/src/utils/create-server.ts b/packages/redux-devtools-cli/src/utils/create-server.ts new file mode 100644 index 0000000000..17ecc4f47b --- /dev/null +++ b/packages/redux-devtools-cli/src/utils/create-server.ts @@ -0,0 +1,25 @@ +import http from 'http'; +import https from 'https'; + +export const createServer = (argv: { [arg: string]: unknown }): http.Server | https.Server => { + const typedArgv = argv as { + protocol: string; + key: string; + cert: string; + }; + + let result; + + if (typedArgv.protocol === 'https') { + const options = { + key: typedArgv.key, + cert: typedArgv.cert, + }; + + result = https.createServer(options); + } else { + result = http.createServer(); + } + + return result; +} \ No newline at end of file