@matter/nodejs 0.16.11-alpha.0-20260228-3ee9c97df → 0.16.11
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/dist/cjs/net/NodeJsHttpEndpoint.d.ts +6 -7
- package/dist/cjs/net/NodeJsHttpEndpoint.d.ts.map +1 -1
- package/dist/cjs/net/NodeJsHttpEndpoint.js +12 -27
- package/dist/cjs/net/NodeJsHttpEndpoint.js.map +2 -2
- package/dist/esm/net/NodeJsHttpEndpoint.d.ts +6 -7
- package/dist/esm/net/NodeJsHttpEndpoint.d.ts.map +1 -1
- package/dist/esm/net/NodeJsHttpEndpoint.js +13 -28
- package/dist/esm/net/NodeJsHttpEndpoint.js.map +1 -1
- package/package.json +10 -10
- package/src/net/NodeJsHttpEndpoint.ts +15 -32
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { HttpEndpoint, HttpEndpointFactory } from "#general";
|
|
7
|
-
import
|
|
8
|
-
import { IncomingMessage } from "node:http";
|
|
7
|
+
import { IncomingMessage, Server, ServerResponse } from "node:http";
|
|
9
8
|
/**
|
|
10
9
|
* An implementation of {@link HttpEndpoint} that uses Node.js's standard {@link Server}.
|
|
11
10
|
*
|
|
@@ -16,14 +15,14 @@ import { IncomingMessage } from "node:http";
|
|
|
16
15
|
*/
|
|
17
16
|
export declare class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
18
17
|
#private;
|
|
19
|
-
static create(
|
|
18
|
+
static create(options: NodeJsHttpEndpoint.Options): Promise<NodeJsHttpEndpoint>;
|
|
20
19
|
/**
|
|
21
20
|
* Create a new endpoint.
|
|
22
21
|
*
|
|
23
|
-
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.
|
|
22
|
+
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
|
|
24
23
|
* to this endpoint.
|
|
25
24
|
*/
|
|
26
|
-
constructor(
|
|
25
|
+
constructor(optionsOrServer: Server | NodeJsHttpEndpoint.Options);
|
|
27
26
|
get server(): Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
28
27
|
get ready(): Promise<void>;
|
|
29
28
|
set http(handler: HttpEndpoint.HttpHandler | undefined);
|
|
@@ -31,13 +30,13 @@ export declare class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
|
31
30
|
close: () => Promise<void>;
|
|
32
31
|
}
|
|
33
32
|
export declare namespace NodeJsHttpEndpoint {
|
|
34
|
-
interface
|
|
33
|
+
interface Options extends HttpEndpoint.Options {
|
|
35
34
|
basePathForUnixSockets?: string;
|
|
36
35
|
}
|
|
37
36
|
class Factory extends HttpEndpointFactory {
|
|
38
37
|
#private;
|
|
39
38
|
constructor(basePathForUnixSockets?: string);
|
|
40
|
-
create(
|
|
39
|
+
create(options: HttpEndpoint.Options): Promise<NodeJsHttpEndpoint>;
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
//# sourceMappingURL=NodeJsHttpEndpoint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeJsHttpEndpoint.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsHttpEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,YAAY,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AAExG,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeJsHttpEndpoint.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsHttpEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,YAAY,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AAExG,OAAO,EAAgB,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAWlF;;;;;;;GAOG;AACH,qBAAa,kBAAmB,YAAW,YAAY;;WAYtC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMrF;;;;;OAKG;gBACS,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO;IAehE,IAAI,MAAM,0DAET;IAsGD,IAAI,KAAK,kBAER;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,SAAS,EAsBrD;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,GAAG,SAAS,EA6BjD;IAED,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CA8D9B;AA8CD,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,OAAQ,SAAQ,YAAY,CAAC,OAAO;QACjD,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACnC;IAED,MAAa,OAAQ,SAAQ,mBAAmB;;oBAGhC,sBAAsB,CAAC,EAAE,MAAM;QAKrC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO;KAM7C;CACJ"}
|
|
@@ -24,7 +24,6 @@ module.exports = __toCommonJS(NodeJsHttpEndpoint_exports);
|
|
|
24
24
|
var import_general = require("#general");
|
|
25
25
|
var import_node_fs = require("node:fs");
|
|
26
26
|
var import_node_http = require("node:http");
|
|
27
|
-
var import_node_https = require("node:https");
|
|
28
27
|
var import_node_path = require("node:path");
|
|
29
28
|
var import_WsAdapter = require("./WsAdapter.js");
|
|
30
29
|
/**
|
|
@@ -43,23 +42,23 @@ class NodeJsHttpEndpoint {
|
|
|
43
42
|
#notFound;
|
|
44
43
|
#wsAdapter;
|
|
45
44
|
#wsAdapterFactory;
|
|
46
|
-
static async create(
|
|
47
|
-
const endpoint = new NodeJsHttpEndpoint(
|
|
45
|
+
static async create(options) {
|
|
46
|
+
const endpoint = new NodeJsHttpEndpoint(options);
|
|
48
47
|
await endpoint.ready;
|
|
49
48
|
return endpoint;
|
|
50
49
|
}
|
|
51
50
|
/**
|
|
52
51
|
* Create a new endpoint.
|
|
53
52
|
*
|
|
54
|
-
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.
|
|
53
|
+
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
|
|
55
54
|
* to this endpoint.
|
|
56
55
|
*/
|
|
57
|
-
constructor(
|
|
56
|
+
constructor(optionsOrServer) {
|
|
58
57
|
let close, ready, server, notFound;
|
|
59
|
-
if ("on" in
|
|
60
|
-
({ close, ready, server, notFound } = this.#bindToServer(
|
|
58
|
+
if ("on" in optionsOrServer) {
|
|
59
|
+
({ close, ready, server, notFound } = this.#bindToServer(optionsOrServer));
|
|
61
60
|
} else {
|
|
62
|
-
({ close, ready, server, notFound } = this.#createDedicatedServer(
|
|
61
|
+
({ close, ready, server, notFound } = this.#createDedicatedServer(optionsOrServer));
|
|
63
62
|
}
|
|
64
63
|
this.#server = server;
|
|
65
64
|
this.#ready = ready;
|
|
@@ -81,28 +80,14 @@ class NodeJsHttpEndpoint {
|
|
|
81
80
|
};
|
|
82
81
|
}
|
|
83
82
|
#createDedicatedServer(options) {
|
|
84
|
-
const
|
|
85
|
-
let server;
|
|
86
|
-
if (address.isTls) {
|
|
87
|
-
if (options.certificate === void 0 || options.key === void 0) {
|
|
88
|
-
throw new import_general.NetworkError(
|
|
89
|
-
`Cannot create HTTPS endpoint for ${address} because no certificate and/or key is present`
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
server = (0, import_node_https.createServer)({
|
|
93
|
-
keepAlive: true,
|
|
94
|
-
cert: options.certificate,
|
|
95
|
-
key: options.key
|
|
96
|
-
});
|
|
97
|
-
} else {
|
|
98
|
-
server = (0, import_node_http.createServer)({ keepAlive: true });
|
|
99
|
-
}
|
|
83
|
+
const server = (0, import_node_http.createServer)({ keepAlive: true });
|
|
100
84
|
const opts = {};
|
|
85
|
+
const address = import_general.AppAddress.for(options.address);
|
|
101
86
|
const { transport } = address;
|
|
102
87
|
switch (transport.kind) {
|
|
103
88
|
case "ip":
|
|
104
89
|
if (!address.isWildcardHost) {
|
|
105
|
-
opts.host = address.
|
|
90
|
+
opts.host = address.host;
|
|
106
91
|
}
|
|
107
92
|
if (!address.isWildcardPort) {
|
|
108
93
|
opts.port = address.portNum;
|
|
@@ -307,10 +292,10 @@ function respondError(res, code) {
|
|
|
307
292
|
super();
|
|
308
293
|
this.#basePathForUnixSockets = basePathForUnixSockets;
|
|
309
294
|
}
|
|
310
|
-
async create(
|
|
295
|
+
async create(options) {
|
|
311
296
|
return NodeJsHttpEndpoint2.create({
|
|
312
297
|
basePathForUnixSockets: this.#basePathForUnixSockets,
|
|
313
|
-
...
|
|
298
|
+
...options
|
|
314
299
|
});
|
|
315
300
|
}
|
|
316
301
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/NodeJsHttpEndpoint.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,qBAA6F;AAC7F,qBAAyD;
|
|
5
|
-
"names": ["
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["resolve", "NodeJsHttpEndpoint"]
|
|
6
6
|
}
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { HttpEndpoint, HttpEndpointFactory } from "#general";
|
|
7
|
-
import
|
|
8
|
-
import { IncomingMessage } from "node:http";
|
|
7
|
+
import { IncomingMessage, Server, ServerResponse } from "node:http";
|
|
9
8
|
/**
|
|
10
9
|
* An implementation of {@link HttpEndpoint} that uses Node.js's standard {@link Server}.
|
|
11
10
|
*
|
|
@@ -16,14 +15,14 @@ import { IncomingMessage } from "node:http";
|
|
|
16
15
|
*/
|
|
17
16
|
export declare class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
18
17
|
#private;
|
|
19
|
-
static create(
|
|
18
|
+
static create(options: NodeJsHttpEndpoint.Options): Promise<NodeJsHttpEndpoint>;
|
|
20
19
|
/**
|
|
21
20
|
* Create a new endpoint.
|
|
22
21
|
*
|
|
23
|
-
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.
|
|
22
|
+
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
|
|
24
23
|
* to this endpoint.
|
|
25
24
|
*/
|
|
26
|
-
constructor(
|
|
25
|
+
constructor(optionsOrServer: Server | NodeJsHttpEndpoint.Options);
|
|
27
26
|
get server(): Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
28
27
|
get ready(): Promise<void>;
|
|
29
28
|
set http(handler: HttpEndpoint.HttpHandler | undefined);
|
|
@@ -31,13 +30,13 @@ export declare class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
|
31
30
|
close: () => Promise<void>;
|
|
32
31
|
}
|
|
33
32
|
export declare namespace NodeJsHttpEndpoint {
|
|
34
|
-
interface
|
|
33
|
+
interface Options extends HttpEndpoint.Options {
|
|
35
34
|
basePathForUnixSockets?: string;
|
|
36
35
|
}
|
|
37
36
|
class Factory extends HttpEndpointFactory {
|
|
38
37
|
#private;
|
|
39
38
|
constructor(basePathForUnixSockets?: string);
|
|
40
|
-
create(
|
|
39
|
+
create(options: HttpEndpoint.Options): Promise<NodeJsHttpEndpoint>;
|
|
41
40
|
}
|
|
42
41
|
}
|
|
43
42
|
//# sourceMappingURL=NodeJsHttpEndpoint.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeJsHttpEndpoint.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsHttpEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,YAAY,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AAExG,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeJsHttpEndpoint.d.ts","sourceRoot":"","sources":["../../../src/net/NodeJsHttpEndpoint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuB,YAAY,EAAE,mBAAmB,EAAwB,MAAM,UAAU,CAAC;AAExG,OAAO,EAAgB,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAWlF;;;;;;;GAOG;AACH,qBAAa,kBAAmB,YAAW,YAAY;;WAYtC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMrF;;;;;OAKG;gBACS,eAAe,EAAE,MAAM,GAAG,kBAAkB,CAAC,OAAO;IAehE,IAAI,MAAM,0DAET;IAsGD,IAAI,KAAK,kBAER;IAED,IAAI,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,WAAW,GAAG,SAAS,EAsBrD;IAED,IAAI,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,GAAG,SAAS,EA6BjD;IAED,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CA8D9B;AA8CD,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,OAAQ,SAAQ,YAAY,CAAC,OAAO;QACjD,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACnC;IAED,MAAa,OAAQ,SAAQ,mBAAmB;;oBAGhC,sBAAsB,CAAC,EAAE,MAAM;QAKrC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,OAAO;KAM7C;CACJ"}
|
|
@@ -5,8 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { AppAddress, asError, HttpEndpointFactory, Logger, NetworkError } from "#general";
|
|
7
7
|
import { existsSync, ReadStream, rmSync, statSync } from "node:fs";
|
|
8
|
-
import { createServer
|
|
9
|
-
import { createServer as createHttpsServer } from "node:https";
|
|
8
|
+
import { createServer, IncomingMessage } from "node:http";
|
|
10
9
|
import { normalize, resolve } from "node:path";
|
|
11
10
|
import { WsAdapter } from "./WsAdapter.js";
|
|
12
11
|
const logger = new Logger("NodeJsHttpEndpoint");
|
|
@@ -20,23 +19,23 @@ class NodeJsHttpEndpoint {
|
|
|
20
19
|
#notFound;
|
|
21
20
|
#wsAdapter;
|
|
22
21
|
#wsAdapterFactory;
|
|
23
|
-
static async create(
|
|
24
|
-
const endpoint = new NodeJsHttpEndpoint(
|
|
22
|
+
static async create(options) {
|
|
23
|
+
const endpoint = new NodeJsHttpEndpoint(options);
|
|
25
24
|
await endpoint.ready;
|
|
26
25
|
return endpoint;
|
|
27
26
|
}
|
|
28
27
|
/**
|
|
29
28
|
* Create a new endpoint.
|
|
30
29
|
*
|
|
31
|
-
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.
|
|
30
|
+
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
|
|
32
31
|
* to this endpoint.
|
|
33
32
|
*/
|
|
34
|
-
constructor(
|
|
33
|
+
constructor(optionsOrServer) {
|
|
35
34
|
let close, ready, server, notFound;
|
|
36
|
-
if ("on" in
|
|
37
|
-
({ close, ready, server, notFound } = this.#bindToServer(
|
|
35
|
+
if ("on" in optionsOrServer) {
|
|
36
|
+
({ close, ready, server, notFound } = this.#bindToServer(optionsOrServer));
|
|
38
37
|
} else {
|
|
39
|
-
({ close, ready, server, notFound } = this.#createDedicatedServer(
|
|
38
|
+
({ close, ready, server, notFound } = this.#createDedicatedServer(optionsOrServer));
|
|
40
39
|
}
|
|
41
40
|
this.#server = server;
|
|
42
41
|
this.#ready = ready;
|
|
@@ -58,28 +57,14 @@ class NodeJsHttpEndpoint {
|
|
|
58
57
|
};
|
|
59
58
|
}
|
|
60
59
|
#createDedicatedServer(options) {
|
|
61
|
-
const
|
|
62
|
-
let server;
|
|
63
|
-
if (address.isTls) {
|
|
64
|
-
if (options.certificate === void 0 || options.key === void 0) {
|
|
65
|
-
throw new NetworkError(
|
|
66
|
-
`Cannot create HTTPS endpoint for ${address} because no certificate and/or key is present`
|
|
67
|
-
);
|
|
68
|
-
}
|
|
69
|
-
server = createHttpsServer({
|
|
70
|
-
keepAlive: true,
|
|
71
|
-
cert: options.certificate,
|
|
72
|
-
key: options.key
|
|
73
|
-
});
|
|
74
|
-
} else {
|
|
75
|
-
server = createHttpServer({ keepAlive: true });
|
|
76
|
-
}
|
|
60
|
+
const server = createServer({ keepAlive: true });
|
|
77
61
|
const opts = {};
|
|
62
|
+
const address = AppAddress.for(options.address);
|
|
78
63
|
const { transport } = address;
|
|
79
64
|
switch (transport.kind) {
|
|
80
65
|
case "ip":
|
|
81
66
|
if (!address.isWildcardHost) {
|
|
82
|
-
opts.host = address.
|
|
67
|
+
opts.host = address.host;
|
|
83
68
|
}
|
|
84
69
|
if (!address.isWildcardPort) {
|
|
85
70
|
opts.port = address.portNum;
|
|
@@ -284,10 +269,10 @@ function respondError(res, code) {
|
|
|
284
269
|
super();
|
|
285
270
|
this.#basePathForUnixSockets = basePathForUnixSockets;
|
|
286
271
|
}
|
|
287
|
-
async create(
|
|
272
|
+
async create(options) {
|
|
288
273
|
return NodeJsHttpEndpoint2.create({
|
|
289
274
|
basePathForUnixSockets: this.#basePathForUnixSockets,
|
|
290
|
-
...
|
|
275
|
+
...options
|
|
291
276
|
});
|
|
292
277
|
}
|
|
293
278
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/NodeJsHttpEndpoint.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,SAAuB,qBAAqB,QAAQ,oBAAoB;AAC7F,SAAS,YAAY,YAAY,QAAQ,gBAAgB;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["resolve", "NodeJsHttpEndpoint"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/nodejs",
|
|
3
|
-
"version": "0.16.11
|
|
3
|
+
"version": "0.16.11",
|
|
4
4
|
"description": "Node.js platform support for matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -44,17 +44,17 @@
|
|
|
44
44
|
"#*": "./src/*"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@matter/general": "0.16.11
|
|
48
|
-
"@matter/node": "0.16.11
|
|
49
|
-
"@matter/protocol": "0.16.11
|
|
50
|
-
"@matter/types": "0.16.11
|
|
47
|
+
"@matter/general": "0.16.11",
|
|
48
|
+
"@matter/node": "0.16.11",
|
|
49
|
+
"@matter/protocol": "0.16.11",
|
|
50
|
+
"@matter/types": "0.16.11"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@matter/model": "0.16.11
|
|
54
|
-
"@matter/protocol": "0.16.11
|
|
55
|
-
"@matter/testing": "0.16.11
|
|
56
|
-
"@matter/tools": "0.16.11
|
|
57
|
-
"@project-chip/matter.js": "0.16.11
|
|
53
|
+
"@matter/model": "0.16.11",
|
|
54
|
+
"@matter/protocol": "0.16.11",
|
|
55
|
+
"@matter/testing": "0.16.11",
|
|
56
|
+
"@matter/tools": "0.16.11",
|
|
57
|
+
"@project-chip/matter.js": "0.16.11",
|
|
58
58
|
"@types/bytebuffer": "^5.0.49"
|
|
59
59
|
},
|
|
60
60
|
"files": [
|
|
@@ -6,9 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
import { AppAddress, asError, HttpEndpoint, HttpEndpointFactory, Logger, NetworkError } from "#general";
|
|
8
8
|
import { existsSync, ReadStream, rmSync, statSync } from "node:fs";
|
|
9
|
-
import
|
|
10
|
-
import { createServer as createHttpServer, IncomingMessage } from "node:http";
|
|
11
|
-
import { createServer as createHttpsServer } from "node:https";
|
|
9
|
+
import { createServer, IncomingMessage, Server, ServerResponse } from "node:http";
|
|
12
10
|
import { ListenOptions } from "node:net";
|
|
13
11
|
import { normalize, resolve } from "node:path";
|
|
14
12
|
import { Duplex } from "node:stream";
|
|
@@ -39,8 +37,8 @@ export class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
|
39
37
|
#wsAdapter?: WsAdapter;
|
|
40
38
|
#wsAdapterFactory?: WsAdapter.Factory;
|
|
41
39
|
|
|
42
|
-
static async create(
|
|
43
|
-
const endpoint = new NodeJsHttpEndpoint(
|
|
40
|
+
static async create(options: NodeJsHttpEndpoint.Options): Promise<NodeJsHttpEndpoint> {
|
|
41
|
+
const endpoint = new NodeJsHttpEndpoint(options);
|
|
44
42
|
await endpoint.ready;
|
|
45
43
|
return endpoint;
|
|
46
44
|
}
|
|
@@ -48,16 +46,16 @@ export class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
|
48
46
|
/**
|
|
49
47
|
* Create a new endpoint.
|
|
50
48
|
*
|
|
51
|
-
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.
|
|
49
|
+
* You may pass an existing {@link Server} or pass {@link NodeJsHttpEndpoint.Options} to create a server dedicated
|
|
52
50
|
* to this endpoint.
|
|
53
51
|
*/
|
|
54
|
-
constructor(
|
|
52
|
+
constructor(optionsOrServer: Server | NodeJsHttpEndpoint.Options) {
|
|
55
53
|
let close, ready, server, notFound;
|
|
56
54
|
|
|
57
|
-
if ("on" in
|
|
58
|
-
({ close, ready, server, notFound } = this.#bindToServer(
|
|
55
|
+
if ("on" in optionsOrServer) {
|
|
56
|
+
({ close, ready, server, notFound } = this.#bindToServer(optionsOrServer));
|
|
59
57
|
} else {
|
|
60
|
-
({ close, ready, server, notFound } = this.#createDedicatedServer(
|
|
58
|
+
({ close, ready, server, notFound } = this.#createDedicatedServer(optionsOrServer));
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
this.#server = server;
|
|
@@ -82,32 +80,17 @@ export class NodeJsHttpEndpoint implements HttpEndpoint {
|
|
|
82
80
|
};
|
|
83
81
|
}
|
|
84
82
|
|
|
85
|
-
#createDedicatedServer(options: NodeJsHttpEndpoint.
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
let server;
|
|
89
|
-
if (address.isTls) {
|
|
90
|
-
if (options.certificate === undefined || options.key === undefined) {
|
|
91
|
-
throw new NetworkError(
|
|
92
|
-
`Cannot create HTTPS endpoint for ${address} because no certificate and/or key is present`,
|
|
93
|
-
);
|
|
94
|
-
}
|
|
95
|
-
server = createHttpsServer({
|
|
96
|
-
keepAlive: true,
|
|
97
|
-
cert: options.certificate,
|
|
98
|
-
key: options.key,
|
|
99
|
-
});
|
|
100
|
-
} else {
|
|
101
|
-
server = createHttpServer({ keepAlive: true });
|
|
102
|
-
}
|
|
83
|
+
#createDedicatedServer(options: NodeJsHttpEndpoint.Options) {
|
|
84
|
+
const server = createServer({ keepAlive: true });
|
|
103
85
|
|
|
104
86
|
const opts = {} as ListenOptions;
|
|
105
87
|
|
|
88
|
+
const address = AppAddress.for(options.address);
|
|
106
89
|
const { transport } = address;
|
|
107
90
|
switch (transport.kind) {
|
|
108
91
|
case "ip":
|
|
109
92
|
if (!address.isWildcardHost) {
|
|
110
|
-
opts.host = address.
|
|
93
|
+
opts.host = address.host;
|
|
111
94
|
}
|
|
112
95
|
if (!address.isWildcardPort) {
|
|
113
96
|
opts.port = address.portNum;
|
|
@@ -353,7 +336,7 @@ function respondError(res: ServerResponse, code: number) {
|
|
|
353
336
|
}
|
|
354
337
|
|
|
355
338
|
export namespace NodeJsHttpEndpoint {
|
|
356
|
-
export interface
|
|
339
|
+
export interface Options extends HttpEndpoint.Options {
|
|
357
340
|
basePathForUnixSockets?: string;
|
|
358
341
|
}
|
|
359
342
|
|
|
@@ -365,10 +348,10 @@ export namespace NodeJsHttpEndpoint {
|
|
|
365
348
|
this.#basePathForUnixSockets = basePathForUnixSockets;
|
|
366
349
|
}
|
|
367
350
|
|
|
368
|
-
async create(
|
|
351
|
+
async create(options: HttpEndpoint.Options) {
|
|
369
352
|
return NodeJsHttpEndpoint.create({
|
|
370
353
|
basePathForUnixSockets: this.#basePathForUnixSockets,
|
|
371
|
-
...
|
|
354
|
+
...options,
|
|
372
355
|
});
|
|
373
356
|
}
|
|
374
357
|
}
|