@mojojs/core 0.25.0 → 0.28.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/README.md +2 -2
- package/lib/app.d.ts +11 -7
- package/lib/app.js +24 -17
- 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/plugins/default-conditions.d.ts +5 -0
- package/lib/plugins/{header-conditions.js → default-conditions.js} +3 -3
- package/lib/plugins/default-conditions.js.map +1 -0
- package/lib/plugins/default-helpers.js +122 -0
- package/lib/plugins/default-helpers.js.map +1 -1
- package/lib/renderer.js +1 -1
- package/lib/renderer.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 +5 -4
- 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.map +0 -1
- package/lib/plugins/view-helpers.d.ts +0 -5
- package/lib/plugins/view-helpers.js +0 -33
- package/lib/plugins/view-helpers.js.map +0 -1
package/README.md
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
The [Mojolicious](https://mojolicious.org) real-time web framework for [Node.js](https://nodejs.org/). Written in
|
|
14
14
|
TypeScript. Meticulously designed for high performance backend web services using bleeding edge JavaScript features.
|
|
15
15
|
|
|
16
|
-
If you want to stay up to date on the latest developments join us on [
|
|
17
|
-
(
|
|
16
|
+
If you want to stay up to date on the latest developments join us on [Matrix](https://matrix.to/#/#mojo:matrix.org) or
|
|
17
|
+
[IRC](https://web.libera.chat/#mojo).
|
|
18
18
|
|
|
19
19
|
## Features
|
|
20
20
|
|
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,17 +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
|
|
7
|
-
import { MockResponse } from './mock/response.js';
|
|
7
|
+
import defaultConditionsPlugin from './plugins/default-conditions.js';
|
|
8
8
|
import defaultHelpersPlugin from './plugins/default-helpers.js';
|
|
9
|
-
import exceptionHelpersPlugin from './plugins/exception-helpers.js';
|
|
10
|
-
import headerConditionsPlugin from './plugins/header-conditions.js';
|
|
11
9
|
import mtEnginePlugin from './plugins/mt-engine.js';
|
|
12
|
-
import viewHelpersPlugin from './plugins/view-helpers.js';
|
|
13
10
|
import { Renderer } from './renderer.js';
|
|
14
11
|
import { Router } from './router.js';
|
|
12
|
+
import { ServerRequest } from './server/request.js';
|
|
13
|
+
import { ServerResponse } from './server/response.js';
|
|
15
14
|
import { Session } from './session.js';
|
|
16
15
|
import { Static } from './static.js';
|
|
17
16
|
import { UserAgent } from './user-agent.js';
|
|
@@ -84,10 +83,8 @@ export class App {
|
|
|
84
83
|
const isDev = this._mode === 'development';
|
|
85
84
|
this.log = new Logger({ historySize: isDev ? 10 : 0, level: isDev ? 'trace' : 'info' });
|
|
86
85
|
this.plugin(defaultHelpersPlugin);
|
|
87
|
-
this.plugin(
|
|
88
|
-
this.plugin(headerConditionsPlugin);
|
|
86
|
+
this.plugin(defaultConditionsPlugin);
|
|
89
87
|
this.plugin(mtEnginePlugin);
|
|
90
|
-
this.plugin(viewHelpersPlugin);
|
|
91
88
|
}
|
|
92
89
|
/**
|
|
93
90
|
* Add an application hook.
|
|
@@ -169,31 +166,41 @@ export class App {
|
|
|
169
166
|
/**
|
|
170
167
|
* Create a context for application.
|
|
171
168
|
*/
|
|
172
|
-
newContext(req, res
|
|
173
|
-
const ctx = new this._contextClass(this, req, res
|
|
169
|
+
newContext(req, res) {
|
|
170
|
+
const ctx = new this._contextClass(this, req, res);
|
|
174
171
|
Object.assign(ctx.stash, this.defaults);
|
|
175
172
|
return ctx;
|
|
176
173
|
}
|
|
177
174
|
/**
|
|
178
175
|
* Create a mock context for application. Very useful for testing helpers.
|
|
179
176
|
*/
|
|
180
|
-
newMockContext(options) {
|
|
181
|
-
const
|
|
182
|
-
|
|
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
|
+
}));
|
|
183
190
|
Object.assign(ctx.stash, this.defaults);
|
|
184
191
|
return ctx;
|
|
185
192
|
}
|
|
186
193
|
/**
|
|
187
194
|
* Create a new mock user agent for application.
|
|
188
195
|
*/
|
|
189
|
-
async newMockUserAgent(options) {
|
|
190
|
-
return await MockUserAgent.newMockUserAgent(this, options);
|
|
196
|
+
async newMockUserAgent(options, serverOptions) {
|
|
197
|
+
return await MockUserAgent.newMockUserAgent(this, options, serverOptions);
|
|
191
198
|
}
|
|
192
199
|
/**
|
|
193
200
|
* Create a new test user agent for application.
|
|
194
201
|
*/
|
|
195
|
-
async newTestUserAgent(options) {
|
|
196
|
-
return await TestUserAgent.newTestUserAgent(this, options);
|
|
202
|
+
async newTestUserAgent(options, serverOptions) {
|
|
203
|
+
return await TestUserAgent.newTestUserAgent(this, options, serverOptions);
|
|
197
204
|
}
|
|
198
205
|
/**
|
|
199
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
|
+
}
|