refactor: split large files into focused modules#288
refactor: split large files into focused modules#288webadderall wants to merge 3 commits intomainfrom
Conversation
Split all source files exceeding 500 lines into smaller, focused modules:
- electron/main.ts → mainBootstrapHelpers, mainRuntimeState, mainUpdateIntegration, mainWindowControls
- electron/windows.ts → editorWindows, hudWindows, windowShared
- electron/updater.ts → updaterDialogs, updaterEventHandlers, updaterShared
- electron/preload.ts → preloadExtensionsBridge, preloadUpdateBridge
- electron/ipc/register/recording.ts → recording/ directory with focused handlers
- src/components/video-editor/VideoEditor.tsx → EditorContent, EditorHeader, EditorSidebar, EditorToolbar, hooks/
- src/components/video-editor/SettingsPanel.tsx → settings/ directory with per-section components
- src/components/video-editor/AnnotationSettingsPanel.tsx → tab components
- src/components/video-editor/ExtensionManager.tsx → extension-manager/ directory
- src/components/video-editor/VideoPlayback.tsx → videoPlaybackComponent/ directory
- src/components/video-editor/projectPersistence.ts → projectPersistence{Normalization,Paths,Regions,Shared}.ts
- src/components/video-editor/timeline/TimelineEditor.tsx → TimelineEditor/ directory
- src/components/video-editor/types.ts → focused type modules
- src/components/launch/LaunchWindow.tsx → LaunchWindow/ directory
- src/hooks/useScreenRecorder.ts → useScreenRecorder/ directory
- src/lib/exporter/audioEncoder.ts → audioEncoder/ directory
- src/lib/exporter/frameRenderer.ts → frameRenderer modules
- src/lib/exporter/modernFrameRenderer.ts → filters and lifecycle modules
- src/lib/exporter/modernVideoExporter.ts → modernVideoExporter/ directory
- src/lib/exporter/videoExporter.ts → video-exporter/ directory
- src/lib/exporter/streamingDecoder.ts → streamingDecoderHelpers.ts
- src/lib/extensions/extensionHost.ts → extensionHost{ApiFactory,QueryApi,RegistrationApi,Shared,State}.ts
- src/lib/extensions/types.ts → focused type modules
- electron/native/ScreenCaptureKitRecorder.swift → ScreenCaptureKitRecorder/ directory
- scripts/benchmark-export-queues.mjs → benchmark-export-queues/ directory
- .github/workflows/release.yml → extracted merge-macos-metadata composite action
- scripts/build-native-helpers.mjs → updated for multi-file Swift compilation
Also incorporates upstream default export quality change (good → source).
|
Important Review skippedToo many files! This PR contains 197 files, which is 47 over the limit of 150. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (197)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
Splitting into 2 PRs to stay under CodeRabbit's 150-file review limit. |
Summary
Split all tracked source/config files exceeding 500 lines into smaller, focused modules. No behavioral changes — pure structural refactoring.
What changed
Electron main process
electron/main.ts→ extractedmainBootstrapHelpers,mainRuntimeState,mainUpdateIntegration,mainWindowControlselectron/windows.ts→ extractededitorWindows,hudWindows,windowSharedelectron/updater.ts→ extractedupdaterDialogs,updaterEventHandlers,updaterSharedelectron/preload.ts→ extractedpreloadExtensionsBridge,preloadUpdateBridgeelectron/ipc/register/recording.ts→ split intorecording/directory with focused handler filesElectron type declarations
electron/electron-env.d.ts→ extracted per-domain.d.tsfiles (capture, export, projects, settings)Video editor components
VideoEditor.tsx→EditorContent,EditorHeader,EditorSidebar,EditorToolbar+ hooks directorySettingsPanel.tsx→settings/directory with per-section componentsAnnotationSettingsPanel.tsx→ tab components (AnnotationBlurTab,AnnotationFigureTab, etc.)ExtensionManager.tsx→extension-manager/directoryVideoPlayback.tsx→videoPlaybackComponent/directory with focused hooksTimelineEditor.tsx→TimelineEditor/directory with action utils and state hooksprojectPersistence.ts→projectPersistence{Normalization,Paths,Regions,Shared}.tstypes.ts→ focused type modulesLaunch window
LaunchWindow.tsx→LaunchWindow/directory withDropdownContent,HudControls, hooks, typesScreen recorder hook
useScreenRecorder.ts→useScreenRecorder/directory (lifecycle, controls, native, webcam, etc.)Exporter modules
audioEncoder.ts→audioEncoder/directory (decoding, offline render, trim/transcode, etc.)frameRenderer.ts→ focused renderer modules (background, captions, compositing, webcam, zoom)modernFrameRenderer.ts→ extracted filters and lifecycle modulesmodernVideoExporter.ts→modernVideoExporter/directory (audio plan, encoding, progress, etc.)videoExporter.ts→video-exporter/directory (audio, encoder, progress base)streamingDecoder.ts→ extractedstreamingDecoderHelpers.tsExtension system
extensionHost.ts→ extracted API factory, query API, registration API, shared utilities, statetypes.ts→ extracted API types, hook types, manifest types, marketplace typesNative helpers (Swift)
ScreenCaptureKitRecorder.swift→ScreenCaptureKitRecorder/directory (ScreenCaptureRecorder.swift,+Stream.swift,RecorderService.swift)build-native-helpers.mjsupdated for multi-file Swift compilationScripts & CI
benchmark-export-queues.mjs→benchmark-export-queues/directory (config, fixtures, reporting, runner).github/workflows/release.yml→ extractedmerge-macos-metadatacomposite actionOther
goodtosource(incorporated from origin/main)Validation
tsc --noEmitpassesnode scripts/build-native-helpers.mjsbuilds all 8 native binaries (arm64 + x64)package-lock.json)