AI Toolkit
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/blob
yarn add @vercel/blob
pnpm add @vercel/blob

Quick 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
ParameterTypeDescription
options.maxSizeMBnumberMaximum file size in MB (default: 10)
options.allowedTypesstring[]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, allowedTypes
  • UploadOptions — access, prefix
  • UploadResult — url, pathname, contentType, size
On this page

On this page