#!/usr/bin/env node import path from 'node:path'; import { fileURLToPath } from 'node:url'; import { createRequire } from 'node:module'; import { rebuild } from '@electron/rebuild'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); const electronDir = path.resolve(__dirname, '..'); const repoRoot = path.resolve(electronDir, '..', '..'); const require = createRequire(import.meta.url); const electronPkg = require('electron/package.json'); const electronVersion = electronPkg.version; console.log(`[electron] rebuilding native modules against Electron ${electronVersion}...`); // Rebuild against the hoisted root node_modules (bun workspace layout). // force=true re-links regardless of cached state; prebuild-install lookup is // bypassed by @electron/rebuild in favor of direct node-gyp builds. await rebuild({ buildPath: repoRoot, electronVersion, force: true, arch: process.env.ELECTRON_BUILDER_ARCH || process.arch, onlyModules: ['better-sqlite3', 'node-pty', 'bun-pty'], }); console.log('[electron] native modules rebuilt successfully');