fix(cli): implement Node 22 mjs entrypoint to bypass type stripping limit

This commit is contained in:
diegosouzapw
2026-04-16 09:59:58 -03:00
parent fb2141382f
commit 8d52a6cc7a
3 changed files with 20 additions and 1 deletions

1
.gitignore vendored
View File

@@ -170,3 +170,4 @@ docs/superpowers/
# GitNexus local index
.gitnexus
.worktrees
bin/omniroute.mjs

View File

@@ -4,7 +4,7 @@
"description": "Smart AI Router with auto fallback — route to FREE & cheap models, zero downtime. Works with Cursor, Cline, Claude Desktop, Codex, and any OpenAI-compatible tool.",
"type": "module",
"bin": {
"omniroute": "bin/omniroute.ts",
"omniroute": "bin/omniroute.mjs",
"omniroute-reset-password": "bin/reset-password.mjs"
},
"files": [

View File

@@ -372,6 +372,24 @@ if (existsSync(mcpSrcFile)) {
}
}
// ── Step 8.7: Bundle CLI Entrypoint ──────────────────────────
const cliSrcFile = join(ROOT, "bin", "omniroute.ts");
const cliDestFile = join(ROOT, "bin", "omniroute.mjs");
if (existsSync(cliSrcFile)) {
console.log(" 🔨 Bundling CLI Entrypoint (TypeScript → JavaScript)...");
try {
execSync(
`npx esbuild bin/omniroute.ts --bundle --platform=node --packages=external --format=esm --outfile=bin/omniroute.mjs`,
{ cwd: ROOT, stdio: "inherit" }
);
execSync(`chmod +x bin/omniroute.mjs`, { cwd: ROOT });
console.log(" ✅ CLI Entrypoint bundled to bin/omniroute.mjs");
} catch (err: any) {
console.warn(" ⚠️ CLI bundle error:", err.message);
}
}
// ── Step 9: Copy shared utilities needed at runtime ────────
const sharedApiKey = join(ROOT, "src", "shared", "utils", "apiKey.js");
const sharedApiKeyDest = join(APP_DIR, "src", "shared", "utils");