UNPKG

@uploadx/core

Version:
50 lines (49 loc) 1.92 kB
import { Checksum, UploadxFile } from '../storages'; import { Headers, IncomingMessage, ServerResponse } from '../types'; import { BaseHandler, UploadxOptions } from './base-handler'; export declare function rangeParser(rangeHeader?: string): { start: number; size: number; }; /** * [X-headers protocol implementation](https://github.com/kukhariev/node-uploadx/blob/master/proto.md#requests-overview) */ export declare class Uploadx<TFile extends UploadxFile> extends BaseHandler<TFile> { static RESUME_STATUS_CODE: number; /** * Create File from request and send a file url to client */ post(req: IncomingMessage, res: ServerResponse): Promise<TFile>; patch(req: IncomingMessage, res: ServerResponse): Promise<TFile>; /** * Write a chunk to file or/and return chunk offset */ put(req: IncomingMessage, res: ServerResponse): Promise<TFile>; /** * Delete upload */ delete(req: IncomingMessage, res: ServerResponse): Promise<TFile>; getId(req: IncomingMessage): string; buildHeaders(file: UploadxFile, headers?: Headers): Headers; /** * Build file url from request */ buildFileUrl(req: IncomingMessage & { originalUrl?: string; }, file: UploadxFile & { GCSUploadURI?: string; }): string; getMetadata(req: IncomingMessage): Promise<Record<any, any>>; extractChecksum(req: IncomingMessage): Checksum; } /** * Basic express wrapper * @example * ```ts * app.use('/files', uploadx({directory: '/tmp', maxUploadSize: '250GB'})); * ``` */ export declare function uploadx<TFile extends UploadxFile>(options?: UploadxOptions<TFile>): (req: IncomingMessage, res: ServerResponse) => void; export declare namespace uploadx { var upload: <TFile extends UploadxFile>(options?: UploadxOptions<TFile>) => (req: IncomingMessage, res: ServerResponse, next?: (() => void) | undefined) => void; }