@zeltjs/adapter-node 0.9.1-canary.6 → 0.10.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 +35 -4
- package/dist/index.cjs +32 -26
- package/dist/index.d.cts +16 -12
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +16 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -27
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -15,10 +15,41 @@ npm install @zeltjs/adapter-node @zeltjs/core
|
|
|
15
15
|
## Usage
|
|
16
16
|
|
|
17
17
|
```typescript
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
18
|
+
import { createApp, http, Controller, Get } from '@zeltjs/core';
|
|
19
|
+
import { onNode } from '@zeltjs/adapter-node';
|
|
20
|
+
|
|
21
|
+
@Controller('/hello')
|
|
22
|
+
class HelloController {
|
|
23
|
+
@Get('/')
|
|
24
|
+
greet() {
|
|
25
|
+
return { message: 'Hello from Node.js!' };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const app = createApp([http({ controllers: [HelloController] })]);
|
|
30
|
+
|
|
31
|
+
const nodeApp = await onNode(app);
|
|
32
|
+
const server = await nodeApp.http.listen({ port: 3000 });
|
|
33
|
+
console.log(`Listening on port ${server.address.port}`);
|
|
34
|
+
```
|
|
20
35
|
|
|
21
|
-
|
|
36
|
+
Each named `http()` feature gets its own namespace with an independent `listen()`, sharing the same runtime and services:
|
|
22
37
|
|
|
23
|
-
|
|
38
|
+
```typescript
|
|
39
|
+
@Controller('/admin')
|
|
40
|
+
class AdminController {
|
|
41
|
+
@Get('/')
|
|
42
|
+
status() {
|
|
43
|
+
return { admin: true };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const app = createApp([
|
|
48
|
+
http({ controllers: [HelloController] }),
|
|
49
|
+
http({ name: 'admin', controllers: [AdminController] }),
|
|
50
|
+
]);
|
|
51
|
+
|
|
52
|
+
const nodeApp = await onNode(app);
|
|
53
|
+
await nodeApp.http.listen(3000);
|
|
54
|
+
await nodeApp.admin.listen(8080);
|
|
24
55
|
```
|
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,37 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
let _hono_node_server = require("@hono/node-server");
|
|
3
3
|
let _zeltjs_core = require("@zeltjs/core");
|
|
4
|
+
//#region src/listen.lib.ts
|
|
5
|
+
const closeServer = (server) => new Promise((resolve, reject) => {
|
|
6
|
+
server.close((err) => err ? reject(err) : resolve());
|
|
7
|
+
});
|
|
8
|
+
/** @throws {Error} propagates the server's bind error (e.g. EADDRINUSE) instead of hanging */ const createListenForHttp = (appFetch, registerShutdown) => {
|
|
9
|
+
return async (portOrOptions) => {
|
|
10
|
+
const listenOptions = typeof portOrOptions === "number" ? { port: portOrOptions } : portOrOptions ?? {};
|
|
11
|
+
const port = listenOptions.port ?? 3e3;
|
|
12
|
+
const hostname = listenOptions.hostname ?? "0.0.0.0";
|
|
13
|
+
let server;
|
|
14
|
+
return {
|
|
15
|
+
address: await new Promise((resolve, reject) => {
|
|
16
|
+
const onError = (err) => reject(err);
|
|
17
|
+
server = (0, _hono_node_server.serve)({
|
|
18
|
+
fetch: appFetch,
|
|
19
|
+
port,
|
|
20
|
+
hostname
|
|
21
|
+
}, (info) => {
|
|
22
|
+
server.off("error", onError);
|
|
23
|
+
resolve({
|
|
24
|
+
port: info.port,
|
|
25
|
+
address: info.address
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
server.once("error", onError);
|
|
29
|
+
}),
|
|
30
|
+
shutdown: registerShutdown(() => closeServer(server))
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
4
35
|
//#region src/node-cli.config.ts
|
|
5
36
|
function _ts_decorate$1(decorators, target, key, desc) {
|
|
6
37
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -45,32 +76,6 @@ var ProcessEnvAdaptor = class extends _zeltjs_core.EnvAdaptor {
|
|
|
45
76
|
ProcessEnvAdaptor = _ts_decorate([_zeltjs_core.Config], ProcessEnvAdaptor);
|
|
46
77
|
//#endregion
|
|
47
78
|
//#region src/on-node.ts
|
|
48
|
-
const closeServer = (server) => new Promise((resolve, reject) => {
|
|
49
|
-
server.close((err) => err ? reject(err) : resolve());
|
|
50
|
-
});
|
|
51
|
-
const createListenForHttp = (appFetch, registerShutdown) => {
|
|
52
|
-
return async (portOrOptions) => {
|
|
53
|
-
const listenOptions = typeof portOrOptions === "number" ? { port: portOrOptions } : portOrOptions ?? {};
|
|
54
|
-
const port = listenOptions.port ?? 3e3;
|
|
55
|
-
const hostname = listenOptions.hostname ?? "0.0.0.0";
|
|
56
|
-
let server;
|
|
57
|
-
const serverReady = new Promise((resolve) => {
|
|
58
|
-
server = (0, _hono_node_server.serve)({
|
|
59
|
-
fetch: appFetch,
|
|
60
|
-
port,
|
|
61
|
-
hostname
|
|
62
|
-
}, (info) => resolve({
|
|
63
|
-
port: info.port,
|
|
64
|
-
address: info.address
|
|
65
|
-
}));
|
|
66
|
-
});
|
|
67
|
-
const shutdown = registerShutdown(() => closeServer(server));
|
|
68
|
-
return {
|
|
69
|
-
address: await serverReady,
|
|
70
|
-
shutdown
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
};
|
|
74
79
|
const getArgs = () => globalThis.process.argv.slice(2);
|
|
75
80
|
const createNodeApp = (readyApp, shutdown, args) => {
|
|
76
81
|
const nodeApp = {
|
|
@@ -148,5 +153,6 @@ Object.defineProperty(exports, "createAdaptorServer", {
|
|
|
148
153
|
return _hono_node_server.createAdaptorServer;
|
|
149
154
|
}
|
|
150
155
|
});
|
|
156
|
+
exports.createListenForHttp = createListenForHttp;
|
|
151
157
|
exports.onNode = onNode;
|
|
152
158
|
exports.serve = serveApp;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import { ServerType, createAdaptorServer } from "@hono/node-server";
|
|
2
2
|
import { CliConfig, ConfigClass, ConfiguredFeature, EnvAdaptor, FeatureApp, FeatureReadyCapabilities, HttpFeature, RuntimeApp, Signal, SignalHandler } from "@zeltjs/core";
|
|
3
3
|
|
|
4
|
-
//#region src/
|
|
5
|
-
declare class NodeCliConfig extends CliConfig {
|
|
6
|
-
cwd(): string;
|
|
7
|
-
argv(): readonly string[];
|
|
8
|
-
exit(code: number): never;
|
|
9
|
-
setExitCode(code: number): void;
|
|
10
|
-
onSignal(signal: Signal, handler: SignalHandler): void;
|
|
11
|
-
offSignal(signal: Signal, handler: SignalHandler): void;
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/on-node.d.ts
|
|
4
|
+
//#region src/listen.lib.d.ts
|
|
15
5
|
type ListenOptions = {
|
|
16
6
|
readonly port?: number;
|
|
17
7
|
readonly hostname?: string;
|
|
@@ -23,6 +13,20 @@ type ServerHandle = {
|
|
|
23
13
|
};
|
|
24
14
|
readonly shutdown: () => Promise<void>;
|
|
25
15
|
};
|
|
16
|
+
/** @throws {Error} propagates the server's bind error (e.g. EADDRINUSE) instead of hanging */
|
|
17
|
+
declare const createListenForHttp: (appFetch: (request: Request) => Promise<Response>, registerShutdown: (callback: () => Promise<void>) => () => Promise<void>) => ((portOrOptions?: number | ListenOptions) => Promise<ServerHandle>);
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/node-cli.config.d.ts
|
|
20
|
+
declare class NodeCliConfig extends CliConfig {
|
|
21
|
+
cwd(): string;
|
|
22
|
+
argv(): readonly string[];
|
|
23
|
+
exit(code: number): never;
|
|
24
|
+
setExitCode(code: number): void;
|
|
25
|
+
onSignal(signal: Signal, handler: SignalHandler): void;
|
|
26
|
+
offSignal(signal: Signal, handler: SignalHandler): void;
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/on-node.d.ts
|
|
26
30
|
type NodeAppOptions = {
|
|
27
31
|
readonly configs?: readonly ConfigClass<object>[];
|
|
28
32
|
readonly warmup?: boolean;
|
|
@@ -58,5 +62,5 @@ type AppLike = {
|
|
|
58
62
|
};
|
|
59
63
|
declare const serveApp: (app: AppLike, optionsOrCallback?: ServeOptions | ((info: AddressInfo) => void), maybeCallback?: (info: AddressInfo) => void) => ServerType;
|
|
60
64
|
//#endregion
|
|
61
|
-
export { type AddressInfo, NodeCliConfig, ProcessEnvAdaptor, type ServeOptions, type ServerHandle, createAdaptorServer, onNode, serveApp as serve };
|
|
65
|
+
export { type AddressInfo, type ListenOptions, NodeCliConfig, ProcessEnvAdaptor, type ServeOptions, type ServerHandle, createAdaptorServer, createListenForHttp, onNode, serveApp as serve };
|
|
62
66
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/node-cli.config.ts","../src/on-node.ts","../src/process-env.adaptor.ts","../src/serve.lib.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/listen.lib.ts","../src/node-cli.config.ts","../src/on-node.ts","../src/process-env.adaptor.ts","../src/serve.lib.ts"],"mappings":";;;;KAGY,aAAA;EAAA,SACD,IAAA;EAAA,SACA,QAAA;AAAA;AAAA,KAGC,YAAA;EAAA,SACD,OAAA;IAAW,IAAA;IAAc,OAAA;EAAA;EAAA,SACzB,QAAA,QAAgB,OAAA;AAAA;;cASd,mBAAA,GACX,QAAA,GAAW,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA,GACxC,gBAAA,GAAmB,QAAA,QAAgB,OAAA,iBAAwB,OAAA,aACxD,aAAA,YAAyB,aAAA,KAAkB,OAAA,CAAQ,YAAA;;;cClB3C,aAAA,SAAsB,SAAA;EACxB,GAAA,CAAA;EAIA,IAAA,CAAA;EAIA,IAAA,CAAK,IAAA;EAIL,WAAA,CAAY,IAAA;EAIZ,QAAA,CAAS,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,aAAA;EAIlC,SAAA,CAAU,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,aAAA;AAAA;;;KCTlC,cAAA;EAAA,SACD,OAAA,YAAmB,WAAA;EAAA,SACnB,MAAA;AAAA;AAAA,KAKN,sBAAA;EAAA,SACM,IAAA;EAAA,SACA,QAAA,QAAgB,OAAA;AAAA;AAAA,KAGtB,eAAA;EAAA,SACM,MAAA,GAAS,aAAA,YAAyB,aAAA,KAAkB,OAAA,CAAQ,YAAA;AAAA;AAAA,KAGlE,uBAAA,kBAAyC,iBAAA,IAC5C,wBAAA,CAAyB,QAAA,KACtB,QAAA,SAAiB,WAAA,WAAsB,eAAA;AAAA,KAEvC,0BAAA,oBAA8C,iBAAA,8BAC3B,CAAA,YAAa,QAAA,UAAkB,uBAAA,CAAwB,QAAA;AAAA,KAK1E,kBAAA,oBAAsC,iBAAA,MAAuB,UAAA,CAAW,CAAA,IAC3E,sBAAA,GACA,0BAAA,CAA2B,CAAA;AAAA,iBAiCb,MAAA,0BAAgC,iBAAA,GAAA,CAC9C,GAAA,EAAK,UAAA,CAAW,CAAA,GAChB,OAAA,GAAU,cAAA,GACT,OAAA,CAAQ,kBAAA,CAAmB,CAAA;;;cC7EjB,iBAAA,SAA0B,UAAA;EAC5B,GAAA,CAAI,GAAA;AAAA;;;KCDH,YAAA;EACV,IAAA;EACA,QAAA;AAAA;AAAA,KAGU,WAAA;EACV,IAAA;EACA,OAAA;AAAA;AAAA,KAGG,OAAA;EACH,KAAA,GAAQ,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA;AAAA;AAAA,cAa1B,QAAA,GACX,GAAA,EAAK,OAAA,EACL,iBAAA,GAAoB,YAAA,KAAiB,IAAA,EAAM,WAAA,YAC3C,aAAA,IAAiB,IAAA,EAAM,WAAA,cACtB,UAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,7 @@
|
|
|
1
1
|
import { ServerType, createAdaptorServer } from "@hono/node-server";
|
|
2
2
|
import { CliConfig, ConfigClass, ConfiguredFeature, EnvAdaptor, FeatureApp, FeatureReadyCapabilities, HttpFeature, RuntimeApp, Signal, SignalHandler } from "@zeltjs/core";
|
|
3
3
|
|
|
4
|
-
//#region src/
|
|
5
|
-
declare class NodeCliConfig extends CliConfig {
|
|
6
|
-
cwd(): string;
|
|
7
|
-
argv(): readonly string[];
|
|
8
|
-
exit(code: number): never;
|
|
9
|
-
setExitCode(code: number): void;
|
|
10
|
-
onSignal(signal: Signal, handler: SignalHandler): void;
|
|
11
|
-
offSignal(signal: Signal, handler: SignalHandler): void;
|
|
12
|
-
}
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/on-node.d.ts
|
|
4
|
+
//#region src/listen.lib.d.ts
|
|
15
5
|
type ListenOptions = {
|
|
16
6
|
readonly port?: number;
|
|
17
7
|
readonly hostname?: string;
|
|
@@ -23,6 +13,20 @@ type ServerHandle = {
|
|
|
23
13
|
};
|
|
24
14
|
readonly shutdown: () => Promise<void>;
|
|
25
15
|
};
|
|
16
|
+
/** @throws {Error} propagates the server's bind error (e.g. EADDRINUSE) instead of hanging */
|
|
17
|
+
declare const createListenForHttp: (appFetch: (request: Request) => Promise<Response>, registerShutdown: (callback: () => Promise<void>) => () => Promise<void>) => ((portOrOptions?: number | ListenOptions) => Promise<ServerHandle>);
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/node-cli.config.d.ts
|
|
20
|
+
declare class NodeCliConfig extends CliConfig {
|
|
21
|
+
cwd(): string;
|
|
22
|
+
argv(): readonly string[];
|
|
23
|
+
exit(code: number): never;
|
|
24
|
+
setExitCode(code: number): void;
|
|
25
|
+
onSignal(signal: Signal, handler: SignalHandler): void;
|
|
26
|
+
offSignal(signal: Signal, handler: SignalHandler): void;
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region src/on-node.d.ts
|
|
26
30
|
type NodeAppOptions = {
|
|
27
31
|
readonly configs?: readonly ConfigClass<object>[];
|
|
28
32
|
readonly warmup?: boolean;
|
|
@@ -58,5 +62,5 @@ type AppLike = {
|
|
|
58
62
|
};
|
|
59
63
|
declare const serveApp: (app: AppLike, optionsOrCallback?: ServeOptions | ((info: AddressInfo) => void), maybeCallback?: (info: AddressInfo) => void) => ServerType;
|
|
60
64
|
//#endregion
|
|
61
|
-
export { type AddressInfo, NodeCliConfig, ProcessEnvAdaptor, type ServeOptions, type ServerHandle, createAdaptorServer, onNode, serveApp as serve };
|
|
65
|
+
export { type AddressInfo, type ListenOptions, NodeCliConfig, ProcessEnvAdaptor, type ServeOptions, type ServerHandle, createAdaptorServer, createListenForHttp, onNode, serveApp as serve };
|
|
62
66
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/node-cli.config.ts","../src/on-node.ts","../src/process-env.adaptor.ts","../src/serve.lib.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/listen.lib.ts","../src/node-cli.config.ts","../src/on-node.ts","../src/process-env.adaptor.ts","../src/serve.lib.ts"],"mappings":";;;;KAGY,aAAA;EAAA,SACD,IAAA;EAAA,SACA,QAAA;AAAA;AAAA,KAGC,YAAA;EAAA,SACD,OAAA;IAAW,IAAA;IAAc,OAAA;EAAA;EAAA,SACzB,QAAA,QAAgB,OAAA;AAAA;;cASd,mBAAA,GACX,QAAA,GAAW,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA,GACxC,gBAAA,GAAmB,QAAA,QAAgB,OAAA,iBAAwB,OAAA,aACxD,aAAA,YAAyB,aAAA,KAAkB,OAAA,CAAQ,YAAA;;;cClB3C,aAAA,SAAsB,SAAA;EACxB,GAAA,CAAA;EAIA,IAAA,CAAA;EAIA,IAAA,CAAK,IAAA;EAIL,WAAA,CAAY,IAAA;EAIZ,QAAA,CAAS,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,aAAA;EAIlC,SAAA,CAAU,MAAA,EAAQ,MAAA,EAAQ,OAAA,EAAS,aAAA;AAAA;;;KCTlC,cAAA;EAAA,SACD,OAAA,YAAmB,WAAA;EAAA,SACnB,MAAA;AAAA;AAAA,KAKN,sBAAA;EAAA,SACM,IAAA;EAAA,SACA,QAAA,QAAgB,OAAA;AAAA;AAAA,KAGtB,eAAA;EAAA,SACM,MAAA,GAAS,aAAA,YAAyB,aAAA,KAAkB,OAAA,CAAQ,YAAA;AAAA;AAAA,KAGlE,uBAAA,mBAAyC,iBAAA,IAC5C,wBAAA,CAAyB,SAAA,KACtB,SAAA,SAAiB,WAAA,WAAsB,eAAA;AAAA,KAEvC,0BAAA,oBAA8C,iBAAA,8BAC3B,CAAA,YAAa,QAAA,UAAkB,uBAAA,CAAwB,QAAA;AAAA,KAK1E,kBAAA,oBAAsC,iBAAA,MAAuB,UAAA,CAAW,CAAA,IAC3E,sBAAA,GACA,0BAAA,CAA2B,CAAA;AAAA,iBAiCb,MAAA,0BAAgC,iBAAA,GAAA,CAC9C,GAAA,EAAK,UAAA,CAAW,CAAA,GAChB,OAAA,GAAU,cAAA,GACT,OAAA,CAAQ,kBAAA,CAAmB,CAAA;;;cC7EjB,iBAAA,SAA0B,UAAA;EAC5B,GAAA,CAAI,GAAA;AAAA;;;KCDH,YAAA;EACV,IAAA;EACA,QAAA;AAAA;AAAA,KAGU,WAAA;EACV,IAAA;EACA,OAAA;AAAA;AAAA,KAGG,OAAA;EACH,KAAA,GAAQ,OAAA,EAAS,OAAA,KAAY,OAAA,CAAQ,QAAA;AAAA;AAAA,cAa1B,QAAA,GACX,GAAA,EAAK,OAAA,EACL,iBAAA,GAAoB,YAAA,KAAiB,IAAA,EAAM,WAAA,YAC3C,aAAA,IAAiB,IAAA,EAAM,WAAA,cACtB,UAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,36 @@
|
|
|
1
1
|
import { createAdaptorServer, serve } from "@hono/node-server";
|
|
2
2
|
import { CliConfig, Config, EnvAdaptor, HttpFeature } from "@zeltjs/core";
|
|
3
|
+
//#region src/listen.lib.ts
|
|
4
|
+
const closeServer = (server) => new Promise((resolve, reject) => {
|
|
5
|
+
server.close((err) => err ? reject(err) : resolve());
|
|
6
|
+
});
|
|
7
|
+
/** @throws {Error} propagates the server's bind error (e.g. EADDRINUSE) instead of hanging */ const createListenForHttp = (appFetch, registerShutdown) => {
|
|
8
|
+
return async (portOrOptions) => {
|
|
9
|
+
const listenOptions = typeof portOrOptions === "number" ? { port: portOrOptions } : portOrOptions ?? {};
|
|
10
|
+
const port = listenOptions.port ?? 3e3;
|
|
11
|
+
const hostname = listenOptions.hostname ?? "0.0.0.0";
|
|
12
|
+
let server;
|
|
13
|
+
return {
|
|
14
|
+
address: await new Promise((resolve, reject) => {
|
|
15
|
+
const onError = (err) => reject(err);
|
|
16
|
+
server = serve({
|
|
17
|
+
fetch: appFetch,
|
|
18
|
+
port,
|
|
19
|
+
hostname
|
|
20
|
+
}, (info) => {
|
|
21
|
+
server.off("error", onError);
|
|
22
|
+
resolve({
|
|
23
|
+
port: info.port,
|
|
24
|
+
address: info.address
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
server.once("error", onError);
|
|
28
|
+
}),
|
|
29
|
+
shutdown: registerShutdown(() => closeServer(server))
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
3
34
|
//#region src/node-cli.config.ts
|
|
4
35
|
function _ts_decorate$1(decorators, target, key, desc) {
|
|
5
36
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -44,32 +75,6 @@ var ProcessEnvAdaptor = class extends EnvAdaptor {
|
|
|
44
75
|
ProcessEnvAdaptor = _ts_decorate([Config], ProcessEnvAdaptor);
|
|
45
76
|
//#endregion
|
|
46
77
|
//#region src/on-node.ts
|
|
47
|
-
const closeServer = (server) => new Promise((resolve, reject) => {
|
|
48
|
-
server.close((err) => err ? reject(err) : resolve());
|
|
49
|
-
});
|
|
50
|
-
const createListenForHttp = (appFetch, registerShutdown) => {
|
|
51
|
-
return async (portOrOptions) => {
|
|
52
|
-
const listenOptions = typeof portOrOptions === "number" ? { port: portOrOptions } : portOrOptions ?? {};
|
|
53
|
-
const port = listenOptions.port ?? 3e3;
|
|
54
|
-
const hostname = listenOptions.hostname ?? "0.0.0.0";
|
|
55
|
-
let server;
|
|
56
|
-
const serverReady = new Promise((resolve) => {
|
|
57
|
-
server = serve({
|
|
58
|
-
fetch: appFetch,
|
|
59
|
-
port,
|
|
60
|
-
hostname
|
|
61
|
-
}, (info) => resolve({
|
|
62
|
-
port: info.port,
|
|
63
|
-
address: info.address
|
|
64
|
-
}));
|
|
65
|
-
});
|
|
66
|
-
const shutdown = registerShutdown(() => closeServer(server));
|
|
67
|
-
return {
|
|
68
|
-
address: await serverReady,
|
|
69
|
-
shutdown
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
78
|
const getArgs = () => globalThis.process.argv.slice(2);
|
|
74
79
|
const createNodeApp = (readyApp, shutdown, args) => {
|
|
75
80
|
const nodeApp = {
|
|
@@ -129,6 +134,6 @@ const serveApp = (app, optionsOrCallback, maybeCallback) => {
|
|
|
129
134
|
}, callback);
|
|
130
135
|
};
|
|
131
136
|
//#endregion
|
|
132
|
-
export { NodeCliConfig, ProcessEnvAdaptor, createAdaptorServer, onNode, serveApp as serve };
|
|
137
|
+
export { NodeCliConfig, ProcessEnvAdaptor, createAdaptorServer, createListenForHttp, onNode, serveApp as serve };
|
|
133
138
|
|
|
134
139
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["CliConfig","Config","NodeCliConfig","cwd","process","argv","exit","code","setExitCode","exitCode","onSignal","signal","handler","on","offSignal","off","Config","EnvAdaptor","ProcessEnvAdaptor","get","key","process","env","serve","HttpFeature","NodeCliConfig","ProcessEnvAdaptor","closeServer","server","Promise","resolve","reject","close","err","createListenForHttp","appFetch","registerShutdown","portOrOptions","listenOptions","port","hostname","serverReady","fetch","info","address","shutdown","getArgs","globalThis","process","argv","slice","createNodeApp","readyApp","args","base","nodeApp","entry","getFeatureEntries","Object","defineProperty","key","value","capabilities","listen","callback","feature","configurable","enumerable","onNode","app","options","createRuntime","configs","undefined","fallbackConfigs","warmup","cliConfig","get","shuttingDown","detachSignals","offSignal","gracefulShutdown","catch","onSignal","serve","buildServeOptions","optionsOrCallback","extractCallback","maybeCallback","serveApp","app","options","callback","fetch","port","hostname"],"sources":["../src/node-cli.config.ts","../src/process-env.adaptor.ts","../src/on-node.ts","../src/serve.lib.ts"],"sourcesContent":["import type { Signal, SignalHandler } from '@zeltjs/core';\nimport { CliConfig, Config } from '@zeltjs/core';\n\n@Config\nexport class NodeCliConfig extends CliConfig {\n override cwd(): string {\n return process.cwd();\n }\n\n override argv(): readonly string[] {\n return process.argv;\n }\n\n override exit(code: number): never {\n process.exit(code);\n }\n\n override setExitCode(code: number): void {\n process.exitCode = code;\n }\n\n override onSignal(signal: Signal, handler: SignalHandler): void {\n process.on(signal, handler);\n }\n\n override offSignal(signal: Signal, handler: SignalHandler): void {\n process.off(signal, handler);\n }\n}\n","import { Config, EnvAdaptor } from '@zeltjs/core';\n\n@Config\nexport class ProcessEnvAdaptor extends EnvAdaptor {\n override get(key: string): string | undefined {\n return process.env[key];\n }\n}\n","import type { ServerType } from '@hono/node-server';\nimport { serve } from '@hono/node-server';\nimport type {\n ConfigClass,\n ConfiguredFeature,\n FeatureApp,\n FeatureReadyCapabilities,\n RuntimeApp,\n} from '@zeltjs/core';\nimport { HttpFeature } from '@zeltjs/core';\n\nimport { NodeCliConfig } from './node-cli.config';\nimport { ProcessEnvAdaptor } from './process-env.adaptor';\n\ntype ListenOptions = {\n readonly port?: number;\n readonly hostname?: string;\n};\n\nexport type ServerHandle = {\n readonly address: { port: number; address: string };\n readonly shutdown: () => Promise<void>;\n};\n\nexport type NodeAppOptions = {\n readonly configs?: readonly ConfigClass<object>[];\n readonly warmup?: boolean;\n};\n\nexport type { ExecResult } from '@zeltjs/core';\n\ntype EnvironmentNodeAppPart = {\n readonly args: readonly string[];\n readonly shutdown: () => Promise<void>;\n};\n\ntype HttpNodeAppPart = {\n readonly listen: (portOrOptions?: number | ListenOptions) => Promise<ServerHandle>;\n};\n\ntype NodeFeatureCapabilities<TFeature extends ConfiguredFeature> =\n FeatureReadyCapabilities<TFeature> &\n (TFeature extends HttpFeature<string> ? HttpNodeAppPart : unknown);\n\ntype NodeNamespacedCapabilities<F extends readonly ConfiguredFeature[]> = {\n readonly [TFeature in F[number] as TFeature['key']]: NodeFeatureCapabilities<TFeature>;\n};\n\nexport type NodeApp = RuntimeApp<readonly ConfiguredFeature[]> & EnvironmentNodeAppPart;\n\ntype NodeAppForFeatures<F extends readonly ConfiguredFeature[]> = RuntimeApp<F> &\n EnvironmentNodeAppPart &\n NodeNamespacedCapabilities<F>;\n\nconst closeServer = (server: ServerType): Promise<void> =>\n new Promise<void>((resolve, reject) => {\n server.close((err) => (err ? reject(err) : resolve()));\n });\n\nconst createListenForHttp = (\n appFetch: (request: Request) => Promise<Response>,\n registerShutdown: (callback: () => Promise<void>) => () => Promise<void>,\n): ((portOrOptions?: number | ListenOptions) => Promise<ServerHandle>) => {\n return async (portOrOptions?: number | ListenOptions): Promise<ServerHandle> => {\n const listenOptions: ListenOptions =\n typeof portOrOptions === 'number' ? { port: portOrOptions } : (portOrOptions ?? {});\n\n const port = listenOptions.port ?? 3000;\n const hostname = listenOptions.hostname ?? '0.0.0.0';\n\n let server!: ServerType;\n const serverReady = new Promise<{ port: number; address: string }>((resolve) => {\n server = serve({ fetch: appFetch, port, hostname }, (info) =>\n resolve({ port: info.port, address: info.address }),\n );\n });\n const shutdown = registerShutdown(() => closeServer(server));\n\n const address = await serverReady;\n\n return { address, shutdown };\n };\n};\n\nconst getArgs = (): readonly string[] => globalThis.process.argv.slice(2);\n\nconst createNodeApp = (\n readyApp: RuntimeApp<readonly ConfiguredFeature[]>,\n shutdown: () => Promise<void>,\n args: readonly string[],\n): NodeApp => {\n const base: RuntimeApp<readonly ConfiguredFeature[]> & EnvironmentNodeAppPart = {\n ...readyApp,\n args,\n shutdown,\n };\n\n const nodeApp: NodeApp = { ...base };\n\n for (const entry of readyApp.getFeatureEntries(HttpFeature)) {\n Object.defineProperty(nodeApp, entry.key, {\n value: {\n ...entry.capabilities,\n listen: createListenForHttp(entry.capabilities.fetch, (callback) =>\n entry.feature.registerShutdown(callback),\n ),\n },\n configurable: true,\n enumerable: true,\n });\n }\n\n return nodeApp;\n};\n\nexport function onNode<const F extends readonly ConfiguredFeature[]>(\n app: FeatureApp<F>,\n options?: NodeAppOptions,\n): Promise<NodeAppForFeatures<F>>;\n\n/** @throws {ZeltLifecycleStateError} */\nexport async function onNode<const F extends readonly ConfiguredFeature[]>(\n app: FeatureApp<F>,\n options: NodeAppOptions = {},\n): Promise<NodeApp> {\n const readyApp = await app.createRuntime({\n ...(options.configs === undefined ? {} : { configs: options.configs }),\n fallbackConfigs: [NodeCliConfig, ProcessEnvAdaptor],\n warmup: options.warmup ?? true,\n });\n\n const cliConfig = await readyApp.get(NodeCliConfig);\n\n let shuttingDown = false;\n const detachSignals = (): void => {\n cliConfig.offSignal('SIGINT', gracefulShutdown);\n cliConfig.offSignal('SIGTERM', gracefulShutdown);\n };\n\n const shutdown = async (): Promise<void> => {\n if (shuttingDown) return;\n shuttingDown = true;\n try {\n await readyApp.shutdown();\n } finally {\n detachSignals();\n }\n };\n\n const gracefulShutdown = (): void => {\n void shutdown().catch(() => {});\n };\n\n cliConfig.onSignal('SIGINT', gracefulShutdown);\n cliConfig.onSignal('SIGTERM', gracefulShutdown);\n\n const args = getArgs();\n\n return createNodeApp(readyApp, shutdown, args);\n}\n","import type { ServerType } from '@hono/node-server';\nimport { serve } from '@hono/node-server';\n\nexport type ServeOptions = {\n port?: number;\n hostname?: string;\n};\n\nexport type AddressInfo = {\n port: number;\n address: string;\n};\n\ntype AppLike = {\n fetch: (request: Request) => Promise<Response>;\n};\n\nconst buildServeOptions = (\n optionsOrCallback: ServeOptions | ((info: AddressInfo) => void) | undefined,\n): ServeOptions => (typeof optionsOrCallback === 'function' ? {} : (optionsOrCallback ?? {}));\n\nconst extractCallback = (\n optionsOrCallback: ServeOptions | ((info: AddressInfo) => void) | undefined,\n maybeCallback: ((info: AddressInfo) => void) | undefined,\n): ((info: AddressInfo) => void) | undefined =>\n typeof optionsOrCallback === 'function' ? optionsOrCallback : maybeCallback;\n\nexport const serveApp = (\n app: AppLike,\n optionsOrCallback?: ServeOptions | ((info: AddressInfo) => void),\n maybeCallback?: (info: AddressInfo) => void,\n): ServerType => {\n const options = buildServeOptions(optionsOrCallback);\n const callback = extractCallback(optionsOrCallback, maybeCallback);\n\n return serve(\n {\n fetch: app.fetch,\n port: options.port ?? 3000,\n hostname: options.hostname ?? '0.0.0.0',\n },\n callback,\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["serve","closeServer","server","Promise","resolve","reject","close","err","createListenForHttp","appFetch","registerShutdown","portOrOptions","listenOptions","port","hostname","serverReady","onError","fetch","info","off","address","once","shutdown","CliConfig","Config","NodeCliConfig","cwd","process","argv","exit","code","setExitCode","exitCode","onSignal","signal","handler","on","offSignal","off","Config","EnvAdaptor","ProcessEnvAdaptor","get","key","process","env","HttpFeature","createListenForHttp","NodeCliConfig","ProcessEnvAdaptor","getArgs","globalThis","process","argv","slice","createNodeApp","readyApp","shutdown","args","base","nodeApp","entry","getFeatureEntries","Object","defineProperty","key","value","capabilities","listen","fetch","callback","feature","registerShutdown","configurable","enumerable","onNode","app","options","createRuntime","configs","undefined","fallbackConfigs","warmup","cliConfig","get","shuttingDown","detachSignals","offSignal","gracefulShutdown","catch","onSignal","serve","buildServeOptions","optionsOrCallback","extractCallback","maybeCallback","serveApp","app","options","callback","fetch","port","hostname"],"sources":["../src/listen.lib.ts","../src/node-cli.config.ts","../src/process-env.adaptor.ts","../src/on-node.ts","../src/serve.lib.ts"],"sourcesContent":["import type { ServerType } from '@hono/node-server';\nimport { serve } from '@hono/node-server';\n\nexport type ListenOptions = {\n readonly port?: number;\n readonly hostname?: string;\n};\n\nexport type ServerHandle = {\n readonly address: { port: number; address: string };\n readonly shutdown: () => Promise<void>;\n};\n\nconst closeServer = (server: ServerType): Promise<void> =>\n new Promise<void>((resolve, reject) => {\n server.close((err) => (err ? reject(err) : resolve()));\n });\n\n/** @throws {Error} propagates the server's bind error (e.g. EADDRINUSE) instead of hanging */\nexport const createListenForHttp = (\n appFetch: (request: Request) => Promise<Response>,\n registerShutdown: (callback: () => Promise<void>) => () => Promise<void>,\n): ((portOrOptions?: number | ListenOptions) => Promise<ServerHandle>) => {\n return async (portOrOptions?: number | ListenOptions): Promise<ServerHandle> => {\n const listenOptions: ListenOptions =\n typeof portOrOptions === 'number' ? { port: portOrOptions } : (portOrOptions ?? {});\n\n const port = listenOptions.port ?? 3000;\n const hostname = listenOptions.hostname ?? '0.0.0.0';\n\n let server!: ServerType;\n const serverReady = new Promise<{ port: number; address: string }>((resolve, reject) => {\n const onError = (err: Error): void => reject(err);\n server = serve({ fetch: appFetch, port, hostname }, (info) => {\n server.off('error', onError);\n resolve({ port: info.port, address: info.address });\n });\n server.once('error', onError);\n });\n\n const address = await serverReady;\n const shutdown = registerShutdown(() => closeServer(server));\n\n return { address, shutdown };\n };\n};\n","import type { Signal, SignalHandler } from '@zeltjs/core';\nimport { CliConfig, Config } from '@zeltjs/core';\n\n@Config\nexport class NodeCliConfig extends CliConfig {\n override cwd(): string {\n return process.cwd();\n }\n\n override argv(): readonly string[] {\n return process.argv;\n }\n\n override exit(code: number): never {\n process.exit(code);\n }\n\n override setExitCode(code: number): void {\n process.exitCode = code;\n }\n\n override onSignal(signal: Signal, handler: SignalHandler): void {\n process.on(signal, handler);\n }\n\n override offSignal(signal: Signal, handler: SignalHandler): void {\n process.off(signal, handler);\n }\n}\n","import { Config, EnvAdaptor } from '@zeltjs/core';\n\n@Config\nexport class ProcessEnvAdaptor extends EnvAdaptor {\n override get(key: string): string | undefined {\n return process.env[key];\n }\n}\n","import type {\n ConfigClass,\n ConfiguredFeature,\n FeatureApp,\n FeatureReadyCapabilities,\n RuntimeApp,\n} from '@zeltjs/core';\nimport { HttpFeature } from '@zeltjs/core';\n\nimport type { ListenOptions, ServerHandle } from './listen.lib';\nimport { createListenForHttp } from './listen.lib';\nimport { NodeCliConfig } from './node-cli.config';\nimport { ProcessEnvAdaptor } from './process-env.adaptor';\n\nexport type { ServerHandle } from './listen.lib';\n\nexport type NodeAppOptions = {\n readonly configs?: readonly ConfigClass<object>[];\n readonly warmup?: boolean;\n};\n\nexport type { ExecResult } from '@zeltjs/core';\n\ntype EnvironmentNodeAppPart = {\n readonly args: readonly string[];\n readonly shutdown: () => Promise<void>;\n};\n\ntype HttpNodeAppPart = {\n readonly listen: (portOrOptions?: number | ListenOptions) => Promise<ServerHandle>;\n};\n\ntype NodeFeatureCapabilities<TFeature extends ConfiguredFeature> =\n FeatureReadyCapabilities<TFeature> &\n (TFeature extends HttpFeature<string> ? HttpNodeAppPart : unknown);\n\ntype NodeNamespacedCapabilities<F extends readonly ConfiguredFeature[]> = {\n readonly [TFeature in F[number] as TFeature['key']]: NodeFeatureCapabilities<TFeature>;\n};\n\nexport type NodeApp = RuntimeApp<readonly ConfiguredFeature[]> & EnvironmentNodeAppPart;\n\ntype NodeAppForFeatures<F extends readonly ConfiguredFeature[]> = RuntimeApp<F> &\n EnvironmentNodeAppPart &\n NodeNamespacedCapabilities<F>;\n\nconst getArgs = (): readonly string[] => globalThis.process.argv.slice(2);\n\nconst createNodeApp = (\n readyApp: RuntimeApp<readonly ConfiguredFeature[]>,\n shutdown: () => Promise<void>,\n args: readonly string[],\n): NodeApp => {\n const base: RuntimeApp<readonly ConfiguredFeature[]> & EnvironmentNodeAppPart = {\n ...readyApp,\n args,\n shutdown,\n };\n\n const nodeApp: NodeApp = { ...base };\n\n for (const entry of readyApp.getFeatureEntries(HttpFeature)) {\n Object.defineProperty(nodeApp, entry.key, {\n value: {\n ...entry.capabilities,\n listen: createListenForHttp(entry.capabilities.fetch, (callback) =>\n entry.feature.registerShutdown(callback),\n ),\n },\n configurable: true,\n enumerable: true,\n });\n }\n\n return nodeApp;\n};\n\nexport function onNode<const F extends readonly ConfiguredFeature[]>(\n app: FeatureApp<F>,\n options?: NodeAppOptions,\n): Promise<NodeAppForFeatures<F>>;\n\n/** @throws {ZeltLifecycleStateError} */\nexport async function onNode<const F extends readonly ConfiguredFeature[]>(\n app: FeatureApp<F>,\n options: NodeAppOptions = {},\n): Promise<NodeApp> {\n const readyApp = await app.createRuntime({\n ...(options.configs === undefined ? {} : { configs: options.configs }),\n fallbackConfigs: [NodeCliConfig, ProcessEnvAdaptor],\n warmup: options.warmup ?? true,\n });\n\n const cliConfig = await readyApp.get(NodeCliConfig);\n\n let shuttingDown = false;\n const detachSignals = (): void => {\n cliConfig.offSignal('SIGINT', gracefulShutdown);\n cliConfig.offSignal('SIGTERM', gracefulShutdown);\n };\n\n const shutdown = async (): Promise<void> => {\n if (shuttingDown) return;\n shuttingDown = true;\n try {\n await readyApp.shutdown();\n } finally {\n detachSignals();\n }\n };\n\n const gracefulShutdown = (): void => {\n void shutdown().catch(() => {});\n };\n\n cliConfig.onSignal('SIGINT', gracefulShutdown);\n cliConfig.onSignal('SIGTERM', gracefulShutdown);\n\n const args = getArgs();\n\n return createNodeApp(readyApp, shutdown, args);\n}\n","import type { ServerType } from '@hono/node-server';\nimport { serve } from '@hono/node-server';\n\nexport type ServeOptions = {\n port?: number;\n hostname?: string;\n};\n\nexport type AddressInfo = {\n port: number;\n address: string;\n};\n\ntype AppLike = {\n fetch: (request: Request) => Promise<Response>;\n};\n\nconst buildServeOptions = (\n optionsOrCallback: ServeOptions | ((info: AddressInfo) => void) | undefined,\n): ServeOptions => (typeof optionsOrCallback === 'function' ? {} : (optionsOrCallback ?? {}));\n\nconst extractCallback = (\n optionsOrCallback: ServeOptions | ((info: AddressInfo) => void) | undefined,\n maybeCallback: ((info: AddressInfo) => void) | undefined,\n): ((info: AddressInfo) => void) | undefined =>\n typeof optionsOrCallback === 'function' ? optionsOrCallback : maybeCallback;\n\nexport const serveApp = (\n app: AppLike,\n optionsOrCallback?: ServeOptions | ((info: AddressInfo) => void),\n maybeCallback?: (info: AddressInfo) => void,\n): ServerType => {\n const options = buildServeOptions(optionsOrCallback);\n const callback = extractCallback(optionsOrCallback, maybeCallback);\n\n return serve(\n {\n fetch: app.fetch,\n port: options.port ?? 3000,\n hostname: options.hostname ?? '0.0.0.0',\n },\n callback,\n );\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zeltjs/adapter-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"@hono/node-server": "2.0.1"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
33
|
-
"@zeltjs/core": "0.
|
|
33
|
+
"@zeltjs/core": "0.10.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/node": "22.19.17",
|
|
37
|
-
"@zeltjs/core": "0.
|
|
37
|
+
"@zeltjs/core": "0.10.0"
|
|
38
38
|
},
|
|
39
39
|
"volta": {
|
|
40
40
|
"extends": "../../package.json"
|