mirror of
https://github.com/ferdikoomen/openapi-typescript-codegen.git
synced 2025-12-08 20:16:21 +00:00
Compare to other libraries
Depending on which generator you use, you will see different output. For instance: Different ways of generating models, services, level of quality, HTTP client, etc. I've compiled a list below with the results per area and how they compare against the openapi-typescript-codegen.
I've used the standard petshop examples from OpenAPI:
And used the following generators with their default options:
- typescript-aurelia
- typescript-angular
- typescript-inversify
- typescript-angular
- typescript-fetch
- typescript-jquery
- typescript-node
#Results
| openapi-typscript-codegen | aurelia | inversify | angular | fetch | jquery | node | |
|---|---|---|---|---|---|---|---|
| Supports OpenApi v2 specification | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Supports OpenApi v3 specification | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| Supports authentication | ✅ Bearer token |
❌ | ✅ Bearer token |
✅ Bearer token |
✅ Bearer token |
✅ Bearer token |
✅ Bearer token |
| Strongly typed models | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ Using classes instead of simple interfaces |
| Strongly typed enums | ✅ | ✅ No enum is exported |
✅ | ✅ Odd cast to <any> |
✅ Odd cast to <any> |
✅ Odd cast to <any> |
✅ Odd cast to <any> |
| Models and services exported as individual files | ✅ | ❌ All models inside one file |
✅ | ✅ | ❌ All models and services inside one file |
✅ | ❌ All models and services inside one file |
| Index file that exports all services and models | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ |
| Service returns typed result | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
| Service supports sending and receiving binary content | ✅ | ✅ | ✅ | ❌ Passing file as application/octet-stream |
❌ Passing file as application/octet-stream |
✅ | ✅ |
| Models and services contain inline documentation | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Framework agnostic | ✅ | ❌ No, using aurelia |
❌ No, using inversify and rxjs |
❌ No, using angular |
✅ But depends on portable-fetch |
❌ No, using jquery |
❌ No, can only be used with NodeJS http |