From b9656c3c65d8ab1880205f2e1a99f6b4946b8fb9 Mon Sep 17 00:00:00 2001 From: subaru Date: Wed, 16 Oct 2024 19:24:43 +0900 Subject: [PATCH] detect cookie parameters as metadata --- packages/http/src/metadata.ts | 4 +++- packages/http/src/payload.ts | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/http/src/metadata.ts b/packages/http/src/metadata.ts index 1c0de783cb..093f22407b 100644 --- a/packages/http/src/metadata.ts +++ b/packages/http/src/metadata.ts @@ -16,6 +16,7 @@ import { isBody, isBodyIgnore, isBodyRoot, + isCookieParam, isHeader, isMultipartBodyProperty, isPathParam, @@ -219,11 +220,12 @@ export function resolveRequestVisibility( /** * Determines if a property is metadata. A property is defined to be - * metadata if it is marked `@header`, `@query`, `@path`, or `@statusCode`. + * metadata if it is marked `@header`, `@cookie`, `@query`, `@path`, or `@statusCode`. */ export function isMetadata(program: Program, property: ModelProperty) { return ( isHeader(program, property) || + isCookieParam(program, property) || isQueryParam(program, property) || isPathParam(program, property) || isStatusCode(program, property) diff --git a/packages/http/src/payload.ts b/packages/http/src/payload.ts index 441195fe81..43dabd4465 100644 --- a/packages/http/src/payload.ts +++ b/packages/http/src/payload.ts @@ -15,7 +15,7 @@ import { } from "@typespec/compiler"; import { DuplicateTracker } from "@typespec/compiler/utils"; import { getContentTypes } from "./content-types.js"; -import { isHeader, isPathParam, isQueryParam, isStatusCode } from "./decorators.js"; +import { isCookieParam, isHeader, isPathParam, isQueryParam, isStatusCode } from "./decorators.js"; import { GetHttpPropertyOptions, HeaderProperty, @@ -259,13 +259,15 @@ function validateBodyProperty( modelProperty: (prop) => { const kind = isHeader(program, prop) ? "header" - : (usedIn === "request" || usedIn === "multipart") && isQueryParam(program, prop) - ? "query" - : usedIn === "request" && isPathParam(program, prop) - ? "path" - : usedIn === "response" && isStatusCode(program, prop) - ? "statusCode" - : undefined; + : usedIn === "request" && isCookieParam(program, prop) + ? "cookie" + : (usedIn === "request" || usedIn === "multipart") && isQueryParam(program, prop) + ? "query" + : usedIn === "request" && isPathParam(program, prop) + ? "path" + : usedIn === "response" && isStatusCode(program, prop) + ? "statusCode" + : undefined; if (kind) { diagnostics.add(