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