1 |
|
2 |
|
3 | import * as events from "events";
|
4 | import * as fs from "fs";
|
5 | import * as http from "http";
|
6 | import * as mime from "mime";
|
7 |
|
8 | export interface Headers {
|
9 | [k: string]: any;
|
10 | }
|
11 | export type Finish = (status: number, headers?: Headers) => void;
|
12 | export type Callback = (e: Error) => void;
|
13 |
|
14 | export 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 |
|
23 | export interface ByteRange {
|
24 | from: number;
|
25 | to: number;
|
26 | valid: boolean;
|
27 | }
|
28 |
|
29 | export 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 |
|
107 | export const version: [number, number, number];
|
108 | export { mime };
|