UNPKG

2.86 kBTypeScriptView Raw
1// Type definitions for node-static 0.7
2// Project: https://github.com/cloudhead/node-static
3// Definitions by: Ben Davies <https://github.com/Morfent>
4// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
5
6/// <reference types="node" />
7
8import * as events from 'events';
9import * as fs from 'fs';
10import * as http from 'http';
11import * as mime from 'mime';
12
13export interface Headers { [k: string]: any; }
14export type Finish = (status: number, headers?: Headers) => void;
15export type Callback = (e: Error) => void;
16
17export interface Options {
18 headers?: Headers | undefined;
19 indexFile?: string | undefined;
20 cache?: number | boolean | undefined;
21 serverInfo?: Buffer | undefined;
22 server?: string | undefined;
23 "cache-control"?: string | undefined;
24}
25
26export interface ByteRange {
27 from: number;
28 to: number;
29 valid: boolean;
30}
31
32export class Server {
33 root: string;
34 options: Options;
35 cache: number | boolean;
36 defaultHeaders: Headers;
37 serverInfo: string;
38 constructor(root: string, options?: Options);
39
40 serveDir: (pathname: string, req: http.IncomingMessage, res: http.ServerResponse, finish: Finish) => void;
41 serveFile: (pathname: string, status: number, headers: Headers, req: http.IncomingMessage, res: http.ServerResponse) => events.EventEmitter;
42 finish: (status: number, headers: Headers, req: http.IncomingMessage, res: http.ServerResponse, promise: events.EventEmitter, callback: Callback) => void;
43 servePath: (pathname: string, status: number, headers: Headers, req: http.IncomingMessage, res: http.ServerResponse, finish: Finish) => events.EventEmitter;
44 resolve: (pathname: string) => string;
45 serve: (req: http.IncomingMessage, res: http.ServerResponse, callback?: Callback) => events.EventEmitter;
46 gzipOk: (req: http.IncomingMessage, contentType: string) => boolean;
47 respondGzip: (
48 pathname: string,
49 status: number,
50 contentType: string,
51 _headers: Headers,
52 files: string[],
53 stat: fs.Stats,
54 req: http.IncomingMessage,
55 res: http.ServerResponse,
56 finish: Finish
57 ) => void;
58 parseByteRange: (req: http.IncomingMessage, stat: fs.Stats) => ByteRange;
59 // tslint:disable-next-line max-line-length
60 respondNoGzip: (pathname: string, status: number, contentType: string, _headers: Headers, files: string[], stat: fs.Stats, req: http.IncomingMessage, res: http.ServerResponse, finish: Finish) => void;
61 respond: (pathname: string, status: number, _headers: Headers, files: string[], stat: fs.Stats, req: http.IncomingMessage, res: http.ServerResponse, finish: Finish) => void;
62 stream: (pathname: string, files: string[], length: number, startByte: number, res: http.ServerResponse, callback: Callback) => void;
63}
64
65export const version: [number, number, number];
66export { mime };