@mojojs/core 0.26.0 → 0.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/app.d.ts +11 -7
- package/lib/app.js +22 -11
- package/lib/app.js.map +1 -1
- package/lib/body.d.ts +9 -5
- package/lib/body.js +14 -15
- package/lib/body.js.map +1 -1
- package/lib/cli/get.js +3 -25
- package/lib/cli/get.js.map +1 -1
- package/lib/cli/server.js +32 -9
- package/lib/cli/server.js.map +1 -1
- package/lib/context.d.ts +5 -5
- package/lib/context.js +4 -5
- package/lib/context.js.map +1 -1
- package/lib/headers.d.ts +34 -0
- package/lib/headers.js +97 -0
- package/lib/headers.js.map +1 -0
- package/lib/renderer.js +1 -1
- package/lib/renderer.js.map +1 -1
- package/lib/router/route.d.ts +4 -0
- package/lib/router/route.js +12 -1
- package/lib/router/route.js.map +1 -1
- package/lib/router.d.ts +5 -0
- package/lib/router.js +25 -17
- package/lib/router.js.map +1 -1
- package/lib/server/request.d.ts +24 -15
- package/lib/server/request.js +20 -29
- package/lib/server/request.js.map +1 -1
- package/lib/server/response.d.ts +23 -9
- package/lib/server/response.js +35 -48
- package/lib/server/response.js.map +1 -1
- package/lib/server.d.ts +22 -8
- package/lib/server.js +66 -6
- package/lib/server.js.map +1 -1
- package/lib/static.js +7 -7
- package/lib/static.js.map +1 -1
- package/lib/types.d.ts +18 -5
- package/lib/user-agent/mock.d.ts +3 -3
- package/lib/user-agent/mock.js +4 -4
- package/lib/user-agent/mock.js.map +1 -1
- package/lib/user-agent/response.d.ts +22 -11
- package/lib/user-agent/response.js +9 -21
- package/lib/user-agent/response.js.map +1 -1
- package/lib/user-agent/test.d.ts +2 -2
- package/lib/user-agent/test.js +5 -5
- package/lib/user-agent/test.js.map +1 -1
- package/lib/user-agent/transport/http.js +21 -1
- package/lib/user-agent/transport/http.js.map +1 -1
- package/lib/user-agent/transport/ws.js +11 -2
- package/lib/user-agent/transport/ws.js.map +1 -1
- package/lib/user-agent.js +5 -5
- package/lib/user-agent.js.map +1 -1
- package/lib/util.d.ts +4 -0
- package/lib/util.js +10 -0
- package/lib/util.js.map +1 -1
- package/lib/websocket.d.ts +1 -1
- package/lib/websocket.js +6 -6
- package/lib/websocket.js.map +1 -1
- package/package.json +1 -1
- package/vendor/views/mojo/debug.html.mt +3 -3
- package/lib/mock/request.d.ts +0 -9
- package/lib/mock/request.js +0 -13
- package/lib/mock/request.js.map +0 -1
- package/lib/mock/response.d.ts +0 -7
- package/lib/mock/response.js +0 -7
- package/lib/mock/response.js.map +0 -1
- package/lib/plugins/exception-helpers.d.ts +0 -5
- package/lib/plugins/exception-helpers.js +0 -101
- package/lib/plugins/exception-helpers.js.map +0 -1
- package/lib/plugins/header-conditions.d.ts +0 -5
- package/lib/plugins/header-conditions.js +0 -22
- package/lib/plugins/header-conditions.js.map +0 -1
- package/lib/plugins/view-helpers.d.ts +0 -5
- package/lib/plugins/view-helpers.js +0 -28
- package/lib/plugins/view-helpers.js.map +0 -1
package/lib/app.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import type { Route } from './router/route.js';
|
|
3
|
-
import type { AnyArguments, AppOptions, UserAgentOptions,
|
|
4
|
-
import type { IncomingMessage, ServerResponse } from 'http';
|
|
2
|
+
import type { AnyArguments, AppOptions, UserAgentOptions, MojoAction, MojoContext, RouteArguments, ServerOptions, TestUserAgentOptions } from './types.js';
|
|
5
3
|
import { CLI } from './cli.js';
|
|
6
4
|
import { Hooks } from './hooks.js';
|
|
7
5
|
import { Logger } from './logger.js';
|
|
8
6
|
import { Mime } from './mime.js';
|
|
9
7
|
import { Renderer } from './renderer.js';
|
|
10
8
|
import { Router } from './router.js';
|
|
9
|
+
import { ServerRequest } from './server/request.js';
|
|
10
|
+
import { ServerResponse } from './server/response.js';
|
|
11
11
|
import { Session } from './session.js';
|
|
12
12
|
import { Static } from './static.js';
|
|
13
13
|
import { UserAgent } from './user-agent.js';
|
|
@@ -136,19 +136,23 @@ export declare class App {
|
|
|
136
136
|
/**
|
|
137
137
|
* Create a context for application.
|
|
138
138
|
*/
|
|
139
|
-
newContext(req:
|
|
139
|
+
newContext(req: ServerRequest, res: ServerResponse): MojoContext;
|
|
140
140
|
/**
|
|
141
141
|
* Create a mock context for application. Very useful for testing helpers.
|
|
142
142
|
*/
|
|
143
|
-
newMockContext(options?:
|
|
143
|
+
newMockContext(options?: {
|
|
144
|
+
headers?: string[];
|
|
145
|
+
method?: string;
|
|
146
|
+
url?: string;
|
|
147
|
+
}): MojoContext;
|
|
144
148
|
/**
|
|
145
149
|
* Create a new mock user agent for application.
|
|
146
150
|
*/
|
|
147
|
-
newMockUserAgent(options?: UserAgentOptions): Promise<MockUserAgent>;
|
|
151
|
+
newMockUserAgent(options?: UserAgentOptions, serverOptions?: ServerOptions): Promise<MockUserAgent>;
|
|
148
152
|
/**
|
|
149
153
|
* Create a new test user agent for application.
|
|
150
154
|
*/
|
|
151
|
-
newTestUserAgent(options?: TestUserAgentOptions): Promise<TestUserAgent>;
|
|
155
|
+
newTestUserAgent(options?: TestUserAgentOptions, serverOptions?: ServerOptions): Promise<TestUserAgent>;
|
|
152
156
|
/**
|
|
153
157
|
* Generate route matching only `OPTIONS` requests.
|
|
154
158
|
*/
|
package/lib/app.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
import { Readable } from 'stream';
|
|
1
2
|
import { CLI } from './cli.js';
|
|
2
3
|
import { Context } from './context.js';
|
|
3
4
|
import { Hooks } from './hooks.js';
|
|
4
5
|
import { Logger } from './logger.js';
|
|
5
6
|
import { Mime } from './mime.js';
|
|
6
|
-
import { MockRequest } from './mock/request.js';
|
|
7
|
-
import { MockResponse } from './mock/response.js';
|
|
8
7
|
import defaultConditionsPlugin from './plugins/default-conditions.js';
|
|
9
8
|
import defaultHelpersPlugin from './plugins/default-helpers.js';
|
|
10
9
|
import mtEnginePlugin from './plugins/mt-engine.js';
|
|
11
10
|
import { Renderer } from './renderer.js';
|
|
12
11
|
import { Router } from './router.js';
|
|
12
|
+
import { ServerRequest } from './server/request.js';
|
|
13
|
+
import { ServerResponse } from './server/response.js';
|
|
13
14
|
import { Session } from './session.js';
|
|
14
15
|
import { Static } from './static.js';
|
|
15
16
|
import { UserAgent } from './user-agent.js';
|
|
@@ -165,31 +166,41 @@ export class App {
|
|
|
165
166
|
/**
|
|
166
167
|
* Create a context for application.
|
|
167
168
|
*/
|
|
168
|
-
newContext(req, res
|
|
169
|
-
const ctx = new this._contextClass(this, req, res
|
|
169
|
+
newContext(req, res) {
|
|
170
|
+
const ctx = new this._contextClass(this, req, res);
|
|
170
171
|
Object.assign(ctx.stash, this.defaults);
|
|
171
172
|
return ctx;
|
|
172
173
|
}
|
|
173
174
|
/**
|
|
174
175
|
* Create a mock context for application. Very useful for testing helpers.
|
|
175
176
|
*/
|
|
176
|
-
newMockContext(options) {
|
|
177
|
-
const
|
|
178
|
-
|
|
177
|
+
newMockContext(options = {}) {
|
|
178
|
+
const ctx = new this._contextClass(this, new ServerRequest({
|
|
179
|
+
body: new Readable(),
|
|
180
|
+
headers: options.headers ?? [],
|
|
181
|
+
isSecure: false,
|
|
182
|
+
isWebSocket: false,
|
|
183
|
+
method: options.method ?? 'GET',
|
|
184
|
+
remoteAddress: '127.0.0.1',
|
|
185
|
+
reverseProxy: false,
|
|
186
|
+
url: options.url ?? '/'
|
|
187
|
+
}), new ServerResponse(() => {
|
|
188
|
+
// Do nothing
|
|
189
|
+
}));
|
|
179
190
|
Object.assign(ctx.stash, this.defaults);
|
|
180
191
|
return ctx;
|
|
181
192
|
}
|
|
182
193
|
/**
|
|
183
194
|
* Create a new mock user agent for application.
|
|
184
195
|
*/
|
|
185
|
-
async newMockUserAgent(options) {
|
|
186
|
-
return await MockUserAgent.newMockUserAgent(this, options);
|
|
196
|
+
async newMockUserAgent(options, serverOptions) {
|
|
197
|
+
return await MockUserAgent.newMockUserAgent(this, options, serverOptions);
|
|
187
198
|
}
|
|
188
199
|
/**
|
|
189
200
|
* Create a new test user agent for application.
|
|
190
201
|
*/
|
|
191
|
-
async newTestUserAgent(options) {
|
|
192
|
-
return await TestUserAgent.newTestUserAgent(this, options);
|
|
202
|
+
async newTestUserAgent(options, serverOptions) {
|
|
203
|
+
return await TestUserAgent.newTestUserAgent(this, options, serverOptions);
|
|
193
204
|
}
|
|
194
205
|
/**
|
|
195
206
|
* Generate route matching only `OPTIONS` requests.
|
package/lib/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/lib/body.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { JSONValue } from './types.js';
|
|
3
|
-
import type { IncomingMessage } from 'http';
|
|
4
3
|
import type { Readable, Writable } from 'stream';
|
|
5
4
|
import { Params } from './body/params.js';
|
|
5
|
+
import { Headers } from './headers.js';
|
|
6
6
|
import DOM from '@mojojs/dom';
|
|
7
7
|
interface UploadOptions {
|
|
8
8
|
limits?: {
|
|
@@ -30,9 +30,13 @@ export declare class Body {
|
|
|
30
30
|
* Automatically decompress message body if necessary.
|
|
31
31
|
*/
|
|
32
32
|
autoDecompress: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* HTTP headers.
|
|
35
|
+
*/
|
|
36
|
+
headers: Headers;
|
|
33
37
|
_form: Params | undefined;
|
|
34
|
-
|
|
35
|
-
constructor(stream:
|
|
38
|
+
_stream: Readable;
|
|
39
|
+
constructor(headers: string[], stream: Readable);
|
|
36
40
|
[Symbol.asyncIterator](): AsyncIterable<Buffer>;
|
|
37
41
|
/**
|
|
38
42
|
* Get message body as `Buffer` object.
|
|
@@ -53,7 +57,7 @@ export declare class Body {
|
|
|
53
57
|
/**
|
|
54
58
|
* Get HTTP header from message.
|
|
55
59
|
*/
|
|
56
|
-
get(name: string): string |
|
|
60
|
+
get(name: string): string | null;
|
|
57
61
|
/**
|
|
58
62
|
* Get HTML message body as `@mojojs/dom` object.
|
|
59
63
|
*/
|
|
@@ -67,7 +71,7 @@ export declare class Body {
|
|
|
67
71
|
*/
|
|
68
72
|
pipe(writer: Writable): Promise<void>;
|
|
69
73
|
/**
|
|
70
|
-
* Set HTTP header for
|
|
74
|
+
* Set HTTP header for message.
|
|
71
75
|
*/
|
|
72
76
|
set(name: string, value: string): this;
|
|
73
77
|
/**
|
package/lib/body.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { on } from 'events';
|
|
2
2
|
import zlib from 'zlib';
|
|
3
3
|
import { Params } from './body/params.js';
|
|
4
|
+
import { Headers } from './headers.js';
|
|
4
5
|
import DOM from '@mojojs/dom';
|
|
5
6
|
import busboy from 'busboy';
|
|
6
7
|
import yaml from 'js-yaml';
|
|
@@ -8,13 +9,14 @@ import yaml from 'js-yaml';
|
|
|
8
9
|
* HTTP message body base class.
|
|
9
10
|
*/
|
|
10
11
|
export class Body {
|
|
11
|
-
constructor(stream) {
|
|
12
|
+
constructor(headers, stream) {
|
|
12
13
|
/**
|
|
13
14
|
* Automatically decompress message body if necessary.
|
|
14
15
|
*/
|
|
15
16
|
this.autoDecompress = true;
|
|
16
17
|
this._form = undefined;
|
|
17
|
-
this.
|
|
18
|
+
this._stream = stream;
|
|
19
|
+
this.headers = new Headers(headers);
|
|
18
20
|
}
|
|
19
21
|
async *[Symbol.asyncIterator]() {
|
|
20
22
|
yield* this.createReadStream();
|
|
@@ -30,9 +32,9 @@ export class Body {
|
|
|
30
32
|
*/
|
|
31
33
|
createReadStream() {
|
|
32
34
|
if (this.autoDecompress !== true || this.get('content-encoding') !== 'gzip')
|
|
33
|
-
return this.
|
|
35
|
+
return this._stream;
|
|
34
36
|
const gunzip = zlib.createGunzip();
|
|
35
|
-
this.
|
|
37
|
+
this._stream.pipe(gunzip);
|
|
36
38
|
return gunzip;
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
@@ -68,8 +70,7 @@ export class Body {
|
|
|
68
70
|
* Get HTTP header from message.
|
|
69
71
|
*/
|
|
70
72
|
get(name) {
|
|
71
|
-
|
|
72
|
-
return Array.isArray(header) ? header.join(',') : header;
|
|
73
|
+
return this.headers.get(name);
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Get HTML message body as `@mojojs/dom` object.
|
|
@@ -92,10 +93,10 @@ export class Body {
|
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
95
|
-
* Set HTTP header for
|
|
96
|
+
* Set HTTP header for message.
|
|
96
97
|
*/
|
|
97
98
|
set(name, value) {
|
|
98
|
-
this.
|
|
99
|
+
this.headers.set(name, value);
|
|
99
100
|
return this;
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
@@ -127,20 +128,18 @@ export class Body {
|
|
|
127
128
|
}
|
|
128
129
|
_formIterator(options) {
|
|
129
130
|
const ac = new AbortController();
|
|
130
|
-
const
|
|
131
|
-
const headers = raw.headers;
|
|
132
|
-
const type = headers['content-type'] ?? '';
|
|
131
|
+
const type = this.get('Content-Type') ?? '';
|
|
133
132
|
const params = this._params;
|
|
134
|
-
const bb = busboy({ headers: { 'content-type': type, ...headers }, ...options });
|
|
133
|
+
const bb = busboy({ headers: { 'content-type': type, ...this.headers.toObject() }, ...options });
|
|
135
134
|
bb.on('field', (fieldname, val) => params.append(fieldname, val));
|
|
136
135
|
bb.on('end', () => ac.abort()).on('close', () => ac.abort());
|
|
137
136
|
const files = on(bb, 'file', { signal: ac.signal });
|
|
138
|
-
|
|
137
|
+
this._stream.pipe(bb);
|
|
139
138
|
return files;
|
|
140
139
|
}
|
|
141
140
|
_isForm() {
|
|
142
|
-
const type = this.
|
|
143
|
-
if (type ===
|
|
141
|
+
const type = this.get('Content-Type');
|
|
142
|
+
if (type === null)
|
|
144
143
|
return false;
|
|
145
144
|
return type.startsWith('application/x-www-form-urlencoded') || type.startsWith('multipart/form-data');
|
|
146
145
|
}
|
package/lib/body.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.js","sourceRoot":"","sources":["../src/body.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"body.js","sourceRoot":"","sources":["../src/body.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/get.js
CHANGED
|
@@ -17,17 +17,11 @@ export default async function getCommand(app, args) {
|
|
|
17
17
|
const res = await ua.request(request);
|
|
18
18
|
if (parsed.verbose === true) {
|
|
19
19
|
const stderr = process.stderr;
|
|
20
|
-
const raw = res._raw;
|
|
21
|
-
const req = raw.req;
|
|
22
|
-
const method = chalk.blue(req.method);
|
|
23
|
-
const reqVersion = chalk.blue('HTTP') + '/' + chalk.blue('1.1');
|
|
24
|
-
stderr.write(`${method} ${req.path} ${reqVersion}\n`);
|
|
25
|
-
writeHeaders(getHeaders(req));
|
|
26
20
|
const resVersion = chalk.blue('HTTP') + '/' + chalk.blue(res.httpVersion);
|
|
27
|
-
const
|
|
21
|
+
const statusCode = res.statusCode;
|
|
28
22
|
const statusMessage = chalk.blue(res.statusMessage);
|
|
29
|
-
stderr.write(`${resVersion} ${
|
|
30
|
-
writeHeaders(
|
|
23
|
+
stderr.write(`${resVersion} ${statusCode} ${statusMessage}\n`);
|
|
24
|
+
writeHeaders(res.headers.toArray());
|
|
31
25
|
}
|
|
32
26
|
if (argv.remain[1] !== undefined) {
|
|
33
27
|
const html = await res.html();
|
|
@@ -60,22 +54,6 @@ Options:
|
|
|
60
54
|
-X, --method <method> HTTP method to use, defaults to "GET"
|
|
61
55
|
-v, --verbose Print response headers to STDERR
|
|
62
56
|
`;
|
|
63
|
-
function getHeaders(req) {
|
|
64
|
-
const headers = [];
|
|
65
|
-
for (const name of req.getRawHeaderNames()) {
|
|
66
|
-
const header = req.getHeader(name);
|
|
67
|
-
if (typeof header === 'string') {
|
|
68
|
-
headers.push(name, header);
|
|
69
|
-
}
|
|
70
|
-
else if (typeof header === 'number') {
|
|
71
|
-
headers.push(name, header.toString());
|
|
72
|
-
}
|
|
73
|
-
else if (Array.isArray(header)) {
|
|
74
|
-
header.forEach(value => headers.push(name, value));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return headers;
|
|
78
|
-
}
|
|
79
57
|
function parseHeaders(list = []) {
|
|
80
58
|
const headers = {};
|
|
81
59
|
for (const pair of list) {
|
package/lib/cli/get.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/cli/get.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/cli/get.ts"],"names":[],"mappings":"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"}
|
package/lib/cli/server.js
CHANGED
|
@@ -7,16 +7,24 @@ const EVENTS = ['SIGINT', 'SIGTERM', 'SIGUSR2'];
|
|
|
7
7
|
export default async function serverCommand(app, args) {
|
|
8
8
|
const parsed = nopt({
|
|
9
9
|
cluster: Boolean,
|
|
10
|
+
'headers-timeout': Number,
|
|
11
|
+
'keep-alive-timeout': Number,
|
|
10
12
|
level: String,
|
|
11
13
|
listen: [String, Array],
|
|
12
14
|
proxy: Boolean,
|
|
15
|
+
requests: Number,
|
|
16
|
+
'request-timeout': Number,
|
|
13
17
|
workers: Number
|
|
14
|
-
}, { c: '--cluster', L: '--level', l: '--listen', p: '--proxy', w: '--workers' }, args, 1);
|
|
18
|
+
}, { c: '--cluster', L: '--level', l: '--listen', p: '--proxy', r: '--requests', w: '--workers' }, args, 1);
|
|
15
19
|
if (parsed.level !== undefined)
|
|
16
20
|
app.log.level = parsed.level;
|
|
17
21
|
const server = new Server(app, {
|
|
18
22
|
cluster: parsed.cluster,
|
|
23
|
+
headersTimeout: parsed['headers-timeout'],
|
|
24
|
+
keepAliveTimeout: parsed['keep-alive-timeout'],
|
|
19
25
|
listen: parsed.listen,
|
|
26
|
+
maxRequestsPerSocket: parsed.requests,
|
|
27
|
+
requestTimeout: parsed['request-timeout'],
|
|
20
28
|
reverseProxy: parsed.proxy,
|
|
21
29
|
workers: parsed.workers
|
|
22
30
|
});
|
|
@@ -33,6 +41,7 @@ serverCommand.usage = `Usage: APPLICATION server [OPTIONS]
|
|
|
33
41
|
node index.js server
|
|
34
42
|
node index.js server --level trace
|
|
35
43
|
node index.js server --cluster
|
|
44
|
+
node index.js server --requests 10 --keep-alive-timeout 30000
|
|
36
45
|
node index.js server -l http://[::1]:3000
|
|
37
46
|
node index.js server -l http://*:8080 -l http://*:8081
|
|
38
47
|
node index.js server -l 'https://*:443?cert=./server.crt&key=./server.key'
|
|
@@ -41,13 +50,27 @@ serverCommand.usage = `Usage: APPLICATION server [OPTIONS]
|
|
|
41
50
|
NODE_ENV=production node index.js server
|
|
42
51
|
|
|
43
52
|
Options:
|
|
44
|
-
-c, --cluster
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
-c, --cluster Run in cluster mode with multiple processes
|
|
54
|
+
--headers-timeout <ms> Limit the amount of time the parser will
|
|
55
|
+
wait to receive the complete HTTP headers,
|
|
56
|
+
defaults to 60000
|
|
57
|
+
-h, --help Show this summary of available options
|
|
58
|
+
--keep-alive-timeout <ms> Limit the amount of time of inactivity a
|
|
59
|
+
server needs to wait for additional incoming
|
|
60
|
+
data, after it has finished writing the last
|
|
61
|
+
response, before a socket will be destroyed,
|
|
62
|
+
defaults to 5000
|
|
63
|
+
-L, --level <level> Log level for application
|
|
64
|
+
-l, --listen <location> One or more locations you want to listen on,
|
|
65
|
+
defaults to "http://*:3000"
|
|
66
|
+
-p, --proxy Activate reverse proxy support
|
|
67
|
+
-r, --requests <num> Maximum number of requests socket can handle
|
|
68
|
+
before closing keep alive connection,
|
|
69
|
+
defaults to 0
|
|
70
|
+
--request-timeout <ms> Limit the amount of time for receiving the
|
|
71
|
+
entire request from the client, defaults to
|
|
72
|
+
300000
|
|
73
|
+
-w, --workers <num> Number of workers to spawn in cluster mode,
|
|
74
|
+
defaults to the number of available CPUs
|
|
52
75
|
`;
|
|
53
76
|
//# sourceMappingURL=server.js.map
|
package/lib/cli/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CACjB;QACE,OAAO,EAAE,OAAO;QAChB,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,OAAO;QACd,OAAO,EAAE,MAAM;KAChB,EACD,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAC,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/cli/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,MAAM,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,aAAa,CAAC,GAAY,EAAE,IAAc;IACtE,MAAM,MAAM,GAAG,IAAI,CACjB;QACE,OAAO,EAAE,OAAO;QAChB,iBAAiB,EAAE,MAAM;QACzB,oBAAoB,EAAE,MAAM;QAC5B,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;QACvB,KAAK,EAAE,OAAO;QACd,QAAQ,EAAE,MAAM;QAChB,iBAAiB,EAAE,MAAM;QACzB,OAAO,EAAE,MAAM;KAChB,EACD,EAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,WAAW,EAAC,EAC5F,IAAI,EACJ,CAAC,CACF,CAAC;IAEF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAE7D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE;QAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,gBAAgB,EAAE,MAAM,CAAC,oBAAoB,CAAC;QAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,oBAAoB,EAAE,MAAM,CAAC,QAAQ;QACrC,cAAc,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC,KAAK;QAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,GAAS,EAAE;QAC1B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEvD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC;AAED,aAAa,CAAC,WAAW,GAAG,oCAAoC,CAAC;AACjE,aAAa,CAAC,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCrB,CAAC"}
|
package/lib/context.d.ts
CHANGED
|
@@ -2,17 +2,16 @@
|
|
|
2
2
|
import type { App } from './app.js';
|
|
3
3
|
import type { ChildLogger } from './logger.js';
|
|
4
4
|
import type { Plan } from './router/plan.js';
|
|
5
|
+
import type { ServerRequest } from './server/request.js';
|
|
6
|
+
import type { ServerResponse } from './server/response.js';
|
|
5
7
|
import type { SessionData } from './types.js';
|
|
6
|
-
import type { MojoAction, RenderOptions,
|
|
8
|
+
import type { MojoAction, RenderOptions, ValidatorFunction } from './types.js';
|
|
7
9
|
import type { UserAgent } from './user-agent.js';
|
|
8
10
|
import type { WebSocket } from './websocket.js';
|
|
9
11
|
import type Path from '@mojojs/path';
|
|
10
12
|
import type { BusboyConfig } from 'busboy';
|
|
11
|
-
import type http from 'http';
|
|
12
13
|
import EventEmitter from 'events';
|
|
13
14
|
import { Params } from './body/params.js';
|
|
14
|
-
import { ServerRequest } from './server/request.js';
|
|
15
|
-
import { ServerResponse } from './server/response.js';
|
|
16
15
|
import { SafeString } from './util.js';
|
|
17
16
|
declare type URLOptions = {
|
|
18
17
|
query?: Record<string, string>;
|
|
@@ -20,6 +19,7 @@ declare type URLOptions = {
|
|
|
20
19
|
declare type WebSocketHandler = (ws: WebSocket) => void | Promise<void>;
|
|
21
20
|
interface ContextEvents {
|
|
22
21
|
connection: (ws: WebSocket) => void;
|
|
22
|
+
finish: () => void;
|
|
23
23
|
}
|
|
24
24
|
declare interface Context {
|
|
25
25
|
on: <T extends keyof ContextEvents>(event: T, listener: ContextEvents[T]) => this;
|
|
@@ -69,7 +69,7 @@ declare class Context extends EventEmitter {
|
|
|
69
69
|
_params: Params | undefined;
|
|
70
70
|
_session: Record<string, any> | undefined;
|
|
71
71
|
_ws: WeakRef<WebSocket> | null;
|
|
72
|
-
constructor(app: App, req:
|
|
72
|
+
constructor(app: App, req: ServerRequest, res: ServerResponse);
|
|
73
73
|
[EventEmitter.captureRejectionSymbol](error: Error): void;
|
|
74
74
|
/**
|
|
75
75
|
* Select best possible representation for resource.
|
package/lib/context.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import EventEmitter from 'events';
|
|
2
2
|
import { Params } from './body/params.js';
|
|
3
|
-
import { ServerRequest } from './server/request.js';
|
|
4
|
-
import { ServerResponse } from './server/response.js';
|
|
5
3
|
import { SafeString } from './util.js';
|
|
6
4
|
const ABSOLUTE = /^[a-zA-Z][a-zA-Z0-9]*:\/\//;
|
|
7
5
|
/**
|
|
8
6
|
* Context class.
|
|
9
7
|
*/
|
|
10
8
|
class Context extends EventEmitter {
|
|
11
|
-
constructor(app, req, res
|
|
9
|
+
constructor(app, req, res) {
|
|
12
10
|
super({ captureRejections: true });
|
|
13
11
|
/**
|
|
14
12
|
* Partial content.
|
|
@@ -36,8 +34,9 @@ class Context extends EventEmitter {
|
|
|
36
34
|
this._ws = null;
|
|
37
35
|
this.app = app;
|
|
38
36
|
this.exceptionFormat = app.exceptionFormat;
|
|
39
|
-
this.req =
|
|
40
|
-
this.res =
|
|
37
|
+
this.req = req;
|
|
38
|
+
this.res = res;
|
|
39
|
+
this.res.bindContext(this);
|
|
41
40
|
this.log = app.log.child({ requestId: this.req.requestId });
|
|
42
41
|
}
|
|
43
42
|
[EventEmitter.captureRejectionSymbol](error) {
|
package/lib/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/lib/headers.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP header class.
|
|
3
|
+
*/
|
|
4
|
+
export declare class Headers {
|
|
5
|
+
_headers?: Record<string, string[]>;
|
|
6
|
+
_init: string[];
|
|
7
|
+
_normalCase: Record<string, string>;
|
|
8
|
+
constructor(init?: string[]);
|
|
9
|
+
/**
|
|
10
|
+
* Append header value.
|
|
11
|
+
*/
|
|
12
|
+
append(name: string, value: string): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get header value.
|
|
15
|
+
*/
|
|
16
|
+
get(name: string): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Get all headers values individually.
|
|
19
|
+
*/
|
|
20
|
+
getAll(name: string): string[];
|
|
21
|
+
/**
|
|
22
|
+
* Set header value.
|
|
23
|
+
*/
|
|
24
|
+
set(name: string, value: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Convert headers into a plain array of name/value pairs.
|
|
27
|
+
*/
|
|
28
|
+
toArray(): string[];
|
|
29
|
+
/**
|
|
30
|
+
* Convert headers into a plain object.
|
|
31
|
+
*/
|
|
32
|
+
toObject(): Record<string, string>;
|
|
33
|
+
_getHeaders(): Record<string, string[]>;
|
|
34
|
+
}
|