@lagz0ne/nats-embedded 0.2.0 → 0.3.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/config.d.ts +7 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +27 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -12
- package/dist/index.js.map +1 -1
- package/dist/parse.d.ts +1 -0
- package/dist/parse.d.ts.map +1 -1
- package/dist/parse.js +4 -0
- package/dist/parse.js.map +1 -1
- package/package.json +7 -7
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAiB3C,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,SAAS,CAAC,EAAE,OAAO,GAAG,WAAW,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,GAAG,IAAI,CAehB"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { resolve as resolvePath } from "node:path";
|
|
2
|
+
function toSnakeCase(str) {
|
|
3
|
+
return str.replace(/[A-Z]/g, (c) => `_${c.toLowerCase()}`);
|
|
4
|
+
}
|
|
5
|
+
function serializeBlock(name, obj) {
|
|
6
|
+
const lines = Object.entries(obj).map(([k, v]) => {
|
|
7
|
+
const key = toSnakeCase(k);
|
|
8
|
+
if (typeof v === "string")
|
|
9
|
+
return ` ${key}: "${v}"`;
|
|
10
|
+
return ` ${key}: ${v}`;
|
|
11
|
+
});
|
|
12
|
+
return `${name} {\n${lines.join("\n")}\n}`;
|
|
13
|
+
}
|
|
14
|
+
const WS_DEFAULTS = { port: -1, no_tls: true };
|
|
15
|
+
export function buildConfig(opts) {
|
|
16
|
+
if (!opts.websocket)
|
|
17
|
+
return null;
|
|
18
|
+
const ws = opts.websocket === true
|
|
19
|
+
? { ...WS_DEFAULTS }
|
|
20
|
+
: { ...WS_DEFAULTS, ...opts.websocket };
|
|
21
|
+
const parts = [serializeBlock("websocket", ws)];
|
|
22
|
+
if (opts.config) {
|
|
23
|
+
parts.push(`include '${resolvePath(opts.config)}'`);
|
|
24
|
+
}
|
|
25
|
+
return parts.join("\n\n") + "\n";
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AAInD,SAAS,WAAW,CAAC,GAAW;IAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,GAAgB;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QAC/C,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ;YAAE,OAAO,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;QACrD,OAAO,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7C,CAAC;AAED,MAAM,WAAW,GAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAE5D,MAAM,UAAU,WAAW,CAAC,IAG3B;IACC,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,EAAE,GACN,IAAI,CAAC,SAAS,KAAK,IAAI;QACrB,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE;QACpB,CAAC,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAE5C,MAAM,KAAK,GAAa,CAAC,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AACnC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -67,6 +67,9 @@ export interface NatsServerOptions {
|
|
|
67
67
|
clusterListen?: string;
|
|
68
68
|
/** Profiling HTTP port */
|
|
69
69
|
profile?: number;
|
|
70
|
+
/** WebSocket listener. true = embedded defaults (random port, no TLS).
|
|
71
|
+
* Object = full websocket config block passed to NATS. */
|
|
72
|
+
websocket?: boolean | Record<string, unknown>;
|
|
70
73
|
/** Forward nats-server stderr to process.stderr. Default: false */
|
|
71
74
|
verbose?: boolean;
|
|
72
75
|
/** Path to a custom nats.conf file */
|
|
@@ -74,19 +77,25 @@ export interface NatsServerOptions {
|
|
|
74
77
|
/** Extra CLI arguments passed to nats-server */
|
|
75
78
|
args?: string[];
|
|
76
79
|
}
|
|
77
|
-
export declare function buildArgs(opts: NatsServerOptions): string[];
|
|
80
|
+
export declare function buildArgs(opts: NatsServerOptions, configPath?: string): string[];
|
|
78
81
|
export declare class NatsServer {
|
|
79
82
|
/** Full NATS connection URL (e.g. nats://127.0.0.1:52431) */
|
|
80
83
|
readonly url: string;
|
|
81
84
|
/** Assigned port */
|
|
82
85
|
readonly port: number;
|
|
86
|
+
/** WebSocket port (undefined if websocket not enabled) */
|
|
87
|
+
readonly wsPort?: number;
|
|
88
|
+
/** WebSocket URL (undefined if websocket not enabled) */
|
|
89
|
+
readonly wsUrl?: string;
|
|
83
90
|
/** Resolves with the exit code when the process exits (for crash detection) */
|
|
84
91
|
readonly exited: Promise<number | null>;
|
|
85
92
|
private proc;
|
|
93
|
+
private configDir;
|
|
86
94
|
private constructor();
|
|
87
95
|
static start(opts?: NatsServerOptions): Promise<NatsServer>;
|
|
88
96
|
/** Gracefully stop the server (SIGTERM → 5s timeout → SIGKILL) */
|
|
89
97
|
stop(): Promise<void>;
|
|
90
98
|
}
|
|
91
99
|
export { resolve as resolveBinary } from "./resolve.js";
|
|
100
|
+
export { buildConfig } from "./config.js";
|
|
92
101
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
import { mkdtempSync, writeFileSync, rmSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
2
5
|
import { resolve } from "./resolve.js";
|
|
3
|
-
import { parsePort } from "./parse.js";
|
|
6
|
+
import { parsePort, parseWsPort } from "./parse.js";
|
|
7
|
+
import { buildConfig } from "./config.js";
|
|
4
8
|
/**
|
|
5
9
|
* Maps option keys to their nats-server CLI flags.
|
|
6
10
|
* - boolean options: flag is pushed only when true
|
|
7
11
|
* - string/number options: flag + value
|
|
8
12
|
* - string[] options: flag + comma-joined value
|
|
9
13
|
*
|
|
10
|
-
* Keys not in this map are handled separately (host, port, verbose, args).
|
|
14
|
+
* Keys not in this map are handled separately (host, port, verbose, websocket, config, args).
|
|
11
15
|
*/
|
|
12
16
|
const FLAG_MAP = {
|
|
13
17
|
serverName: "--server_name",
|
|
@@ -42,9 +46,8 @@ const FLAG_MAP = {
|
|
|
42
46
|
connectRetries: "--connect_retries",
|
|
43
47
|
clusterListen: "--cluster_listen",
|
|
44
48
|
profile: "--profile",
|
|
45
|
-
config: "-c",
|
|
46
49
|
};
|
|
47
|
-
export function buildArgs(opts) {
|
|
50
|
+
export function buildArgs(opts, configPath) {
|
|
48
51
|
const host = opts.host ?? "127.0.0.1";
|
|
49
52
|
const port = opts.port ?? -1;
|
|
50
53
|
const args = ["-a", host, "-p", String(port)];
|
|
@@ -62,6 +65,12 @@ export function buildArgs(opts) {
|
|
|
62
65
|
args.push(flag, String(val));
|
|
63
66
|
}
|
|
64
67
|
}
|
|
68
|
+
if (configPath) {
|
|
69
|
+
args.push("-c", configPath);
|
|
70
|
+
}
|
|
71
|
+
else if (opts.config) {
|
|
72
|
+
args.push("-c", opts.config);
|
|
73
|
+
}
|
|
65
74
|
if (opts.args)
|
|
66
75
|
args.push(...opts.args);
|
|
67
76
|
return args;
|
|
@@ -71,25 +80,45 @@ export class NatsServer {
|
|
|
71
80
|
url;
|
|
72
81
|
/** Assigned port */
|
|
73
82
|
port;
|
|
83
|
+
/** WebSocket port (undefined if websocket not enabled) */
|
|
84
|
+
wsPort;
|
|
85
|
+
/** WebSocket URL (undefined if websocket not enabled) */
|
|
86
|
+
wsUrl;
|
|
74
87
|
/** Resolves with the exit code when the process exits (for crash detection) */
|
|
75
88
|
exited;
|
|
76
89
|
proc;
|
|
77
|
-
|
|
90
|
+
configDir;
|
|
91
|
+
constructor(proc, host, port, wsPort, configDir) {
|
|
78
92
|
this.proc = proc;
|
|
79
93
|
this.port = port;
|
|
80
94
|
this.url = `nats://${host}:${port}`;
|
|
95
|
+
if (wsPort !== undefined) {
|
|
96
|
+
this.wsPort = wsPort;
|
|
97
|
+
this.wsUrl = `ws://${host}:${wsPort}`;
|
|
98
|
+
}
|
|
99
|
+
this.configDir = configDir;
|
|
81
100
|
this.exited = new Promise((res) => {
|
|
82
101
|
proc.on("exit", (code) => res(code));
|
|
83
102
|
});
|
|
84
103
|
}
|
|
85
104
|
static async start(opts = {}) {
|
|
86
105
|
const bin = resolve();
|
|
87
|
-
const args = buildArgs(opts);
|
|
88
106
|
const host = opts.host ?? "127.0.0.1";
|
|
107
|
+
const needWs = !!opts.websocket;
|
|
108
|
+
// Generate config file if needed (websocket requires config block)
|
|
109
|
+
let configDir = null;
|
|
110
|
+
let configPath;
|
|
111
|
+
const configContent = buildConfig(opts);
|
|
112
|
+
if (configContent) {
|
|
113
|
+
configDir = mkdtempSync(join(tmpdir(), "nats-embedded-"));
|
|
114
|
+
configPath = join(configDir, "nats.conf");
|
|
115
|
+
writeFileSync(configPath, configContent);
|
|
116
|
+
}
|
|
117
|
+
const args = buildArgs(opts, configPath);
|
|
89
118
|
const proc = spawn(bin, args, {
|
|
90
119
|
stdio: ["ignore", "ignore", "pipe"],
|
|
91
120
|
});
|
|
92
|
-
const
|
|
121
|
+
const result = await new Promise((resolve, reject) => {
|
|
93
122
|
const timeout = setTimeout(() => {
|
|
94
123
|
proc.kill("SIGKILL");
|
|
95
124
|
reject(new Error("nats-server did not start within 5s"));
|
|
@@ -102,27 +131,40 @@ export class NatsServer {
|
|
|
102
131
|
clearTimeout(timeout);
|
|
103
132
|
reject(new Error(`nats-server exited with code ${code} before ready`));
|
|
104
133
|
});
|
|
134
|
+
let tcpPort = null;
|
|
135
|
+
let wsPort = null;
|
|
136
|
+
let resolved = false;
|
|
105
137
|
let buffer = "";
|
|
106
138
|
proc.stderr.on("data", (chunk) => {
|
|
107
139
|
const text = chunk.toString();
|
|
108
140
|
if (opts.verbose)
|
|
109
141
|
process.stderr.write(text);
|
|
142
|
+
if (resolved)
|
|
143
|
+
return;
|
|
110
144
|
buffer += text;
|
|
111
145
|
const lines = buffer.split("\n");
|
|
112
146
|
buffer = lines.pop();
|
|
113
147
|
for (const line of lines) {
|
|
114
|
-
const
|
|
115
|
-
if (
|
|
148
|
+
const tcp = parsePort(line);
|
|
149
|
+
if (tcp !== null)
|
|
150
|
+
tcpPort = tcp;
|
|
151
|
+
const ws = parseWsPort(line);
|
|
152
|
+
if (ws !== null)
|
|
153
|
+
wsPort = ws;
|
|
154
|
+
if (tcpPort !== null && (!needWs || wsPort !== null)) {
|
|
155
|
+
resolved = true;
|
|
116
156
|
clearTimeout(timeout);
|
|
117
|
-
// Stop listening for exit as an error once we have the port
|
|
118
157
|
proc.removeAllListeners("exit");
|
|
119
|
-
resolve(
|
|
158
|
+
resolve({
|
|
159
|
+
tcpPort,
|
|
160
|
+
wsPort: wsPort ?? undefined,
|
|
161
|
+
});
|
|
120
162
|
return;
|
|
121
163
|
}
|
|
122
164
|
}
|
|
123
165
|
});
|
|
124
166
|
});
|
|
125
|
-
return new NatsServer(proc, host,
|
|
167
|
+
return new NatsServer(proc, host, result.tcpPort, result.wsPort, configDir);
|
|
126
168
|
}
|
|
127
169
|
/** Gracefully stop the server (SIGTERM → 5s timeout → SIGKILL) */
|
|
128
170
|
async stop() {
|
|
@@ -137,7 +179,15 @@ export class NatsServer {
|
|
|
137
179
|
this.proc.kill("SIGKILL");
|
|
138
180
|
await this.exited;
|
|
139
181
|
}
|
|
182
|
+
if (this.configDir) {
|
|
183
|
+
try {
|
|
184
|
+
rmSync(this.configDir, { recursive: true });
|
|
185
|
+
}
|
|
186
|
+
catch { }
|
|
187
|
+
this.configDir = null;
|
|
188
|
+
}
|
|
140
189
|
}
|
|
141
190
|
}
|
|
142
191
|
export { resolve as resolveBinary } from "./resolve.js";
|
|
192
|
+
export { buildConfig } from "./config.js";
|
|
143
193
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/parse.d.ts
CHANGED
package/dist/parse.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrD"}
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGrD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvD"}
|
package/dist/parse.js
CHANGED
|
@@ -2,4 +2,8 @@ export function parsePort(line) {
|
|
|
2
2
|
const match = line.match(/Listening for client connections on .+:(\d+)/);
|
|
3
3
|
return match ? parseInt(match[1], 10) : null;
|
|
4
4
|
}
|
|
5
|
+
export function parseWsPort(line) {
|
|
6
|
+
const match = line.match(/Listening for websocket clients on .+:(\d+)/);
|
|
7
|
+
return match ? parseInt(match[1], 10) : null;
|
|
8
|
+
}
|
|
5
9
|
//# sourceMappingURL=parse.js.map
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACxE,OAAO,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lagz0ne/nats-embedded",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Embedded NATS server for Node.js and Bun — managed child process with random port allocation",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"test": "bun test"
|
|
31
31
|
},
|
|
32
32
|
"optionalDependencies": {
|
|
33
|
-
"@lagz0ne/nats-embedded-linux-x64": "0.
|
|
34
|
-
"@lagz0ne/nats-embedded-linux-arm64": "0.
|
|
35
|
-
"@lagz0ne/nats-embedded-darwin-x64": "0.
|
|
36
|
-
"@lagz0ne/nats-embedded-darwin-arm64": "0.
|
|
37
|
-
"@lagz0ne/nats-embedded-win32-x64": "0.
|
|
38
|
-
"@lagz0ne/nats-embedded-win32-arm64": "0.
|
|
33
|
+
"@lagz0ne/nats-embedded-linux-x64": "0.3.0",
|
|
34
|
+
"@lagz0ne/nats-embedded-linux-arm64": "0.3.0",
|
|
35
|
+
"@lagz0ne/nats-embedded-darwin-x64": "0.3.0",
|
|
36
|
+
"@lagz0ne/nats-embedded-darwin-arm64": "0.3.0",
|
|
37
|
+
"@lagz0ne/nats-embedded-win32-x64": "0.3.0",
|
|
38
|
+
"@lagz0ne/nats-embedded-win32-arm64": "0.3.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"typescript": "^5.7.0",
|