mirror of
https://github.com/samsonjs/vibetunnel.git
synced 2026-04-03 10:55:54 +00:00
52 lines
No EOL
1.3 KiB
JavaScript
Executable file
52 lines
No EOL
1.3 KiB
JavaScript
Executable file
#!/usr/bin/env node
|
|
|
|
// Test server runner that builds and runs the JavaScript version to avoid tsx/node-pty issues
|
|
const { spawn, execSync } = require('child_process');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
const projectRoot = path.join(__dirname, '..');
|
|
|
|
// Build server TypeScript files
|
|
console.log('Building server TypeScript files for tests...');
|
|
try {
|
|
execSync('pnpm exec tsc -p tsconfig.server.json', {
|
|
stdio: 'inherit',
|
|
cwd: projectRoot
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to build server TypeScript files:', error);
|
|
process.exit(1);
|
|
}
|
|
|
|
// Ensure native modules are available
|
|
execSync('node scripts/ensure-native-modules.js', {
|
|
stdio: 'inherit',
|
|
cwd: projectRoot
|
|
});
|
|
|
|
// Forward all arguments to the built JavaScript version
|
|
const cliPath = path.join(projectRoot, 'dist/cli.js');
|
|
|
|
// Check if the built file exists
|
|
if (!fs.existsSync(cliPath)) {
|
|
console.error(`Built CLI not found at ${cliPath}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
const args = [cliPath, ...process.argv.slice(2)];
|
|
|
|
// Spawn node with the built CLI
|
|
const child = spawn('node', args, {
|
|
stdio: 'inherit',
|
|
cwd: projectRoot,
|
|
env: {
|
|
...process.env,
|
|
// Ensure we're not in SEA mode for tests
|
|
VIBETUNNEL_SEA: ''
|
|
}
|
|
});
|
|
|
|
child.on('exit', (code) => {
|
|
process.exit(code || 0);
|
|
}); |