Commit 6eb7ced
committed
feat(Output): Add comprehensive Electron-to-Tauri polyfill layer
Implement a complete set of polyfills enabling VS Code to run in the Tauri browser environment without Electron:
- **ProcessPolyfill**: Node.js process object with argv, env, platform, versions, cwd(), hrtime(), cpuUsage(), exit()
- **FileSystemPolyfill**: fs module mapping readFile/writeFile/rmdir/etc to Mountain file:invoke commands
- **FileProtocolShim**: vscode-file://, vscode-userdata://, vscode-resource:// protocol handlers via fetch interception
- **ChildProcessPolyfill**: child_process spawn/exec/fork mapping to Mountain electron: commands
- **IPCRendererShim**: Electron ipcRenderer API with VS Code binary IPC protocol loopback for channel.call()
- **NativeModulePolyfill**: require('electron') shim providing ipcRenderer, webFrame, app, screen, shell, dialog, clipboard, nativeTheme
- **SharedProcessProxy**: Service proxies for extension host, search, debug, storage, update routing to Cocoon/Mountain via Tauri
- **TauriMainProcessService**: Drop-in replacement for ElectronIPCMainProcessService, routes getChannel().call() through Tauri invoke to Mountain
- **DevLog**: Tag-filtered development logging (vfs, ipc, config, etc.) with short/dedup modes
Also fix RestPlugin lazy loading: use if/try/catch instead of ternary to prevent ESM evaluation of the specifier when Compiler != Rest.
This is Phase 1-7 of Approach A3 — providing the Node.js/Electron API surface that VS Code's workbench expects, bridged to Tauri backend services.1 parent 65b9a76 commit 6eb7ced
14 files changed
Lines changed: 6321 additions & 12 deletions
File tree
- Configuration/ESBuild
- Source
- ESBuild
- Polyfill
- Service
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
6 | 14 | | |
7 | 15 | | |
8 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
9 | 15 | | |
10 | 16 | | |
11 | 17 | | |
| |||
0 commit comments