UNPKG

@simonecoelhosfo/optimizely-mcp-server

Version:

Optimizely MCP Server for AI assistants with integrated CLI tools

71 lines (62 loc) 2.45 kB
#!/usr/bin/env node import fs from 'fs'; import path from 'path'; import { fileURLToPath } from 'url'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Simple binary copier that runs BEFORE the app starts const platform = process.platform; const arch = process.arch; const nodeVersion = process.versions.modules; // Find package root by looking for prebuilds let packageRoot = __dirname; while (!fs.existsSync(path.join(packageRoot, 'prebuilds')) && packageRoot !== path.dirname(packageRoot)) { packageRoot = path.dirname(packageRoot); } const sourceBinary = path.join(packageRoot, 'prebuilds', `${platform}-${arch}`, 'better_sqlite3.node'); if (fs.existsSync(sourceBinary)) { // Find better-sqlite3 in multiple possible locations const possiblePaths = [ path.join(packageRoot, '..', '..', 'better-sqlite3'), path.join(packageRoot, '..', 'better-sqlite3'), path.join(packageRoot, 'node_modules', 'better-sqlite3'), path.join(process.cwd(), 'node_modules', 'better-sqlite3') ]; let betterSqliteDir = null; for (const possiblePath of possiblePaths) { if (fs.existsSync(possiblePath)) { betterSqliteDir = possiblePath; break; } } if (betterSqliteDir) { // ALL possible paths from the error log const targets = [ 'build/better_sqlite3.node', 'build/Debug/better_sqlite3.node', 'build/Release/better_sqlite3.node', 'out/Debug/better_sqlite3.node', 'Debug/better_sqlite3.node', 'out/Release/better_sqlite3.node', 'Release/better_sqlite3.node', 'build/default/better_sqlite3.node', `compiled/${process.version.substring(1)}/${platform}/${arch}/better_sqlite3.node`, 'addon-build/release/install-root/better_sqlite3.node', 'addon-build/debug/install-root/better_sqlite3.node', 'addon-build/default/install-root/better_sqlite3.node', `lib/binding/node-v${nodeVersion}-${platform}-${arch}/better_sqlite3.node` ]; // Copy to ALL locations let copied = 0; for (const relativePath of targets) { const targetPath = path.join(betterSqliteDir, relativePath); try { fs.mkdirSync(path.dirname(targetPath), { recursive: true }); fs.copyFileSync(sourceBinary, targetPath); copied++; } catch (e) { // Continue } } } }