From acd68a8b8dbe87af3fd1cd32ec16cf7f4bef6b03 Mon Sep 17 00:00:00 2001 From: Will Temple Date: Tue, 9 Dec 2025 14:17:23 -0500 Subject: [PATCH 1/2] Update opt-param handling for HTTP metadata params --- packages/http-server-js/src/http/server/index.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/http-server-js/src/http/server/index.ts b/packages/http-server-js/src/http/server/index.ts index 76717b5d215..a54351ccc7b 100644 --- a/packages/http-server-js/src/http/server/index.ts +++ b/packages/http-server-js/src/http/server/index.ts @@ -425,7 +425,11 @@ function* emitRawServerOperation( const encoder = jsScalar.http[httpOperationParam.type]; - paramBaseExpression = encoder.decode(paramNameSafe); + const decoded = encoder.decode(paramNameSafe); + + paramBaseExpression = param.optional + ? `${paramNameSafe} === undefined ? undefined : (${decoded})` + : decoded; } else { paramBaseExpression = paramNameSafe; } From 23764cb7e40536479bfbc73bcb682a4796e0842a Mon Sep 17 00:00:00 2001 From: Will Temple Date: Wed, 10 Dec 2025 11:43:38 -0500 Subject: [PATCH 2/2] Chronus --- ...msft-hsjs-hyperparam-optionality-2025-11-10-11-43-24.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .chronus/changes/witemple-msft-hsjs-hyperparam-optionality-2025-11-10-11-43-24.md diff --git a/.chronus/changes/witemple-msft-hsjs-hyperparam-optionality-2025-11-10-11-43-24.md b/.chronus/changes/witemple-msft-hsjs-hyperparam-optionality-2025-11-10-11-43-24.md new file mode 100644 index 00000000000..0fab7340042 --- /dev/null +++ b/.chronus/changes/witemple-msft-hsjs-hyperparam-optionality-2025-11-10-11-43-24.md @@ -0,0 +1,7 @@ +--- +changeKind: fix +packages: + - "@typespec/http-server-js" +--- + +Fixed a bug that caused optional query/header parameters to be improperly converted to primitive types when not provided in a request. \ No newline at end of file