Server.d.ts
2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/// <reference types="node" />
import { CompressionOptions } from '@umijs/deps/compiled/compression';
import { Express, RequestHandler } from '@umijs/deps/compiled/express';
import { Filter as ProxyFilter, Options as ProxyOptions, RequestHandler as ProxyRequestHandler } from '@umijs/deps/compiled/http-proxy-middleware';
import { Connection, Server as SocketServer } from '@umijs/deps/compiled/sockjs';
import { ServerOptions } from '@umijs/deps/compiled/spdy';
import * as http from 'http';
interface IServerProxyConfigItem extends ProxyOptions {
path?: string | string[];
context?: string | string[] | ProxyFilter;
bypass?: (req: Express.Request, res: Express.Response, proxyConfig: IServerProxyConfigItem) => string | null;
}
declare type IServerProxyConfig = IServerProxyConfigItem | Record<string, IServerProxyConfigItem> | (IServerProxyConfigItem | (() => IServerProxyConfigItem))[] | null;
export interface IHttps extends ServerOptions {
}
export interface IServerOpts {
afterMiddlewares?: RequestHandler<any>[];
beforeMiddlewares?: RequestHandler<any>[];
compilerMiddleware?: RequestHandler<any> | null;
https?: IHttps | boolean;
headers?: {
[key: string]: string;
};
host?: string;
port?: number;
compress?: CompressionOptions | boolean;
proxy?: IServerProxyConfig;
onListening?: {
({ port, hostname, listeningApp, server, }: {
port: number;
hostname: string;
listeningApp: http.Server;
server: Server;
}): void;
};
onConnection?: (param: {
connection: Connection;
server: Server;
}) => void;
onConnectionClose?: (param: {
connection: Connection;
}) => void;
writeToDisk?: boolean | ((filePath: string) => boolean);
}
declare class Server {
app: Express;
opts: Required<IServerOpts>;
socketServer?: SocketServer;
listeningApp: http.Server;
listeninspdygApp: http.Server;
sockets: Connection[];
socketProxies: ProxyRequestHandler[];
constructor(opts: IServerOpts);
private getHttpsOptions;
setupFeatures(): void;
/**
* response headers
*/
setupHeaders(): void;
/**
* dev server compress to gzip assets
*/
setupCompress(): void;
deleteRoutes(): void;
/**
* proxy middleware for dev
* not coupled with build tools (like webpack, rollup, ...)
*/
setupProxy(proxyOpts?: IServerProxyConfig, isWatch?: boolean): void;
sockWrite({ sockets, type, data, }: {
sockets?: Connection[];
type: string;
data?: string | object;
}): void;
createServer(): void;
listen({ port, hostname, }: {
port?: number;
hostname: string;
}): Promise<{
port: number;
hostname: string;
listeningApp: http.Server;
server: Server;
}>;
createSocketServer(): void;
}
export default Server;