Modulesstorage
storage
File upload with validation — Vercel Blob adapter
Overview
The storage module wraps Vercel Blob for file uploads with built-in validation (file size, MIME type), listing, and deletion.
Peer dependencies: @vercel/blob
npm install @vercel/blobyarn add @vercel/blobpnpm add @vercel/blobQuick Start
import { validateFile, uploadDocument } from '@jamaalbuilds/ai-toolkit/storage';
const file = new File(['content'], 'doc.pdf', { type: 'application/pdf' });
validateFile(file, { maxSizeMB: 10, allowedTypes: ['application/pdf'] });
const result = await uploadDocument(file, { access: 'public' });
console.log(result.url);
API Reference
validateFile(file, options)
Validate a file before upload.
function validateFile(
file: { size: number; type: string; name?: string },
options?: FileValidationOptions,
): void
| Parameter | Type | Description |
|---|---|---|
options.maxSizeMB | number | Maximum file size in MB (default: 10) |
options.allowedTypes | string[] | Allowed MIME types |
Throws StorageError if validation fails.
uploadDocument(file, options?)
Upload a file to Vercel Blob.
function uploadDocument(
file: Blob | Buffer | ReadableStream,
options?: UploadOptions & { filename?: string; contentType?: string },
): Promise<UploadResult>
deleteDocument(url)
Delete a file from storage.
listDocuments(options?)
List uploaded files.
Types
FileValidationOptions— maxSizeMB, allowedTypesUploadOptions— access, prefixUploadResult— url, pathname, contentType, size