alepha
Version:
Easy-to-use modern TypeScript framework for building many kind of applications.
40 lines (35 loc) • 1.5 kB
text/typescript
import { $module } from "alepha";
import { $bucket } from "./primitives/$bucket.ts";
import { FileStorageProvider } from "./providers/FileStorageProvider.ts";
import { MemoryFileStorageProvider } from "./providers/MemoryFileStorageProvider.ts";
import { R2FileStorageProvider } from "./providers/R2FileStorageProvider.ts";
import { S3FileStorageProvider } from "./providers/S3FileStorageProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
export * from "./errors/FileNotFoundError.ts";
export * from "./primitives/$bucket.ts";
export * from "./providers/FileStorageProvider.ts";
export * from "./providers/MemoryFileStorageProvider.ts";
export * from "./providers/R2FileStorageProvider.ts";
export * from "./providers/S3FileStorageProvider.ts";
// ---------------------------------------------------------------------------------------------------------------------
export const AlephaBucket = $module({
name: "alepha.bucket",
primitives: [$bucket],
services: [
FileStorageProvider,
MemoryFileStorageProvider,
R2FileStorageProvider,
],
variants: [
MemoryFileStorageProvider,
R2FileStorageProvider,
S3FileStorageProvider, // S3 is allowed, it's ok inside workers (s3mini = fetch)
],
register: (alepha) => {
alepha.with({
optional: true,
provide: FileStorageProvider,
use: alepha.isTest() ? MemoryFileStorageProvider : R2FileStorageProvider,
});
},
});