1 | import { IncomingMessage, ServerResponse, Server } from "http"
|
2 | import { MemoryTree } from "memory-tree"
|
3 | import * as net from 'net'
|
4 |
|
5 | type LessConfig = any
|
6 | type BabelConfig = any
|
7 |
|
8 | export interface F2Events {
|
9 | |
10 |
|
11 |
|
12 | beforeRoute?: {
|
13 | (pathname: string, req: IncomingMessage, resp: ServerResponse, mem: MemoryTree.Store): string | false | undefined
|
14 | }
|
15 | |
16 |
|
17 |
|
18 | onRoute?: {
|
19 | (pathname: string, req: IncomingMessage, resp: ServerResponse, mem: MemoryTree.Store): string | false | undefined
|
20 | }
|
21 | |
22 |
|
23 |
|
24 | buildWatcher?: {
|
25 | (pathname: string, eventType: string, build: MemoryTree.Build, store: MemoryTree.Store): void
|
26 | }
|
27 | |
28 |
|
29 |
|
30 | onSet?: {
|
31 | (pathname: string, data: MemoryTree.DataBuffer, store: MemoryTree.Store): MemoryTree.DataBuffer|Promise<{
|
32 | data: MemoryTree.DataBuffer;
|
33 | outputPath: string;
|
34 | originPath: string;
|
35 | }>
|
36 | }
|
37 | |
38 |
|
39 |
|
40 | onGet?: {
|
41 | (pathname: string, data: MemoryTree.DataBuffer, store: MemoryTree.Store): MemoryTree.DataBuffer | Promise<MemoryTree.DataBuffer>
|
42 | }
|
43 | |
44 |
|
45 |
|
46 | buildFilter?: {
|
47 | (pathname: string, data: MemoryTree.DataBuffer): boolean
|
48 | }
|
49 | |
50 |
|
51 |
|
52 | outputFilter?: {
|
53 | (pathname: string, data: MemoryTree.DataBuffer): boolean
|
54 | }
|
55 | }
|
56 | export interface Middleware extends F2Events{
|
57 | |
58 |
|
59 |
|
60 | setBefore?: number
|
61 | }
|
62 | export interface MiddlewareCreater {
|
63 | (conf: F2EConfig): Middleware
|
64 | }
|
65 | export interface MiddlewareRef {
|
66 | |
67 |
|
68 |
|
69 |
|
70 |
|
71 | middleware: string
|
72 | |
73 |
|
74 |
|
75 | setBefore?: number
|
76 | |
77 |
|
78 |
|
79 | [x:string]: any
|
80 | }
|
81 |
|
82 | export interface PageRender<T = any, R = string> {
|
83 | (req: IncomingMessage, resp: ServerResponse, data: T): R
|
84 | }
|
85 |
|
86 | export interface F2EConfig extends F2Events{
|
87 | root?: string
|
88 | port?: number
|
89 | host?: string
|
90 | |
91 |
|
92 |
|
93 | no_host?: boolean
|
94 | livereload?: boolean
|
95 | build?: boolean
|
96 | gzip?: boolean
|
97 | |
98 |
|
99 |
|
100 | range_size?: number
|
101 | useLess?: boolean | LessConfig
|
102 | useBabel?: boolean | BabelConfig
|
103 | middlewares?: (MiddlewareCreater | MiddlewareRef)[]
|
104 | output?: string
|
105 | |
106 |
|
107 |
|
108 |
|
109 | onServerCreate?: (server: net.Server) => void
|
110 |
|
111 | |
112 |
|
113 |
|
114 | page_404?: string | PageRender<{ pathname: string }>
|
115 | page_50x?: string | PageRender<{ error: Error }>
|
116 | page_dir?: string | PageRender<{ pathname: string, store: Object }>
|
117 | }
|
118 |
|
119 | export const config: F2EConfig |
\ | No newline at end of file |