UNPKG

2.96 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import * as events from "events";
4import * as fs from "fs";
5import * as http from "http";
6import * as mime from "mime";
7
8export interface Headers {
9 [k: string]: any;
10}
11export type Finish = (status: number, headers?: Headers) => void;
12export type Callback = (e: Error) => void;
13
14export interface Options {
15 headers?: Headers | undefined;
16 indexFile?: string | undefined;
17 cache?: number | boolean | undefined;
18 serverInfo?: Buffer | undefined;
19 server?: string | undefined;
20 "cache-control"?: string | undefined;
21}
22
23export interface ByteRange {
24 from: number;
25 to: number;
26 valid: boolean;
27}
28
29export class Server {
30 root: string;
31 options: Options;
32 cache: number | boolean;
33 defaultHeaders: Headers;
34 serverInfo: string;
35 constructor(root: string, options?: Options);
36
37 serveDir: (pathname: string, req: http.IncomingMessage, res: http.ServerResponse, finish: Finish) => void;
38 serveFile: (
39 pathname: string,
40 status: number,
41 headers: Headers,
42 req: http.IncomingMessage,
43 res: http.ServerResponse,
44 ) => events.EventEmitter;
45 finish: (
46 status: number,
47 headers: Headers,
48 req: http.IncomingMessage,
49 res: http.ServerResponse,
50 promise: events.EventEmitter,
51 callback: Callback,
52 ) => void;
53 servePath: (
54 pathname: string,
55 status: number,
56 headers: Headers,
57 req: http.IncomingMessage,
58 res: http.ServerResponse,
59 finish: Finish,
60 ) => events.EventEmitter;
61 resolve: (pathname: string) => string;
62 serve: (req: http.IncomingMessage, res: http.ServerResponse, callback?: Callback) => events.EventEmitter;
63 gzipOk: (req: http.IncomingMessage, contentType: string) => boolean;
64 respondGzip: (
65 pathname: string,
66 status: number,
67 contentType: string,
68 _headers: Headers,
69 files: string[],
70 stat: fs.Stats,
71 req: http.IncomingMessage,
72 res: http.ServerResponse,
73 finish: Finish,
74 ) => void;
75 parseByteRange: (req: http.IncomingMessage, stat: fs.Stats) => ByteRange;
76 respondNoGzip: (
77 pathname: string,
78 status: number,
79 contentType: string,
80 _headers: Headers,
81 files: string[],
82 stat: fs.Stats,
83 req: http.IncomingMessage,
84 res: http.ServerResponse,
85 finish: Finish,
86 ) => void;
87 respond: (
88 pathname: string,
89 status: number,
90 _headers: Headers,
91 files: string[],
92 stat: fs.Stats,
93 req: http.IncomingMessage,
94 res: http.ServerResponse,
95 finish: Finish,
96 ) => void;
97 stream: (
98 pathname: string,
99 files: string[],
100 length: number,
101 startByte: number,
102 res: http.ServerResponse,
103 callback: Callback,
104 ) => void;
105}
106
107export const version: [number, number, number];
108export { mime };