summaryrefslogtreecommitdiff
path: root/apps/web/src
diff options
context:
space:
mode:
authorMaze Winther <mazewinther@gmail.com>2026-01-31 22:19:11 +0100
committerMaze Winther <mazewinther@gmail.com>2026-01-31 22:19:11 +0100
commitf820d9a8948b97460ebdfdaa6b42b6d510e2b3cf (patch)
tree460b4cd9ac403fe5591bb0b5b4064e1662d08077 /apps/web/src
parent7878c8bb7b83bce568ced990903b8195a9dd4605 (diff)
downloadopencut-f820d9a8948b97460ebdfdaa6b42b6d510e2b3cf.tar.gz
refactor services structure
Diffstat (limited to 'apps/web/src')
-rw-r--r--apps/web/src/components/editor/panels/assets/views/captions.tsx2
-rw-r--r--apps/web/src/components/storage-provider.tsx2
-rw-r--r--apps/web/src/core/managers/media-manager.ts4
-rw-r--r--apps/web/src/core/managers/project-manager.ts2
-rw-r--r--apps/web/src/core/managers/scenes-manager.ts2
-rw-r--r--apps/web/src/lib/commands/media/add-media-asset.ts2
-rw-r--r--apps/web/src/lib/commands/media/remove-media-asset.ts4
-rw-r--r--apps/web/src/services/storage/service.ts (renamed from apps/web/src/services/storage/storage-service.ts)8
-rw-r--r--apps/web/src/services/transcription/service.ts (renamed from apps/web/src/services/transcription/index.ts)6
-rw-r--r--apps/web/src/services/video-cache/service.ts (renamed from apps/web/src/services/media/video-cache.ts)2
-rw-r--r--apps/web/src/stores/sounds-store.ts2
11 files changed, 16 insertions, 20 deletions
diff --git a/apps/web/src/components/editor/panels/assets/views/captions.tsx b/apps/web/src/components/editor/panels/assets/views/captions.tsx
index 306bad2a..d93baeff 100644
--- a/apps/web/src/components/editor/panels/assets/views/captions.tsx
+++ b/apps/web/src/components/editor/panels/assets/views/captions.tsx
@@ -17,7 +17,7 @@ import type {
TranscriptionLanguage,
TranscriptionProgress,
} from "@/types/transcription";
-import { transcriptionService } from "@/services/transcription";
+import { transcriptionService } from "@/services/transcription/service";
import { decodeAudioToFloat32 } from "@/lib/media/audio";
import { buildCaptionChunks } from "@/lib/transcription/caption";
import { Spinner } from "@/components/ui/spinner";
diff --git a/apps/web/src/components/storage-provider.tsx b/apps/web/src/components/storage-provider.tsx
index 144790dc..5b233782 100644
--- a/apps/web/src/components/storage-provider.tsx
+++ b/apps/web/src/components/storage-provider.tsx
@@ -3,7 +3,7 @@
import { createContext, useContext, useEffect, useRef, useState } from "react";
import { toast } from "sonner";
import { useEditor } from "@/hooks/use-editor";
-import { storageService } from "@/services/storage/storage-service";
+import { storageService } from "@/services/storage/service";
interface StorageContextType {
isInitialized: boolean;
diff --git a/apps/web/src/core/managers/media-manager.ts b/apps/web/src/core/managers/media-manager.ts
index 7b9db0d5..fd8726d9 100644
--- a/apps/web/src/core/managers/media-manager.ts
+++ b/apps/web/src/core/managers/media-manager.ts
@@ -1,8 +1,8 @@
import type { EditorCore } from "@/core";
import type { MediaAsset } from "@/types/assets";
-import { storageService } from "@/services/storage/storage-service";
+import { storageService } from "@/services/storage/service";
import { generateUUID } from "@/utils/id";
-import { videoCache } from "@/services/media/video-cache";
+import { videoCache } from "@/services/video-cache/service";
import { hasMediaId } from "@/lib/timeline/element-utils";
export class MediaManager {
diff --git a/apps/web/src/core/managers/project-manager.ts b/apps/web/src/core/managers/project-manager.ts
index db9e3fad..fc0b2a36 100644
--- a/apps/web/src/core/managers/project-manager.ts
+++ b/apps/web/src/core/managers/project-manager.ts
@@ -8,7 +8,7 @@ import type {
TTimelineViewState,
} from "@/types/project";
import type { ExportOptions, ExportResult } from "@/types/export";
-import { storageService } from "@/services/storage/storage-service";
+import { storageService } from "@/services/storage/service";
import { toast } from "sonner";
import { generateUUID } from "@/utils/id";
import { UpdateProjectSettingsCommand } from "@/lib/commands/project";
diff --git a/apps/web/src/core/managers/scenes-manager.ts b/apps/web/src/core/managers/scenes-manager.ts
index 447ec820..8c761f9b 100644
--- a/apps/web/src/core/managers/scenes-manager.ts
+++ b/apps/web/src/core/managers/scenes-manager.ts
@@ -1,6 +1,6 @@
import type { EditorCore } from "@/core";
import type { TimelineTrack, TScene } from "@/types/timeline";
-import { storageService } from "@/services/storage/storage-service";
+import { storageService } from "@/services/storage/service";
import {
getMainScene,
ensureMainScene,
diff --git a/apps/web/src/lib/commands/media/add-media-asset.ts b/apps/web/src/lib/commands/media/add-media-asset.ts
index d947cb97..ddcca426 100644
--- a/apps/web/src/lib/commands/media/add-media-asset.ts
+++ b/apps/web/src/lib/commands/media/add-media-asset.ts
@@ -2,7 +2,7 @@ import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import type { MediaAsset } from "@/types/assets";
import { generateUUID } from "@/utils/id";
-import { storageService } from "@/services/storage/storage-service";
+import { storageService } from "@/services/storage/service";
export class AddMediaAssetCommand extends Command {
private assetId: string;
diff --git a/apps/web/src/lib/commands/media/remove-media-asset.ts b/apps/web/src/lib/commands/media/remove-media-asset.ts
index aa1a5775..ee9ffa2d 100644
--- a/apps/web/src/lib/commands/media/remove-media-asset.ts
+++ b/apps/web/src/lib/commands/media/remove-media-asset.ts
@@ -1,8 +1,8 @@
import { Command } from "@/lib/commands/base-command";
import { EditorCore } from "@/core";
import type { MediaAsset } from "@/types/assets";
-import { storageService } from "@/services/storage/storage-service";
-import { videoCache } from "@/services/media/video-cache";
+import { storageService } from "@/services/storage/service";
+import { videoCache } from "@/services/video-cache/service";
import { hasMediaId } from "@/lib/timeline/element-utils";
import type { TimelineTrack } from "@/types/timeline";
diff --git a/apps/web/src/services/storage/storage-service.ts b/apps/web/src/services/storage/service.ts
index cb0b2ced..02f8d290 100644
--- a/apps/web/src/services/storage/storage-service.ts
+++ b/apps/web/src/services/storage/service.ts
@@ -333,12 +333,9 @@ class StorageService {
]);
}
- // Utility methods
async clearAllData(): Promise<void> {
- // Clear all projects
await this.projectsAdapter.clear();
-
- // Note: Project-specific media and timelines will be cleaned up when projects are deleted
+ // project-specific media and timelines cleaned up when projects are deleted
}
async getStorageInfo(): Promise<{
@@ -392,7 +389,6 @@ class StorageService {
try {
const currentData = await this.loadSavedSounds();
- // Check if sound is already saved
if (currentData.sounds.some((sound) => sound.id === soundEffect.id)) {
return; // Already saved
}
@@ -456,7 +452,6 @@ class StorageService {
}
}
- // Check browser support
isOPFSSupported(): boolean {
return OPFSAdapter.isSupported();
}
@@ -470,6 +465,5 @@ class StorageService {
}
}
-// Export singleton instance
export const storageService = new StorageService();
export { StorageService };
diff --git a/apps/web/src/services/transcription/index.ts b/apps/web/src/services/transcription/service.ts
index 37c650da..c34a82ce 100644
--- a/apps/web/src/services/transcription/index.ts
+++ b/apps/web/src/services/transcription/service.ts
@@ -1,4 +1,5 @@
import type {
+ TranscriptionLanguage,
TranscriptionResult,
TranscriptionProgress,
TranscriptionModelId,
@@ -8,7 +9,6 @@ import {
TRANSCRIPTION_MODELS,
} from "@/constants/transcription-constants";
import type { WorkerMessage, WorkerResponse } from "./worker";
-import type { LanguageCode } from "@/types/language";
type ProgressCallback = (progress: TranscriptionProgress) => void;
@@ -20,12 +20,12 @@ class TranscriptionService {
async transcribe({
audioData,
- language,
+ language = "auto",
modelId = DEFAULT_TRANSCRIPTION_MODEL,
onProgress,
}: {
audioData: Float32Array;
- language?: LanguageCode;
+ language?: TranscriptionLanguage;
modelId?: TranscriptionModelId;
onProgress?: ProgressCallback;
}): Promise<TranscriptionResult> {
diff --git a/apps/web/src/services/media/video-cache.ts b/apps/web/src/services/video-cache/service.ts
index f3ddfcb2..36441981 100644
--- a/apps/web/src/services/media/video-cache.ts
+++ b/apps/web/src/services/video-cache/service.ts
@@ -15,6 +15,7 @@ interface VideoSinkData {
prefetching: boolean;
prefetchPromise: Promise<void> | null;
}
+
export class VideoCache {
private sinks = new Map<string, VideoSinkData>();
private initPromises = new Map<string, Promise<void>>();
@@ -311,4 +312,5 @@ export class VideoCache {
};
}
}
+
export const videoCache = new VideoCache();
diff --git a/apps/web/src/stores/sounds-store.ts b/apps/web/src/stores/sounds-store.ts
index bea1a4bc..f393416a 100644
--- a/apps/web/src/stores/sounds-store.ts
+++ b/apps/web/src/stores/sounds-store.ts
@@ -1,6 +1,6 @@
import { create } from "zustand";
import type { SoundEffect, SavedSound } from "@/types/sounds";
-import { storageService } from "@/services/storage/storage-service";
+import { storageService } from "@/services/storage/service";
import { toast } from "sonner";
import { EditorCore } from "@/core";
import { buildLibraryAudioElement } from "@/lib/timeline/element-utils";