From 53ba53cb7727121d3f983917e6b628d9449d1c74 Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Mon, 20 Oct 2025 11:43:32 -0700 Subject: [PATCH] fix: refactor config printing into own function --- packages/run/scripts/info.ts | 36 ++----------------------- packages/run/scripts/start.ts | 36 ++----------------------- packages/run/src/utils.ts | 50 +++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 68 deletions(-) diff --git a/packages/run/scripts/info.ts b/packages/run/scripts/info.ts index 84e0ac6143..d86a25859a 100755 --- a/packages/run/scripts/info.ts +++ b/packages/run/scripts/info.ts @@ -10,7 +10,7 @@ import { NODE1_PEER_ID, NODE2_PEER_ID } from "../src/constants.js"; -import { getProjectName } from "../src/utils.js"; +import { getProjectName, printWakuConfig } from "../src/utils.js"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -65,39 +65,7 @@ try { const peer2: string = NODE2_PEER_ID; // Print TypeScript-style config - process.stdout.write( - `${colors.blue}import${colors.reset} { createLightNode } ${colors.blue}from${colors.reset} ${colors.yellow}"@waku/sdk"${colors.reset};\n` - ); - process.stdout.write(`\n`); - process.stdout.write( - `${colors.blue}const${colors.reset} waku = ${colors.blue}await${colors.reset} createLightNode({\n` - ); - process.stdout.write( - ` defaultBootstrap: ${colors.cyan}false${colors.reset},\n` - ); - process.stdout.write(` bootstrapPeers: [\n`); - process.stdout.write( - ` ${colors.yellow}"/ip4/127.0.0.1/tcp/${node1Port}/ws/p2p/${peer1}"${colors.reset},\n` - ); - process.stdout.write( - ` ${colors.yellow}"/ip4/127.0.0.1/tcp/${node2Port}/ws/p2p/${peer2}"${colors.reset}\n` - ); - process.stdout.write(` ],\n`); - process.stdout.write(` numPeersToUse: ${colors.cyan}2${colors.reset},\n`); - process.stdout.write(` libp2p: {\n`); - process.stdout.write( - ` filterMultiaddrs: ${colors.cyan}false${colors.reset}\n` - ); - process.stdout.write(` },\n`); - process.stdout.write(` networkConfig: {\n`); - process.stdout.write( - ` clusterId: ${colors.cyan}${clusterId}${colors.reset},\n` - ); - process.stdout.write( - ` numShardsInCluster: ${colors.cyan}8${colors.reset}\n` - ); - process.stdout.write(` }\n`); - process.stdout.write(`});\n`); + printWakuConfig(colors, node1Port, node2Port, peer1, peer2, clusterId); } catch (error: unknown) { const err = error as { cause?: { code?: string }; message?: string }; if (err.cause?.code === "ECONNREFUSED") { diff --git a/packages/run/scripts/start.ts b/packages/run/scripts/start.ts index 9e4ecded28..6263f9e43a 100755 --- a/packages/run/scripts/start.ts +++ b/packages/run/scripts/start.ts @@ -10,7 +10,7 @@ import { NODE1_PEER_ID, NODE2_PEER_ID } from "../src/constants.js"; -import { getProjectName } from "../src/utils.js"; +import { getProjectName, printWakuConfig } from "../src/utils.js"; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -133,39 +133,7 @@ try { `${colors.gray}Copy this into your application:${colors.reset}\n\n` ); - process.stdout.write( - `${colors.blue}import${colors.reset} { createLightNode } ${colors.blue}from${colors.reset} ${colors.yellow}"@waku/sdk"${colors.reset};\n` - ); - process.stdout.write(`\n`); - process.stdout.write( - `${colors.blue}const${colors.reset} waku = ${colors.blue}await${colors.reset} createLightNode({\n` - ); - process.stdout.write( - ` defaultBootstrap: ${colors.cyan}false${colors.reset},\n` - ); - process.stdout.write(` bootstrapPeers: [\n`); - process.stdout.write( - ` ${colors.yellow}"/ip4/127.0.0.1/tcp/${node1Port}/ws/p2p/${peer1}"${colors.reset},\n` - ); - process.stdout.write( - ` ${colors.yellow}"/ip4/127.0.0.1/tcp/${node2Port}/ws/p2p/${peer2}"${colors.reset}\n` - ); - process.stdout.write(` ],\n`); - process.stdout.write(` numPeersToUse: ${colors.cyan}2${colors.reset},\n`); - process.stdout.write(` libp2p: {\n`); - process.stdout.write( - ` filterMultiaddrs: ${colors.cyan}false${colors.reset}\n` - ); - process.stdout.write(` },\n`); - process.stdout.write(` networkConfig: {\n`); - process.stdout.write( - ` clusterId: ${colors.cyan}${clusterId}${colors.reset},\n` - ); - process.stdout.write( - ` numShardsInCluster: ${colors.cyan}8${colors.reset}\n` - ); - process.stdout.write(` }\n`); - process.stdout.write(`});\n`); + printWakuConfig(colors, node1Port, node2Port, peer1, peer2, clusterId); process.stdout.write(`\n`); process.stdout.write(`${colors.gray}Management:${colors.reset}\n`); diff --git a/packages/run/src/utils.ts b/packages/run/src/utils.ts index 560cf543fb..c8c3fe5055 100644 --- a/packages/run/src/utils.ts +++ b/packages/run/src/utils.ts @@ -9,3 +9,53 @@ export function getProjectName(packageRoot: string): string { const version = packageJson.version.replace(/\./g, "-"); return `${name}-${version}`; } + +interface Colors { + reset: string; + cyan: string; + blue: string; + yellow: string; +} + +export function printWakuConfig( + colors: Colors, + node1Port: string, + node2Port: string, + peer1: string, + peer2: string, + clusterId: string +): void { + process.stdout.write( + `${colors.blue}import${colors.reset} { createLightNode } ${colors.blue}from${colors.reset} ${colors.yellow}"@waku/sdk"${colors.reset};\n` + ); + process.stdout.write(`\n`); + process.stdout.write( + `${colors.blue}const${colors.reset} waku = ${colors.blue}await${colors.reset} createLightNode({\n` + ); + process.stdout.write( + ` defaultBootstrap: ${colors.cyan}false${colors.reset},\n` + ); + process.stdout.write(` bootstrapPeers: [\n`); + process.stdout.write( + ` ${colors.yellow}"/ip4/127.0.0.1/tcp/${node1Port}/ws/p2p/${peer1}"${colors.reset},\n` + ); + process.stdout.write( + ` ${colors.yellow}"/ip4/127.0.0.1/tcp/${node2Port}/ws/p2p/${peer2}"${colors.reset}\n` + ); + process.stdout.write(` ],\n`); + process.stdout.write(` numPeersToUse: ${colors.cyan}2${colors.reset},\n`); + process.stdout.write(` libp2p: {\n`); + process.stdout.write( + ` filterMultiaddrs: ${colors.cyan}false${colors.reset}\n` + ); + process.stdout.write(` },\n`); + process.stdout.write(` networkConfig: {\n`); + process.stdout.write( + ` clusterId: ${colors.cyan}${clusterId}${colors.reset},\n` + ); + process.stdout.write( + ` numShardsInCluster: ${colors.cyan}8${colors.reset}\n` + ); + process.stdout.write(` }\n`); + process.stdout.write(`});\n`); +}