mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-09-25 07:16:02 +00:00
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).
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { createRequire } from "node:module";
|
|
import path from "node:path";
|
|
import { fileURLToPath } from "node:url";
|
|
import { app, type BrowserWindow } from "electron";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const nodeRequire = createRequire(import.meta.url);
|
|
|
|
const APP_ROOT = path.join(__dirname, "..");
|
|
|
|
export const VITE_DEV_SERVER_URL = process.env["VITE_DEV_SERVER_URL"];
|
|
export const RENDERER_DIST = path.join(APP_ROOT, "dist");
|
|
export const PRELOAD_PATH = path.join(__dirname, "preload.mjs");
|
|
export const WINDOW_ICON_PATH = path.join(
|
|
process.env.VITE_PUBLIC || RENDERER_DIST,
|
|
"app-icons",
|
|
"recordly-512.png",
|
|
);
|
|
|
|
export function getScreen() {
|
|
if (!app.isReady()) {
|
|
throw new Error(
|
|
"getScreen() called before app is ready. Ensure all screen access happens after app.whenReady().",
|
|
);
|
|
}
|
|
|
|
return nodeRequire("electron").screen as typeof import("electron").screen;
|
|
}
|
|
|
|
export function loadRendererWindow(
|
|
window: BrowserWindow,
|
|
windowType: string,
|
|
query: Record<string, string> = {},
|
|
) {
|
|
const fullQuery = { windowType, ...query };
|
|
|
|
if (VITE_DEV_SERVER_URL) {
|
|
const searchParams = new URLSearchParams(fullQuery);
|
|
void window.loadURL(`${VITE_DEV_SERVER_URL}?${searchParams.toString()}`);
|
|
return;
|
|
}
|
|
|
|
void window.loadFile(path.join(RENDERER_DIST, "index.html"), {
|
|
query: fullQuery,
|
|
});
|
|
} |