Skip to content

Commit 5d314f4

Browse files
committed
Support looking up default value from $ref'ed schema
1 parent 4e6b066 commit 5d314f4

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

packages/openapi-typescript/src/transform/parameters-array.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import ts from "typescript";
22
import { addJSDocComment, NEVER, oapiRef, QUESTION_TOKEN, tsModifiers, tsPropertyIndex } from "../lib/ts.js";
33
import { createRef } from "../lib/utils.js";
4-
import type { ParameterObject, ReferenceObject, TransformNodeOptions } from "../types.js";
4+
import type { ParameterObject, ReferenceObject, SchemaObject, TransformNodeOptions } from "../types.js";
55
import transformParameterObject from "./parameter-object.js";
66

77
// Regex to match path parameters in URL
@@ -86,10 +86,14 @@ export function transformParametersArray(
8686
if (resolved?.in !== paramIn) {
8787
continue;
8888
}
89+
const resolvedSchema =
90+
resolved.schema && "$ref" in resolved.schema
91+
? options.ctx.resolve<SchemaObject>(resolved.schema.$ref as string)
92+
: resolved.schema;
8993
let optional: ts.QuestionToken | undefined = undefined;
9094
const isNonOptional =
9195
(resolved as ParameterObject).required ||
92-
(options.ctx.makeParametersWithDefaultNotUndefined && resolved.schema?.default !== undefined);
96+
(options.ctx.makeParametersWithDefaultNotUndefined && resolvedSchema?.default !== undefined);
9397
if (paramIn !== "path" && !isNonOptional) {
9498
optional = QUESTION_TOKEN;
9599
}

0 commit comments

Comments
 (0)