UNPKG

pushduck

Version:

The fastest way to add file uploads to any web application. Enterprise security, edge-ready. Works with 16+ frameworks and 5+ storage providers. No heavy AWS SDK required.

35 lines (33 loc) 1.67 kB
import { ClientConfig, InferClientRouter, RouterRouteNames, S3FileMetadata, S3RouteUploadConfig, S3RouteUploadResult, S3Router, S3UploadedFile, TypedRouteHook, TypedUploadedFile } from "./index-GOfQFW5v.js"; import { formatETA, formatUploadSpeed, useUploadRoute } from "./use-upload-route-Ci8wBWkX.js"; //#region src/client/upload-client.d.ts /** * Create a type-safe upload client with property-based access and per-route configuration * * Following tRPC pattern, each route returns a hook factory function that accepts optional configuration. * This ensures React's rules of hooks are followed while maintaining type safety and flexibility. * * @example * ```typescript * const upload = createUploadClient<AppRouter>({ endpoint: "/api/upload" }); * * // Simple usage * const { uploadFiles, files } = upload.imageUpload(); * * // With per-route callbacks * const { uploadFiles, files } = upload.imageUpload({ * onSuccess: (results) => console.log('Upload successful!', results), * onError: (error) => console.error('Upload failed:', error), * onProgress: (progress) => setProgress(progress) * }); * * // With different endpoint * const { uploadFiles } = upload.secureUpload({ * endpoint: '/api/secure-upload', * onSuccess: handleSecureUpload * }); * ``` */ declare function createUploadClient<TRouter extends S3Router<any>>(config: ClientConfig): InferClientRouter<TRouter>; //#endregion export { ClientConfig, InferClientRouter, RouterRouteNames, S3FileMetadata, S3RouteUploadConfig, S3RouteUploadResult, S3Router, S3UploadedFile, TypedRouteHook, TypedUploadedFile, createUploadClient, formatETA, formatUploadSpeed, useUploadRoute };