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

[typescript-rxjs] refactor to arrow functions and short hand object creation #3077

Merged

Conversation

denyo
Copy link
Contributor

@denyo denyo commented Jun 3, 2019

PR checklist

  • Read the contribution guidelines.
  • Ran the shell script under ./bin/ to update Petstore sample so that CIs can verify the change. (For instance, only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in .\bin\windows\. If contributing template-only or documentation-only changes which will change sample output, be sure to build the project first.
  • Filed the PR against the correct branch: master, 4.1.x, 5.0.x. Default: master.
  • Copied the technical committee to review the pull request if your PR is targeting a particular programming language.

Description of the PR

  • refactor to arrow functions where possible
  • abstract error throwing null checks into a function throwIfRequired
  • remove unused parameter in RequiredError (this is a breaking change if people are using it outside the generated code)
  • refactor headers and query objects to be created inline to be less verbose and skip redundant null checks

This all results in a noticeable code savings.
In my current react project with CRA2 (9 controllers and 14 endpoints) I get a build with 4368 characters less which is about 4%, although file size after gzip it is only 230 Bytes which is about 1%.

@TiFu (2017/07) @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @nicokoenig (2018/09) @topce (2018/10)

@auto-labeler
Copy link

auto-labeler bot commented Jun 3, 2019

👍 Thanks for opening this issue!
🏷 I have applied any labels matching special text in your issue.

The team will review the labels and make any necessary changes.

Copy link
Member

@macjohnny macjohnny left a comment

Choose a reason for hiding this comment

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

})
.join('&');

// alias fallback for not being a breaking change
Copy link
Member

Choose a reason for hiding this comment

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

nice

@denyo
Copy link
Contributor Author

denyo commented Jun 4, 2019

I missed the condition to add properties to the headers and query objects. It's there now with the spread operator.

@wing328 wing328 added this to the 4.0.2 milestone Jun 18, 2019
@wing328 wing328 modified the milestones: 4.0.2, 4.0.3 Jun 20, 2019
@wing328 wing328 merged commit 9518e2a into OpenAPITools:master Jun 25, 2019
@denyo denyo deleted the feature/typescript-rxjs-optimization branch July 10, 2019 09:45
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.

3 participants