vibetunnel/web/scripts/esbuild-config.js
Mario Zechner f339e69f9a Add terminal size reset feature and fix source maps (#72)
- Add POST /api/sessions/:sessionId/reset-size endpoint to reset terminal size when clients disconnect
- Implement reset-size control pipe command in PTY manager
- Update session-view component to call reset-size on unmount
- Add terminal resize event listener in fwd.ts to track terminal size changes
- Fix source maps configuration for development mode:
  - Set inline source maps with embedded sources in esbuild config
  - Add source map settings to TypeScript configs
  - Set NODE_ENV to development for dev builds

This ensures external terminals resize back to their actual size when the last web client disconnects.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24 16:12:44 +02:00

59 lines
No EOL
1.1 KiB
JavaScript

/**
* ESBuild configuration for VibeTunnel web client
*/
const { monacoPlugin } = require('./monaco-plugin.js');
const commonOptions = {
bundle: true,
format: 'esm',
target: 'es2020',
loader: {
'.ts': 'ts',
'.tsx': 'tsx',
'.js': 'js',
'.jsx': 'jsx',
'.css': 'css',
'.ttf': 'file',
'.woff': 'file',
'.woff2': 'file',
},
define: {
'process.env.NODE_ENV': '"production"',
},
external: [],
plugins: [monacoPlugin],
// Allow importing from node_modules without issues
mainFields: ['module', 'main'],
tsconfigRaw: {
compilerOptions: {
experimentalDecorators: true,
useDefineForClassFields: false,
sourceMap: true,
inlineSourceMap: true,
inlineSources: true,
}
}
};
const devOptions = {
...commonOptions,
sourcemap: 'inline',
sourcesContent: true,
minify: false,
define: {
...commonOptions.define,
'process.env.NODE_ENV': '"development"',
},
};
const prodOptions = {
...commonOptions,
sourcemap: false,
minify: true,
};
module.exports = {
commonOptions,
devOptions,
prodOptions,
};