Files
Pien-Studio/apps/web/lib/project-repository.ts
T

34 lines
946 B
TypeScript
Raw Normal View History

2026-05-31 03:03:49 +07:00
import type { Project } from "@pien-studio/types";
import {
cleanupOrphanAssets,
deleteProject,
duplicateProject,
getProjectById,
loadProjects,
releaseProjectObjectUrls,
upsertProject,
} from "@pien-studio/storage";
export type ProjectRepository = {
listProjects: () => Promise<Project[]>;
getProject: (projectId: string) => Promise<Project | null>;
upsertProject: (project: Project) => Promise<void>;
deleteProject: (projectId: string) => Promise<void>;
duplicateProject: (projectId: string) => Promise<Project | null>;
cleanupAssets: () => Promise<number>;
releaseObjectUrls: (
project: Project,
keepAssetIds?: Iterable<string>,
) => void;
};
export const localProjectRepository: ProjectRepository = {
listProjects: loadProjects,
getProject: getProjectById,
upsertProject,
deleteProject,
duplicateProject,
cleanupAssets: cleanupOrphanAssets,
releaseObjectUrls: releaseProjectObjectUrls,
};