@simonecoelhosfo/optimizely-mcp-server
Version:
Optimizely MCP Server for AI assistants with integrated CLI tools
63 lines • 2.66 kB
JavaScript
/**
* Loader for better-sqlite3 that uses embedded binaries from npm package
*/
import { createRequire } from 'module';
import * as path from 'path';
import * as fs from 'fs';
import { fileURLToPath } from 'url';
const require = createRequire(import.meta.url);
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Synchronous binary installation
(() => {
const platform = process.platform;
const arch = process.arch;
const platformDir = `${platform}-${arch}`;
const nodeVersion = process.versions.modules;
// Find our package root
let packageRoot = __dirname;
while (!fs.existsSync(path.join(packageRoot, 'prebuilds')) && packageRoot !== path.parse(packageRoot).root) {
packageRoot = path.dirname(packageRoot);
}
const ourBinaryPath = path.join(packageRoot, 'prebuilds', platformDir, 'better_sqlite3.node');
if (fs.existsSync(ourBinaryPath)) {
try {
const betterSqlitePath = require.resolve('better-sqlite3/package.json');
const betterSqliteDir = path.dirname(betterSqlitePath);
// 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
for (const relativePath of targets) {
const targetPath = path.join(betterSqliteDir, relativePath);
try {
fs.mkdirSync(path.dirname(targetPath), { recursive: true });
fs.copyFileSync(ourBinaryPath, targetPath);
}
catch (e) {
// Continue
}
}
}
catch (e) {
// Continue
}
}
})();
// Import better-sqlite3
import Database from 'better-sqlite3';
export default Database;
//# sourceMappingURL=better-sqlite3-loader.js.map