From 2fe59ca859b4ff4e9cc86805e8a1d3c210e3ae0d Mon Sep 17 00:00:00 2001 From: Ryan Sproule Date: Thu, 13 Nov 2025 11:22:15 -0500 Subject: [PATCH 1/2] need to do some tricks to get the env app id stuff to work --- templates/echo-cli/package.json | 5 +-- templates/echo-cli/scripts/build.js | 46 ++++++++++++++++++++++++++ templates/echo-cli/src/core/profile.ts | 4 +-- 3 files changed, 51 insertions(+), 4 deletions(-) create mode 100644 templates/echo-cli/scripts/build.js diff --git a/templates/echo-cli/package.json b/templates/echo-cli/package.json index 355a42dbe..3acaa4e08 100644 --- a/templates/echo-cli/package.json +++ b/templates/echo-cli/package.json @@ -9,8 +9,8 @@ }, "scripts": { "start": "tsx src/index.ts", - "dev": "tsx src/index.ts", - "build": "tsc", + "dev": "tsx --env-file=.env.local src/index.ts", + "build": "node scripts/build.js", "clean": "rm -rf dist", "typecheck": "tsc --noEmit" }, @@ -36,6 +36,7 @@ "cli-table3": "^0.6.5", "commander": "^14.0.2", "conf": "^15.0.2", + "dotenv": "^16.4.7", "ink": "^6.4.0", "keytar": "^7.9.0", "open": "^10.2.0", diff --git a/templates/echo-cli/scripts/build.js b/templates/echo-cli/scripts/build.js new file mode 100644 index 000000000..5592c9245 --- /dev/null +++ b/templates/echo-cli/scripts/build.js @@ -0,0 +1,46 @@ +import { execSync } from 'child_process'; +import { readFileSync, writeFileSync } from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname, join } from 'path'; +import dotenv from 'dotenv'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = dirname(__filename); +const rootDir = join(__dirname, '..'); + +// Load environment variables from .env.local +dotenv.config({ path: join(rootDir, '.env.local') }); + +const ECHO_APP_ID = process.env.ECHO_APP_ID; + +if (!ECHO_APP_ID) { + console.error('Error: ECHO_APP_ID not found in .env.local'); + process.exit(1); +} + +const constantsPath = join(rootDir, 'src', 'constants.ts'); + +// Read the original file +const originalContent = readFileSync(constantsPath, 'utf8'); + +// Replace process.env.ECHO_APP_ID with the actual value +const modifiedContent = originalContent.replace( + /export const ECHO_APP_ID = process\.env\.ECHO_APP_ID!;/, + `export const ECHO_APP_ID = '${ECHO_APP_ID}';` +); + +try { + // Write modified content + writeFileSync(constantsPath, modifiedContent, 'utf8'); + console.log('Building with ECHO_APP_ID:', ECHO_APP_ID); + + // Run TypeScript compiler + execSync('tsc', { stdio: 'inherit', cwd: rootDir }); + + console.log('Build completed successfully!'); +} finally { + // Always restore the original file + writeFileSync(constantsPath, originalContent, 'utf8'); + console.log('Restored original constants.ts'); +} + diff --git a/templates/echo-cli/src/core/profile.ts b/templates/echo-cli/src/core/profile.ts index 03af7ab45..cc193c053 100644 --- a/templates/echo-cli/src/core/profile.ts +++ b/templates/echo-cli/src/core/profile.ts @@ -46,7 +46,7 @@ async function showEchoProfile(): Promise { label('Email:', chalk.white(user.email)) label('Balance:', chalk.green(`$${balance.balance.toFixed(4)}`)) label('Total Spent:', chalk.yellow(`$${balance.totalSpent.toFixed(4)}`)) - label('Created:', chalk.white(new Date(user.createdAt).toLocaleDateString())) + label('Created:', chalk.white(new Date(user.createdAt as string).toLocaleDateString())) blankLine() } catch (err) { displayAppError(createError({ @@ -89,7 +89,7 @@ async function showLocalWalletProfile(): Promise { } try { - const balance = await getUSDCBalance(session.address, session.chainId) + const balance = await getUSDCBalance(session.address as `0x${string}`, session.chainId) blankLine() header('=== Local Wallet Profile ===') From d58b094f985c4639a2753fad54045cd31e86eeb8 Mon Sep 17 00:00:00 2001 From: Ryan Sproule Date: Thu, 13 Nov 2025 11:23:52 -0500 Subject: [PATCH 2/2] fmt --- templates/echo-cli/scripts/build.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/templates/echo-cli/scripts/build.js b/templates/echo-cli/scripts/build.js index 5592c9245..ec4dfefde 100644 --- a/templates/echo-cli/scripts/build.js +++ b/templates/echo-cli/scripts/build.js @@ -1,8 +1,8 @@ import { execSync } from 'child_process'; +import dotenv from 'dotenv'; import { readFileSync, writeFileSync } from 'fs'; -import { fileURLToPath } from 'url'; import { dirname, join } from 'path'; -import dotenv from 'dotenv'; +import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); @@ -43,4 +43,3 @@ try { writeFileSync(constantsPath, originalContent, 'utf8'); console.log('Restored original constants.ts'); } -