Skip to content
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

chore(): v8 major release WIP #1395

Merged
merged 23 commits into from
Jul 7, 2021
Merged

chore(): v8 major release WIP #1395

merged 23 commits into from
Jul 7, 2021

Conversation

kamilmysliwiec
Copy link
Member

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[x] Other... Please describe: v8 release

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Does this PR introduce a breaking change?

[ ] Yes
[ ] No

Other information

coolsamk7 and others added 21 commits January 25, 2021 16:38
set default value for the status code in ApiResponse
decorator if status code  not pass.
Currently the schemas are passed around with two variables:
- `schemas` of type Array<{[key: string]: SchemaObject>`
- `schemasRefPaths` which lists the keys

There are a few issues:
- `schemas` is wrongly typed as `SchemaObject[]` in the code
- Two related arguments need to be passed to many function accepting schemas
- To check if an item is already in `schemas`, `schemasRefPaths.includes(key)` is used
which is O(schemas.length)
- It is not clear that `schemasRefPaths` is actually used to avoid
infinite recursion.

This commit uses only one variable, `schemas`. To avoid infinite
recursion, `schemasRefPaths` is used only where necessary as an
internal variable, and is renamed to `pendingSchemaRefs`. It is also
passed by copy when modified, so that it's restored to its previous value once the recursive call is ended.

Lookup is now fast: O(1) when looking up `schemas`, and when avoiding
infinite recursion `pendingPaths` is looked up as well but it is a short
array that does not contain any more elements than needed.

Typing is also fixed.
This plugin alreday supported nullables, but it failed to handle them properly for both Optional types and Unions with null types.
Ensure that the paths property comes before the components property,
as this may lead to several strange display bugs in swagger-ui.
See swagger-api/swagger-ui#5972 or
swagger-api/swagger-ui#3325 (comment)

Closes #1369
…-by-reversing-order-of-document-properties

fix(@nestjs/swagger) Change created document property order
fix(plugin): allow the use of "uiConfig" options to fastify-swagger and Swagger UI
fix(plugin): Handle nullable properties
…rator

fix: set default status for api-response decorator
fix(@nestjs/swagger): Fix generated types for single string literals
@kamilmysliwiec kamilmysliwiec marked this pull request as ready for review July 7, 2021 13:09
@kamilmysliwiec kamilmysliwiec merged commit 5596178 into master Jul 7, 2021
@delete-merged-branch delete-merged-branch bot deleted the 8.0.0 branch July 7, 2021 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants