-
-
Notifications
You must be signed in to change notification settings - Fork 414
Add possibility to change default request params #1466
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
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 detectedLatest commit: e1c2ff4 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
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 |
|
bugbot run |
|
@codex review |
| optional: true, | ||
| type: "RequestParams", | ||
| defaultValue: "{}", | ||
| defaultValue: config.defaultRequestParams ?? "{}", |
There was a problem hiding this comment.
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)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Its intentional, see https://github.com/acacode/swagger-typescript-api/pull/1466/files#diff-e500dd0aa7886ed111db6230d9cf8ab5a78cdc81b0ef66a9ee8c184efe6807b1R39
test("defaultRequestParams with empty default", async () => {
There was a problem hiding this comment.
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
There was a problem hiding this 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".
| name: specificArgNameResolver.resolve(RESERVED_REQ_PARAMS_ARG_NAMES), | ||
| optional: true, | ||
| type: "RequestParams", | ||
| defaultValue: "{}", | ||
| defaultValue: config.defaultRequestParams ?? "{}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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 👍 / 👎.
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
defaultRequestParamsconfig/CLI flag to set the default request params in generated APIs, applied in templates and covered by tests.default-request-paramsCLI arg and plumb togenerateApiasdefaultRequestParams.CodeGenConfig(defaultRequestParams = "{}").config.defaultRequestParamsfor request config arg default intemplates/default/procedure-call.ejsandtemplates/modular/procedure-call.ejs.GenerateApiConfiguration.configwithdefaultRequestParams: string.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.