Files

21 lines
749 B
TypeScript
Raw Permalink Normal View History

import { LocalStorageProvider } from "./local";
import type { StorageProvider } from "./types";
export * from "./types";
// Registry: today only local disk. To add S3/R2 later, implement StorageProvider
// in lib/storage/s3.ts and switch on an env flag here — no call-site changes.
let provider: StorageProvider | null = null;
export function storage(): StorageProvider {
if (!provider) provider = new LocalStorageProvider();
return provider;
}
/** Convenience for the worker / asset route which need the on-disk path. */
export function localStorage(): LocalStorageProvider {
const s = storage();
if (s instanceof LocalStorageProvider) return s;
throw new Error("Local filesystem path requested but active storage is not local");
}