@uploadx/core
Version:
Node.js resumable upload middleware
48 lines (47 loc) • 1.94 kB
TypeScript
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;
}