Skip to content

Conversation

@k1rd3rf
Copy link
Contributor

@k1rd3rf k1rd3rf commented Oct 24, 2025

Useful when overriding the http client, and you want to make sure the request params are set.

Can be set to "" in order to not make it optional.


Note

Introduce defaultRequestParams config/CLI flag to set the default request params in generated APIs, applied in templates and covered by tests.

  • Config & CLI
    • Add default-request-params CLI arg and plumb to generateApi as defaultRequestParams.
    • Set default in CodeGenConfig (defaultRequestParams = "{}").
  • Templates
    • Use config.defaultRequestParams for request config arg default in templates/default/procedure-call.ejs and templates/modular/procedure-call.ejs.
  • Types
    • Extend GenerateApiConfiguration.config with defaultRequestParams: string.
  • Tests
    • Add tests/spec/defaultRequestParams/* with snapshots for basic, modular, and empty default cases.

Written by Cursor Bugbot for commit 8d62600. This will update automatically on new commits. Configure here.

Useful when overriding the http client, and you want to make sure the request params are set.

Can be set to `""` in order to not make it optional.
@changeset-bot
Copy link

changeset-bot bot commented Oct 24, 2025

🦋 Changeset detected

Latest commit: e1c2ff4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
swagger-typescript-api Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@smorimoto
Copy link
Collaborator

bugbot run

@smorimoto
Copy link
Collaborator

@codex review

optional: true,
type: "RequestParams",
defaultValue: "{}",
defaultValue: config.defaultRequestParams ?? "{}",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Empty String Falsely Treated as Optional Parameter

When config.defaultRequestParams is an empty string "", the argToTmpl function's !defaultValue check treats it as falsy. This incorrectly makes the parameter optional, contradicting the intent that an empty string should result in a required parameter without a default value.

Additional Locations (1)

Fix in Cursor Fix in Web

Copy link
Contributor Author

@k1rd3rf k1rd3rf Oct 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was an actual bug. Create a fix in e1c2ff4

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 16 to 19
name: specificArgNameResolver.resolve(RESERVED_REQ_PARAMS_ARG_NAMES),
optional: true,
type: "RequestParams",
defaultValue: "{}",
defaultValue: config.defaultRequestParams ?? "{}",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Avoid spreading undefined params when no default provided

When defaultRequestParams is configured as an empty string, this template still marks the request params argument as optional but without a default. The generated methods then spread ...params in the request object, so calling an API method without passing params throws TypeError: Cannot convert undefined or null to object instead of making the argument required (as the configuration description implies). Set optional based on whether a default value exists so the parameter becomes mandatory when no default is provided, and apply the same change in the modular template.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants