UNPKG

@uploadx/core

Version:
48 lines (47 loc) 1.94 kB
import { Checksum, Metadata, UploadxFile } from '../storages'; import { Headers, IncomingMessage, ServerResponse, UploadxResponse } from '../types'; import { BaseHandler, UploadxOptions } from './base-handler'; export declare const TUS_RESUMABLE = "1.0.0"; export declare const TUS_VERSION = "1.0.0"; export declare function serializeMetadata(obj: Metadata): string; export declare function parseMetadata(encoded?: string): Metadata; /** * [tus resumable upload protocol](https://github.com/tus/tus-resumable-upload-protocol/blob/master/protocol.md) */ export declare class Tus<TFile extends UploadxFile> extends BaseHandler<TFile> { get extension(): string[]; /** * Sends current server configuration */ options(req: IncomingMessage, res: ServerResponse): Promise<TFile>; /** * Create a file and send url to client */ post(req: IncomingMessage, res: ServerResponse): Promise<TFile>; /** * Write a chunk to file */ patch(req: IncomingMessage, res: ServerResponse): Promise<TFile>; /** * Return chunk offset */ head(req: IncomingMessage, res: ServerResponse): Promise<TFile>; /** * Delete upload */ delete(req: IncomingMessage, res: ServerResponse): Promise<TFile>; buildHeaders(file: UploadxFile, headers?: Headers): Headers; send(res: ServerResponse, { statusCode, headers, body }: UploadxResponse): void; extractChecksum(req: IncomingMessage): Checksum; } /** * Basic express wrapper * @example * ```js * app.use('/files', tus({directory: '/tmp', maxUploadSize: '250GB'})); * ``` */ export declare function tus<TFile extends UploadxFile>(options?: UploadxOptions<TFile>): (req: IncomingMessage, res: ServerResponse) => void; export declare namespace tus { var upload: <TFile extends UploadxFile>(options?: UploadxOptions<TFile>) => (req: IncomingMessage, res: ServerResponse, next?: (() => void) | undefined) => void; }