@nwire/endpoint 0.8.17 → 0.9.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/dist/__tests__/endpoint.test.js +13 -12
- package/dist/__tests__/endpoint.test.js.map +1 -1
- package/dist/__tests__/lifecycle.test.d.ts +13 -0
- package/dist/__tests__/lifecycle.test.d.ts.map +1 -0
- package/dist/__tests__/lifecycle.test.js +124 -0
- package/dist/__tests__/lifecycle.test.js.map +1 -0
- package/dist/endpoint.d.ts +11 -24
- package/dist/endpoint.d.ts.map +1 -1
- package/dist/endpoint.js +14 -6
- package/dist/endpoint.js.map +1 -1
- package/dist/lifecycle.d.ts +12 -0
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/lifecycle.js +55 -1
- package/dist/lifecycle.js.map +1 -1
- package/package.json +4 -3
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* real K8s probes + http-terminator timing.
|
|
12
12
|
*/
|
|
13
13
|
import { describe, it, expect } from "vitest";
|
|
14
|
+
import { createContainer } from "@nwire/container";
|
|
14
15
|
import { endpoint, isAppServable, isForeignServable, isNwireServable, } from "../endpoint.js";
|
|
15
16
|
describe("endpoint() — type guards", () => {
|
|
16
17
|
it("identifies a NwireServable by the $nwireServable marker", () => {
|
|
@@ -26,12 +27,7 @@ describe("endpoint() — type guards", () => {
|
|
|
26
27
|
it("identifies an AppServable by the $nwireApp marker", () => {
|
|
27
28
|
const app = {
|
|
28
29
|
$nwireApp: true,
|
|
29
|
-
container:
|
|
30
|
-
resolve: () => undefined,
|
|
31
|
-
has: () => false,
|
|
32
|
-
register: () => undefined,
|
|
33
|
-
createScope: () => app.container,
|
|
34
|
-
},
|
|
30
|
+
container: createContainer(),
|
|
35
31
|
boot: async () => undefined,
|
|
36
32
|
shutdown: async () => undefined,
|
|
37
33
|
};
|
|
@@ -57,6 +53,16 @@ describe("endpoint() — type guards", () => {
|
|
|
57
53
|
expect(isAppServable(garbage)).toBe(false);
|
|
58
54
|
expect(isForeignServable(garbage)).toBe(false);
|
|
59
55
|
});
|
|
56
|
+
it("accepts a CALLABLE app value with .listen — Express 5's app is a function", () => {
|
|
57
|
+
// Regression: Express 5 returns a callable (typeof === "function") with
|
|
58
|
+
// a .listen property. A previous typeof === "object" check rejected it.
|
|
59
|
+
const expressLikeApp = Object.assign(() => undefined, { listen: () => ({}) });
|
|
60
|
+
expect(isForeignServable(expressLikeApp)).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
it("rejects null + arrow fns without .listen", () => {
|
|
63
|
+
expect(isForeignServable(null)).toBe(false);
|
|
64
|
+
expect(isForeignServable(() => undefined)).toBe(false);
|
|
65
|
+
});
|
|
60
66
|
});
|
|
61
67
|
describe("endpoint() — builder", () => {
|
|
62
68
|
it("accepts each Servable shape via .serve() in any order", () => {
|
|
@@ -66,12 +72,7 @@ describe("endpoint() — builder", () => {
|
|
|
66
72
|
*/
|
|
67
73
|
const app = {
|
|
68
74
|
$nwireApp: true,
|
|
69
|
-
container:
|
|
70
|
-
resolve: () => undefined,
|
|
71
|
-
has: () => false,
|
|
72
|
-
register: () => undefined,
|
|
73
|
-
createScope: () => undefined,
|
|
74
|
-
},
|
|
75
|
+
container: createContainer(),
|
|
75
76
|
boot: async () => undefined,
|
|
76
77
|
shutdown: async () => undefined,
|
|
77
78
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.test.js","sourceRoot":"","sources":["../../src/__tests__/endpoint.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,GAIhB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,GAAkB;YACxB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;SACxB,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAgB;YACvB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE
|
|
1
|
+
{"version":3,"file":"endpoint.test.js","sourceRoot":"","sources":["../../src/__tests__/endpoint.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,GAIhB,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,EAAE,GAAkB;YACxB,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,MAAM;YACjB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;SACxB,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAgB;YACvB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,eAAe,EAAE;YAC5B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;YAC3B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SAChC,CAAC;QACF,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD;;;;WAIG;QACH,MAAM,OAAO,GAAoB;YAC/B,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAU;SAC5B,CAAC;QACF,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QACjD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;QACnF,wEAAwE;QACxE,wEAAwE;QACxE,MAAM,cAAc,GAEhB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAU,EAAE,CAAC,CAAC;QACpE,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D;;;WAGG;QACH,MAAM,GAAG,GAAgB;YACvB,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,eAAe,EAAE;YAC5B,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;YAC3B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;SAChC,CAAC;QACF,MAAM,KAAK,GAAkB;YAC3B,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS;SACxB,CAAC;QAEF,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;QACpE,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE;;;;WAIG;QACH,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAW,CAAC,CAAC,CAAC,OAAO,CAClE,oDAAoD,CACrD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct tests for `attachLifecycle()` — the graceful-shutdown wrapper
|
|
3
|
+
* that sits between any Node http.Server and http-terminator + lightship.
|
|
4
|
+
*
|
|
5
|
+
* Specifically covers the edge cases that previously broke real boot
|
|
6
|
+
* paths but were only surfaced by interop examples:
|
|
7
|
+
*
|
|
8
|
+
* - shutdown completes promptly when probes are disabled (no LB to wait for)
|
|
9
|
+
* - shutdown waits drainDelay when probes are enabled (LB needs time)
|
|
10
|
+
* - shutdown is idempotent
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=lifecycle.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/lifecycle.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct tests for `attachLifecycle()` — the graceful-shutdown wrapper
|
|
3
|
+
* that sits between any Node http.Server and http-terminator + lightship.
|
|
4
|
+
*
|
|
5
|
+
* Specifically covers the edge cases that previously broke real boot
|
|
6
|
+
* paths but were only surfaced by interop examples:
|
|
7
|
+
*
|
|
8
|
+
* - shutdown completes promptly when probes are disabled (no LB to wait for)
|
|
9
|
+
* - shutdown waits drainDelay when probes are enabled (LB needs time)
|
|
10
|
+
* - shutdown is idempotent
|
|
11
|
+
*/
|
|
12
|
+
import { describe, it, expect } from "vitest";
|
|
13
|
+
import { createServer } from "node:http";
|
|
14
|
+
import { attachLifecycle } from "../lifecycle.js";
|
|
15
|
+
async function listenEphemeral() {
|
|
16
|
+
const server = createServer((_req, res) => {
|
|
17
|
+
res.statusCode = 200;
|
|
18
|
+
res.end("ok");
|
|
19
|
+
});
|
|
20
|
+
await new Promise((resolve) => server.listen(0, "127.0.0.1", resolve));
|
|
21
|
+
return server;
|
|
22
|
+
}
|
|
23
|
+
describe("attachLifecycle — shutdown timing edges", () => {
|
|
24
|
+
it("shutdown returns promptly with probes disabled (no drainDelay)", async () => {
|
|
25
|
+
const server = await listenEphemeral();
|
|
26
|
+
const mgr = await attachLifecycle({
|
|
27
|
+
server,
|
|
28
|
+
health: { enabled: false },
|
|
29
|
+
shutdown: { drainDelay: 10_000 }, // would be 10s if it ran
|
|
30
|
+
exitOnShutdown: false,
|
|
31
|
+
});
|
|
32
|
+
const t = performance.now();
|
|
33
|
+
await mgr.shutdown("test");
|
|
34
|
+
const ms = performance.now() - t;
|
|
35
|
+
expect(ms).toBeLessThan(500); // would be > 10_000 with the old bug
|
|
36
|
+
expect(server.listening).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
it("shutdown is idempotent — second call is a no-op", async () => {
|
|
39
|
+
const server = await listenEphemeral();
|
|
40
|
+
const mgr = await attachLifecycle({
|
|
41
|
+
server,
|
|
42
|
+
health: { enabled: false },
|
|
43
|
+
exitOnShutdown: false,
|
|
44
|
+
});
|
|
45
|
+
await mgr.shutdown("first");
|
|
46
|
+
await mgr.shutdown("second"); // doesn't throw, doesn't try to close again
|
|
47
|
+
await mgr.shutdown("third");
|
|
48
|
+
expect(server.listening).toBe(false);
|
|
49
|
+
});
|
|
50
|
+
it("probeHandler: /livez 200 when live, 503 when shutting down", async () => {
|
|
51
|
+
const server = await listenEphemeral();
|
|
52
|
+
const mgr = await attachLifecycle({
|
|
53
|
+
server,
|
|
54
|
+
health: { enabled: false },
|
|
55
|
+
exitOnShutdown: false,
|
|
56
|
+
});
|
|
57
|
+
let status = 0;
|
|
58
|
+
let body = "";
|
|
59
|
+
const res = {
|
|
60
|
+
statusCode: 0,
|
|
61
|
+
setHeader: () => { },
|
|
62
|
+
end: (b) => {
|
|
63
|
+
status = res.statusCode;
|
|
64
|
+
body = b;
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
await mgr.probeHandler({}, res, "live");
|
|
68
|
+
expect(status).toBe(200);
|
|
69
|
+
expect(JSON.parse(body)).toEqual({ status: "live" });
|
|
70
|
+
// Don't await shutdown completion — kick it off and check probes flip
|
|
71
|
+
void mgr.shutdown("test");
|
|
72
|
+
await new Promise((r) => setTimeout(r, 5));
|
|
73
|
+
await mgr.probeHandler({}, res, "live");
|
|
74
|
+
expect(status).toBe(503);
|
|
75
|
+
});
|
|
76
|
+
it("probeHandler: /readyz runs registered checks; 503 if any fail", async () => {
|
|
77
|
+
const server = await listenEphemeral();
|
|
78
|
+
const mgr = await attachLifecycle({
|
|
79
|
+
server,
|
|
80
|
+
health: { enabled: false },
|
|
81
|
+
exitOnShutdown: false,
|
|
82
|
+
});
|
|
83
|
+
let status = 0;
|
|
84
|
+
let body = "";
|
|
85
|
+
const res = {
|
|
86
|
+
statusCode: 0,
|
|
87
|
+
setHeader: () => { },
|
|
88
|
+
end: (b) => {
|
|
89
|
+
status = res.statusCode;
|
|
90
|
+
body = b;
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
// No checks → ready
|
|
94
|
+
await mgr.probeHandler({}, res, "ready");
|
|
95
|
+
expect(status).toBe(200);
|
|
96
|
+
expect(JSON.parse(body).status).toBe("ready");
|
|
97
|
+
mgr.addCheck({ name: "db", check: async () => undefined });
|
|
98
|
+
mgr.addCheck({
|
|
99
|
+
name: "redis",
|
|
100
|
+
check: async () => {
|
|
101
|
+
throw new Error("redis down");
|
|
102
|
+
},
|
|
103
|
+
});
|
|
104
|
+
await mgr.probeHandler({}, res, "ready");
|
|
105
|
+
expect(status).toBe(503);
|
|
106
|
+
const parsed = JSON.parse(body);
|
|
107
|
+
expect(parsed.status).toBe("unready");
|
|
108
|
+
expect(parsed.checks.db).toBe("ok");
|
|
109
|
+
expect(parsed.checks.redis).toBe("redis down");
|
|
110
|
+
await mgr.shutdown("done");
|
|
111
|
+
});
|
|
112
|
+
it("shutdown completes before signal handlers can race in", async () => {
|
|
113
|
+
// The lifecycle installs SIGTERM/SIGINT handlers via process.once;
|
|
114
|
+
// manual shutdown() during tests must not deadlock with them.
|
|
115
|
+
const server = await listenEphemeral();
|
|
116
|
+
const mgr = await attachLifecycle({
|
|
117
|
+
server,
|
|
118
|
+
health: { enabled: false },
|
|
119
|
+
exitOnShutdown: false,
|
|
120
|
+
});
|
|
121
|
+
await expect(mgr.shutdown("manual")).resolves.toBeUndefined();
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=lifecycle.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lifecycle.test.js","sourceRoot":"","sources":["../../src/__tests__/lifecycle.test.ts"],"names":[],"mappings":"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"}
|
package/dist/endpoint.d.ts
CHANGED
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
*/
|
|
37
37
|
import type { Server } from "node:http";
|
|
38
38
|
import type { Container } from "@nwire/container";
|
|
39
|
+
import type { AttachBindings, NwireInterface } from "@nwire/interface";
|
|
39
40
|
import { type HealthConfig, type HealthCheck, type LifecycleManager, type ShutdownConfig } from "./lifecycle.js";
|
|
40
41
|
/**
|
|
41
42
|
* Per-endpoint lifecycle hook context. The same shape flows through all
|
|
@@ -74,17 +75,9 @@ export type Servable = NwireServable | ForeignServable | AppServable;
|
|
|
74
75
|
* it wants to be mounted: which transport, what handler shape, what
|
|
75
76
|
* health checks it contributes.
|
|
76
77
|
*/
|
|
77
|
-
export interface NwireServable {
|
|
78
|
-
readonly $nwireServable: true;
|
|
78
|
+
export interface NwireServable extends NwireInterface {
|
|
79
79
|
/** Which transport this interface uses. Decides what listener spins up. */
|
|
80
80
|
readonly transport: "http" | "graphql" | "queue" | "cron" | "ws" | "mcp" | "custom";
|
|
81
|
-
/**
|
|
82
|
-
* Attach to a host that owns the transport. For HTTP-class transports
|
|
83
|
-
* the endpoint provides a Koa/raw http server and the interface mounts
|
|
84
|
-
* its router. For queue-class transports the endpoint spins up the
|
|
85
|
-
* consumer loop.
|
|
86
|
-
*/
|
|
87
|
-
attach(host: HostBindings): void | Promise<void>;
|
|
88
81
|
/** Optional health checks contributed by the interface itself. */
|
|
89
82
|
readonly checks?: readonly HealthCheck[];
|
|
90
83
|
/** Run during shutdown — disconnect from broker, flush, etc. */
|
|
@@ -134,20 +127,7 @@ export interface AppServable {
|
|
|
134
127
|
dispatchFrameworkEvent?(eventName: string, payload: unknown): Promise<boolean>;
|
|
135
128
|
}
|
|
136
129
|
/** What the endpoint hands to each NwireServable.attach() call. */
|
|
137
|
-
export
|
|
138
|
-
/**
|
|
139
|
-
* Container of the served app, or `undefined` if no app was served.
|
|
140
|
-
* When undefined, the interface should preserve its own `.provide()`
|
|
141
|
-
* container (the L2 standalone case).
|
|
142
|
-
*/
|
|
143
|
-
readonly container: Container | undefined;
|
|
144
|
-
/**
|
|
145
|
-
* Register a HealthCheck on the endpoint's lifecycle. Interfaces that
|
|
146
|
-
* need readiness verification (queue connected, NATS subscribed) call
|
|
147
|
-
* this so the K8s probes reflect real state.
|
|
148
|
-
*/
|
|
149
|
-
addCheck(check: HealthCheck): void;
|
|
150
|
-
}
|
|
130
|
+
export type HostBindings = AttachBindings;
|
|
151
131
|
export interface EndpointConfig {
|
|
152
132
|
/** Port for HTTP-class transports. Omit for queue-only / cron-only endpoints. */
|
|
153
133
|
readonly port?: number;
|
|
@@ -233,7 +213,14 @@ export declare class EndpointBuilder {
|
|
|
233
213
|
export declare function isNwireServable(x: unknown): x is NwireServable;
|
|
234
214
|
/** True when the target is a Nwire app (container + lifecycle). */
|
|
235
215
|
export declare function isAppServable(x: unknown): x is AppServable;
|
|
236
|
-
/**
|
|
216
|
+
/**
|
|
217
|
+
* True when the target looks like a framework app — has `.listen(port, ...)`.
|
|
218
|
+
*
|
|
219
|
+
* Some hosts (Express, Connect) return a callable function as their app
|
|
220
|
+
* value; others return an object (Fastify, Koa). We accept both — a
|
|
221
|
+
* function with a `.listen` method counts. NwireServables are excluded
|
|
222
|
+
* by the `$nwireServable` check at the call site.
|
|
223
|
+
*/
|
|
237
224
|
export declare function isForeignServable(x: unknown): x is ForeignServable;
|
|
238
225
|
/**
|
|
239
226
|
* Per-transport host factory shape (provided by interface packages like
|
package/dist/endpoint.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9C,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,aAAa,CAAC;AAErB;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9C,wCAAwC;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,WAAW,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,2EAA2E;IAC3E,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpF,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC;CACxE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChF;AAED,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,wEAAwE;IACxE,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,cAAmB,GAAG,eAAe,CAEnF;AAED,4DAA4D;AAC5D,qBAAa,eAAe;IAoBxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IApBzB,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,gBAAgB,CAAyB;IAEjD;;;;;;;;;OASG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;gBAGlC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,cAAc;IA4BzC;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe;IAexC;;;;;;;;;OASG;IACG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;CA+NtC;AAID,8FAA8F;AAC9F,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,CAM9D;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAMlE;AAqED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrD"}
|
package/dist/endpoint.js
CHANGED
|
@@ -220,7 +220,6 @@ export class EndpointBuilder {
|
|
|
220
220
|
host: this.config.host,
|
|
221
221
|
nwireServables: this.nwireServables,
|
|
222
222
|
foreignServables: this.foreignServables,
|
|
223
|
-
container,
|
|
224
223
|
});
|
|
225
224
|
// Post-attach: every wire is now attached. Fire WireMounted.
|
|
226
225
|
for (const s of this.nwireServables) {
|
|
@@ -242,7 +241,7 @@ export class EndpointBuilder {
|
|
|
242
241
|
if (!ok) {
|
|
243
242
|
throw new Error(`endpoint("${this.name}").serve(): wire "${s.transport}" mount prevented by a WireMounting subscriber.`);
|
|
244
243
|
}
|
|
245
|
-
await s.attach({
|
|
244
|
+
await s.attach({ addCheck: () => undefined });
|
|
246
245
|
await fireLifecycle("nwire.wire.mounted", {
|
|
247
246
|
appName: this.apps[0]?.appName ?? this.name,
|
|
248
247
|
transport: s.transport,
|
|
@@ -356,9 +355,18 @@ export function isNwireServable(x) {
|
|
|
356
355
|
export function isAppServable(x) {
|
|
357
356
|
return typeof x === "object" && x !== null && x.$nwireApp === true;
|
|
358
357
|
}
|
|
359
|
-
/**
|
|
358
|
+
/**
|
|
359
|
+
* True when the target looks like a framework app — has `.listen(port, ...)`.
|
|
360
|
+
*
|
|
361
|
+
* Some hosts (Express, Connect) return a callable function as their app
|
|
362
|
+
* value; others return an object (Fastify, Koa). We accept both — a
|
|
363
|
+
* function with a `.listen` method counts. NwireServables are excluded
|
|
364
|
+
* by the `$nwireServable` check at the call site.
|
|
365
|
+
*/
|
|
360
366
|
export function isForeignServable(x) {
|
|
361
|
-
return (
|
|
367
|
+
return (x !== null &&
|
|
368
|
+
(typeof x === "object" || typeof x === "function") &&
|
|
369
|
+
typeof x.listen === "function");
|
|
362
370
|
}
|
|
363
371
|
// ─── Internal helpers ─────────────────────────────────────────────────────
|
|
364
372
|
/**
|
|
@@ -387,7 +395,7 @@ async function startListener(opts) {
|
|
|
387
395
|
// the foreign framework's router automatically without knowing the
|
|
388
396
|
// framework. Future: detect Express/Fastify/Koa and auto-mount.
|
|
389
397
|
for (const s of opts.nwireServables) {
|
|
390
|
-
await s.attach({
|
|
398
|
+
await s.attach({ addCheck: () => undefined });
|
|
391
399
|
}
|
|
392
400
|
return server;
|
|
393
401
|
}
|
|
@@ -409,7 +417,7 @@ async function startListener(opts) {
|
|
|
409
417
|
}
|
|
410
418
|
const built = hostFactory();
|
|
411
419
|
for (const s of opts.nwireServables) {
|
|
412
|
-
await s.attach({
|
|
420
|
+
await s.attach({ addCheck: built.addCheck });
|
|
413
421
|
}
|
|
414
422
|
return await built.listen(opts.port, opts.host ?? "0.0.0.0");
|
|
415
423
|
}
|
package/dist/endpoint.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/dist/lifecycle.d.ts
CHANGED
|
@@ -103,6 +103,18 @@ export interface LifecycleManager {
|
|
|
103
103
|
* providers/plugins to register their own probes.
|
|
104
104
|
*/
|
|
105
105
|
addCheck(check: HealthCheck): void;
|
|
106
|
+
/**
|
|
107
|
+
* Bare Node http handler for probes-on-main deployments. Mount on your
|
|
108
|
+
* own HTTP server's /livez and /readyz routes; the third arg picks which.
|
|
109
|
+
* No framework lock-in — works with Express, Fastify, Koa, raw http.
|
|
110
|
+
*/
|
|
111
|
+
probeHandler(req: {
|
|
112
|
+
url?: string;
|
|
113
|
+
}, res: {
|
|
114
|
+
statusCode: number;
|
|
115
|
+
setHeader: (k: string, v: string) => void;
|
|
116
|
+
end: (body: string) => void;
|
|
117
|
+
}, kind?: "live" | "ready"): Promise<void>;
|
|
106
118
|
/** The lightship instance, if enabled — for advanced/test access. */
|
|
107
119
|
readonly lightship?: Lightship;
|
|
108
120
|
}
|
package/dist/lifecycle.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CAC1C;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACjC,IAAI,GAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAM,GAC7C,WAAW,CAEb;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,KAAK,IAAI,IAAI,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAE5D;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,8CAA8C;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC;CAC1C;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACjC,IAAI,GAAE,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAM,GAC7C,WAAW,CAEb;AAED,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,sDAAsD;IACtD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,0EAA0E;AAC1E,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;CAC1C;AAED,uFAAuF;AACvF,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,KAAK,IAAI,IAAI,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,YAAY,CACV,GAAG,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EACrB,GAAG,EAAE;QACH,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAC1C,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;KAC7B,EACD,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4M5B"}
|
package/dist/lifecycle.js
CHANGED
|
@@ -139,8 +139,11 @@ export async function attachLifecycle(opts) {
|
|
|
139
139
|
if (lightship) {
|
|
140
140
|
lightship.signalNotReady();
|
|
141
141
|
console.log(`[lifecycle] /readyz → 503; waiting ${shutdownCfg.drainDelay}ms for LB to catch up`);
|
|
142
|
+
// The drain delay exists to give the LB time to redirect traffic
|
|
143
|
+
// after /readyz flips to 503. Without lightship, there's no probe
|
|
144
|
+
// for an LB to poll — waiting would just stall shutdown.
|
|
145
|
+
await new Promise((r) => setTimeout(r, shutdownCfg.drainDelay));
|
|
142
146
|
}
|
|
143
|
-
await new Promise((r) => setTimeout(r, shutdownCfg.drainDelay));
|
|
144
147
|
console.log(`[lifecycle] draining in-flight requests`);
|
|
145
148
|
await terminator.terminate();
|
|
146
149
|
console.log(`[lifecycle] running onShutdown`);
|
|
@@ -162,12 +165,63 @@ export async function attachLifecycle(opts) {
|
|
|
162
165
|
};
|
|
163
166
|
process.once("SIGTERM", () => void shutdown("SIGTERM"));
|
|
164
167
|
process.once("SIGINT", () => void shutdown("SIGINT"));
|
|
168
|
+
/**
|
|
169
|
+
* Bare Node http handler for `/livez` / `/readyz` on the MAIN port. Use
|
|
170
|
+
* when probes-on-main is the deployment shape (Cloud Run, Lambda Function
|
|
171
|
+
* URLs, simple K8s sidecar-free setups).
|
|
172
|
+
*
|
|
173
|
+
* const probeHandler = lifecycle.probeHandler;
|
|
174
|
+
* expressApp.get("/livez", (req, res) => probeHandler(req, res, "live"));
|
|
175
|
+
* expressApp.get("/readyz", (req, res) => probeHandler(req, res, "ready"));
|
|
176
|
+
*
|
|
177
|
+
* `live` is always 200 unless the process is shutting down.
|
|
178
|
+
* `ready` is 200 only when all checks pass AND we're not shutting down.
|
|
179
|
+
* Both return 503 otherwise. Returns JSON body with check results.
|
|
180
|
+
*/
|
|
181
|
+
const probeHandler = async (_req, res, kind = "ready") => {
|
|
182
|
+
res.setHeader("content-type", "application/json");
|
|
183
|
+
if (kind === "live") {
|
|
184
|
+
if (shuttingDown) {
|
|
185
|
+
res.statusCode = 503;
|
|
186
|
+
res.end(JSON.stringify({ status: "shutting-down" }));
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
res.statusCode = 200;
|
|
190
|
+
res.end(JSON.stringify({ status: "live" }));
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
// ready: run every registered check
|
|
194
|
+
if (shuttingDown) {
|
|
195
|
+
res.statusCode = 503;
|
|
196
|
+
res.end(JSON.stringify({ status: "shutting-down" }));
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
const results = {};
|
|
200
|
+
let ok = true;
|
|
201
|
+
for (const c of dynamicChecks) {
|
|
202
|
+
const timeout = c.timeout ?? 5_000;
|
|
203
|
+
try {
|
|
204
|
+
await Promise.race([
|
|
205
|
+
Promise.resolve(c.check()),
|
|
206
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`timed out after ${timeout}ms`)), timeout)),
|
|
207
|
+
]);
|
|
208
|
+
results[c.name] = "ok";
|
|
209
|
+
}
|
|
210
|
+
catch (err) {
|
|
211
|
+
results[c.name] = err.message;
|
|
212
|
+
ok = false;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
res.statusCode = ok ? 200 : 503;
|
|
216
|
+
res.end(JSON.stringify({ status: ok ? "ready" : "unready", checks: results }));
|
|
217
|
+
};
|
|
165
218
|
return {
|
|
166
219
|
ready,
|
|
167
220
|
shutdown,
|
|
168
221
|
addCheck: (c) => {
|
|
169
222
|
dynamicChecks.push(c);
|
|
170
223
|
},
|
|
224
|
+
probeHandler,
|
|
171
225
|
get lightship() {
|
|
172
226
|
return lightship;
|
|
173
227
|
},
|
package/dist/lifecycle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,EAAE,oBAAoB,EAAuB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAkB,MAAM,WAAW,CAAC;AAoB5D,uFAAuF;AACvF,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,KAAiC,EACjC,OAA4C,EAAE;IAE9C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;AAClC,CAAC;
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nwire/endpoint",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Nwire — production process lifecycle. Wraps any Node server (Express, Fastify, Koa, Nest, Nwire interfaces) with K8s-grade graceful shutdown, http-terminator drain, and lightship readiness/liveness probes. Standalone — no framework dependency beyond @nwire/container.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"endpoint",
|
|
@@ -32,8 +32,9 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"http-terminator": "^3.2.0",
|
|
34
34
|
"lightship": "^9.0.4",
|
|
35
|
-
"@nwire/
|
|
36
|
-
"@nwire/
|
|
35
|
+
"@nwire/container": "0.8.17",
|
|
36
|
+
"@nwire/interface": "0.9.0",
|
|
37
|
+
"@nwire/hooks": "0.8.17"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@types/node": "^22.19.9",
|