@better-media/framework
v0.3.0
Published
Better Media - media pipeline framework runtime
Readme
@better-media/framework
The core runtime orchestration engine for Better Media pipelines.
Overview
Better Media is a modular media framework that handles the entire lifecycle of a file ingest—from intake and validation to transformation and multi-environment storage.
This package provides the createBetterMedia factory and the core execution logic to coordinate:
- Ingest: Handle binary, stream, or file-path inputs.
- Validation: Run plugins to check file size, MIME type, or integrity.
- Persistence: Save to SQL, NoSQL, or custom database adapters.
- Storage: Move files to local disk, S3, or in-memory targets.
- Processing: Run background or synchronous jobs (resizing, transpoding, etc).
Installation
pnpm add @better-media/frameworkBasic Usage
import { createBetterMedia } from "@better-media/framework";
import { S3StorageAdapter } from "@better-media/adapter-storage-s3";
import { memoryDatabase } from "@better-media/adapter-db-memory";
import { validationPlugin } from "@better-media/plugin-validation";
// 1. Configure the runtime
const media = createBetterMedia({
storage: new S3StorageAdapter(s3Config),
database: memoryDatabase(),
plugins: [validationPlugin({ maxSize: "10mb", allowedMimeTypes: ["image/jpeg", "image/png"] })],
});
// 2. Process an upload
const result = await media.upload({
file: myFileBuffer,
fileName: "profile-pic.jpg",
});
console.log("Uploaded file key:", result.fileKey);Documentation
Full documentation is available at better-media-platform.vercel.app.
