21 lines
749 B
TypeScript
21 lines
749 B
TypeScript
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");
|
|
}
|