Files
zerobyte/apps/server/src/modules/backends/backend.ts
Nicolas Meienberger 91020e6f23 feat: edit volume
2025-09-03 21:42:18 +02:00

25 lines
618 B
TypeScript

import type { Volume } from "../../db/schema";
import { makeDirectoryBackend } from "./directory/directory-backend";
import { makeNfsBackend } from "./nfs/nfs-backend";
export type VolumeBackend = {
mount: () => Promise<void>;
unmount: () => Promise<void>;
};
export const createVolumeBackend = (volume: Volume): VolumeBackend => {
const { config, path } = volume;
switch (config.backend) {
case "nfs": {
return makeNfsBackend(config, path);
}
case "directory": {
return makeDirectoryBackend(config, path);
}
default: {
throw new Error(`Backend ${config.backend} not implemented`);
}
}
};