Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Merge requests
  • !6489

[Typescript] Support InversifyJS

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/bodograumann/ts-inversify into typescript-refactor-master May 29, 2020
  • Overview 0
  • Commits 28
  • Pipelines 0
  • Changes 117

Created by: bodograumann

To be able to use the new typescript generator as a replacement for the existing typescript-inversify generator, we need to add a few things. This PR does just that.

This is not a 1:1 replacement. Instead I have tried to incorporate my experience with using typescript-inversify and not pollute the templates too much.

The option for enabling this functionality is called useInversify. I had to change the way the SecurityAuthentication objects are generated in order to allow injecting parameters into them. Normally we should depend on abstractions (interfaces), not implementations, so I added some interfaces. For <service>RequestFactory and <service>ResponseProcessor this seemed like overkill though. Abstract classes are used as service identifiers. This has the advantage that during binding the types can be checked automatically and they are compiled into just an empty object.

It would be nice to have tests here, though I'm not quite sure where to put them. Just create a new sample with useInversify enabled and copy the default test setup? @TiFu

My previous PR #6425, is still included here, so if that is merged I can rebase.

PR checklist

  • Read the contribution guidelines.
  • If contributing template-only or documentation-only changes which will change sample output, build the project before.
  • Run the shell script(s) under ./bin/ (or Windows batch scripts under.\bin\windows) to update Petstore samples related to your fix. This is important, as CI jobs will verify all generator outputs of your HEAD commit, and these must match the expectations made by your contribution. You only need to run ./bin/{LANG}-petstore.sh, ./bin/openapi3/{LANG}-petstore.sh if updating the code or mustache templates for a language ({LANG}) (e.g. php, ruby, python, etc).
  • File the PR against the correct branch: master, 4.3.x, 5.0.x. Default: master.
  • Copy the technical committee to review the pull request if your PR is targeting a particular programming language.

CC @TiFu CC TS Committee @taxpon (2017/07) @sebastianhaas (2017/07) @kenisteward (2017/07) @Vrolijkx (2017/09) @macjohnny (2018/01) @topce (2018/10) @akehir (2019/07) @petejohansonxo (2019/11) @amakhrov (2020/02)

Possible next steps

  • Bind to provider and dynamic import
  • More convenience method on the ApiServiceBinder
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/bodograumann/ts-inversify