Skip to content

Commit be14ecb

Browse files
authored
chore: improve defaults (#50)
1 parent 767da01 commit be14ecb

File tree

3 files changed

+78
-5
lines changed

3 files changed

+78
-5
lines changed

.changeset/green-lizards-fail.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
"@speakeasy-api/docs-mcp-server": patch
3+
---
4+
5+
Treat blank environment variables as unset when resolving default server metadata.
6+
7+
This fixes cases where `SERVER_NAME`, `SERVER_VERSION`, `GIT_COMMIT`, or `BUILD_DATE`
8+
are present but set to `""` or whitespace, so the server now falls back to the same
9+
defaults it would use if those values were omitted entirely.

packages/server/src/defaults.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,16 @@ export function resolveServerName(serverName?: string, toolPrefix?: string): str
1111
return serverName;
1212
}
1313

14-
if (process.env["SERVER_NAME"]) {
15-
return process.env["SERVER_NAME"];
14+
const envServerName = readOptionalEnv("SERVER_NAME");
15+
if (envServerName) {
16+
return envServerName;
1617
}
1718

1819
return toolPrefix ? `${toolPrefix}-docs-server` : PACKAGE_SERVER_NAME;
1920
}
2021

2122
export function resolveServerVersion(serverVersion?: string): string {
22-
return serverVersion ?? process.env["SERVER_VERSION"] ?? PACKAGE_SERVER_VERSION;
23+
return serverVersion ?? readOptionalEnv("SERVER_VERSION") ?? PACKAGE_SERVER_VERSION;
2324
}
2425

2526
export function resolveBuildInfo(input: {
@@ -31,11 +32,16 @@ export function resolveBuildInfo(input: {
3132
return {
3233
name: input.name,
3334
version: input.version,
34-
gitCommit: input.gitCommit ?? process.env["GIT_COMMIT"],
35-
buildDate: input.buildDate ?? process.env["BUILD_DATE"],
35+
gitCommit: input.gitCommit ?? readOptionalEnv("GIT_COMMIT"),
36+
buildDate: input.buildDate ?? readOptionalEnv("BUILD_DATE"),
3637
};
3738
}
3839

40+
function readOptionalEnv(name: string): string | undefined {
41+
const value = process.env[name]?.trim();
42+
return value ? value : undefined;
43+
}
44+
3945
function readPackageVersion(): string {
4046
const pkg = require("../package.json");
4147
return typeof pkg?.version === "string" ? pkg.version : "0.0.0";
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import { afterEach, describe, expect, it } from "vitest";
2+
import {
3+
PACKAGE_SERVER_NAME,
4+
PACKAGE_SERVER_VERSION,
5+
resolveBuildInfo,
6+
resolveServerName,
7+
resolveServerVersion,
8+
} from "../defaults.js";
9+
10+
const ORIGINAL_ENV = {
11+
SERVER_NAME: process.env.SERVER_NAME,
12+
SERVER_VERSION: process.env.SERVER_VERSION,
13+
GIT_COMMIT: process.env.GIT_COMMIT,
14+
BUILD_DATE: process.env.BUILD_DATE,
15+
};
16+
17+
afterEach(() => {
18+
process.env.SERVER_NAME = ORIGINAL_ENV.SERVER_NAME;
19+
process.env.SERVER_VERSION = ORIGINAL_ENV.SERVER_VERSION;
20+
process.env.GIT_COMMIT = ORIGINAL_ENV.GIT_COMMIT;
21+
process.env.BUILD_DATE = ORIGINAL_ENV.BUILD_DATE;
22+
});
23+
24+
describe("defaults", () => {
25+
it("treats blank env values as unset", () => {
26+
process.env.SERVER_NAME = " ";
27+
process.env.SERVER_VERSION = "";
28+
process.env.GIT_COMMIT = " ";
29+
process.env.BUILD_DATE = "\t";
30+
31+
expect(resolveServerName(undefined, "cisco")).toBe("cisco-docs-server");
32+
expect(resolveServerVersion()).toBe(PACKAGE_SERVER_VERSION);
33+
expect(
34+
resolveBuildInfo({ name: PACKAGE_SERVER_NAME, version: PACKAGE_SERVER_VERSION }),
35+
).toEqual({
36+
name: PACKAGE_SERVER_NAME,
37+
version: PACKAGE_SERVER_VERSION,
38+
});
39+
});
40+
41+
it("prefers non-empty env values", () => {
42+
process.env.SERVER_NAME = "demo-docs";
43+
process.env.SERVER_VERSION = "1.2.3";
44+
process.env.GIT_COMMIT = "abc123";
45+
process.env.BUILD_DATE = "2026-03-10T00:00:00Z";
46+
47+
expect(resolveServerName()).toBe("demo-docs");
48+
expect(resolveServerVersion()).toBe("1.2.3");
49+
expect(
50+
resolveBuildInfo({ name: PACKAGE_SERVER_NAME, version: PACKAGE_SERVER_VERSION }),
51+
).toEqual({
52+
name: PACKAGE_SERVER_NAME,
53+
version: PACKAGE_SERVER_VERSION,
54+
gitCommit: "abc123",
55+
buildDate: "2026-03-10T00:00:00Z",
56+
});
57+
});
58+
});

0 commit comments

Comments
 (0)