From 66f93dd81349626e3095848224502c96755ced1a Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Thu, 2 May 2019 15:55:15 +0200 Subject: [PATCH 01/10] Add support to http patch method --- .../typescript-inversify/HttpClient.mustache | 31 ++++++++++++++----- .../typescript-inversify/IHttpClient.mustache | 8 ++++- 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache index 64fe12a3045..5862c9a3fad 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache @@ -1,28 +1,39 @@ import IHttpClient from "./IHttpClient"; -import { Observable } from "rxjs/Observable"; + +{{^useRxJS6}} +import { Observable } from 'rxjs/Observable'; +{{/useRxJS6}} +{{#useRxJS6}} +import { Observable, from } from 'rxjs'; +{{/useRxJS6}} + import "whatwg-fetch"; import HttpResponse from "./HttpResponse"; import {injectable} from "inversify"; -import "rxjs/add/observable/fromPromise"; import { Headers } from "./Headers"; @injectable() class HttpClient implements IHttpClient { get(url:string, headers?: Headers):Observable<HttpResponse> { - return this.performNetworkCall(url, "get", undefined, headers); + return this.performNetworkCall(url, "GET", undefined, headers); } post(url: string, body: {}|FormData, headers?: Headers): Observable<HttpResponse> { - return this.performNetworkCall(url, "post", this.getJsonBody(body), this.addJsonHeaders(headers)); + return this.performNetworkCall(url, "POST", this.getJsonBody(body), this.addJsonHeaders(headers)); } put(url: string, body: {}, headers?: Headers): Observable<HttpResponse> { - return this.performNetworkCall(url, "put", this.getJsonBody(body), this.addJsonHeaders(headers)); + return this.performNetworkCall(url, "PUT", this.getJsonBody(body), this.addJsonHeaders(headers)); + } + + patch(url: string, body: {}, headers?: Headers): Observable<HttpResponse> { + return this.performNetworkCall(url, "PATCH", this.getJsonBody(body), this.addJsonHeaders(headers)); } + delete(url: string, headers?: Headers): Observable<HttpResponse> { - return this.performNetworkCall(url, "delete", undefined, headers); + return this.performNetworkCall(url, "DELETE", undefined, headers); } private getJsonBody(body: {}|FormData) { @@ -56,7 +67,13 @@ class HttpClient implements IHttpClient { return httpResponse; }); }); - return Observable.fromPromise(promise); + + {{^useRxJS6}} + return Observable.fromPromise(promise); + {{/useRxJS6}} + {{#useRxJS6}} + return from(promise); + {{/useRxJS6}} } } diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache index 22d9e07c903..5272d254ec3 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache @@ -1,4 +1,9 @@ -import { Observable } from "rxjs/Observable"; +{{^useRxJS6}} +import { Observable } from 'rxjs/Observable'; +{{/useRxJS6}} +{{#useRxJS6}} +import { Observable, from } from 'rxjs'; +{{/useRxJS6}} import HttpResponse from "./HttpResponse"; import { Headers } from "./Headers"; @@ -6,6 +11,7 @@ interface IHttpClient { get(url:string, headers?: Headers):Observable<HttpResponse> post(url:string, body:{}|FormData, headers?: Headers):Observable<HttpResponse> put(url:string, body:{}, headers?: Headers):Observable<HttpResponse> + patch(url:string, body:{}, headers?: Headers):Observable<HttpResponse> delete(url:string, headers?: Headers):Observable<HttpResponse> } -- GitLab From ee663f317465c151931150df7d003f3d49d5d1a7 Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Thu, 2 May 2019 15:59:43 +0200 Subject: [PATCH 02/10] Add support to rxjs6 --- .../TypeScriptInversifyClientCodegen.java | 8 +++++--- .../typescript-angular/package.mustache | 7 ++++++- .../typescript-inversify/api.service.mustache | 17 ++++++++++++----- .../typescript-inversify/apiInterface.mustache | 11 +++++++++-- .../typescript-inversify/package.mustache | 2 +- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java index 05464d1a1fa..24327c08402 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java @@ -23,10 +23,8 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.parser.util.SchemaTypeUtil; import org.openapitools.codegen.*; import org.openapitools.codegen.utils.ModelUtils; -import org.openapitools.codegen.utils.StringUtils; import java.io.File; -import java.text.SimpleDateFormat; import java.util.*; import static org.openapitools.codegen.utils.StringUtils.camelize; @@ -39,6 +37,7 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo public static final String SNAPSHOT = "snapshot"; public static final String WITH_INTERFACES = "withInterfaces"; public static final String USE_PROMISE = "usePromise"; + public static final String USE_RXJS6 = "useRxJS6"; public static final String TAGGED_UNIONS = "taggedUnions"; protected String npmVersion = null; @@ -71,6 +70,9 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo this.cliOptions.add(new CliOption(USE_PROMISE, "Setting this property to use promise instead of observable inside every service.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); + this.cliOptions.add(new CliOption(USE_RXJS6, + "Setting this property to use rxjs 6 instead of rxjs 5.", + SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); this.cliOptions.add(new CliOption(TAGGED_UNIONS, "Use discriminators to create tagged unions instead of extending interfaces.", SchemaTypeUtil.BOOLEAN_TYPE).defaultValue(Boolean.FALSE.toString())); @@ -95,7 +97,7 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo @Override public void processOpts() { super.processOpts(); - // HttpClient + // HttpCliens supportingFiles.add(new SupportingFile("IHttpClient.mustache", getIndexDirectory(), "IHttpClient.ts")); supportingFiles.add(new SupportingFile("IAPIConfiguration.mustache", getIndexDirectory(), "IAPIConfiguration.ts")); supportingFiles.add(new SupportingFile("HttpClient.mustache", getIndexDirectory(), "HttpClient.ts")); diff --git a/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache b/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache index 0caee1c44c0..c5c47b61dde 100644 --- a/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache @@ -28,7 +28,12 @@ "@angular/compiler": "^{{ngVersion}}", "core-js": "^2.4.0", "reflect-metadata": "^0.1.3", - "rxjs": "^{{rxjsVersion}}" + {{^useRxJS6}} + "rxjs": "^6.0.0" + {{/useRxJS6}} + {{#useRxJS6}} + "rxjs": "^5.0.0" + {{/useRxJS6}} }, "devDependencies": { "@angular/common": "^{{ngVersion}}", diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache index 703a3d0573a..f627c6cb82e 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache @@ -1,9 +1,14 @@ {{>licenseInfo}} /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from "rxjs/Observable"; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/toPromise'; +{{^useRxJS6}} +import { Observable } from 'rxjs/Observable'; +{{/useRxJS6}} +{{#useRxJS6}} +import { Observable } from 'rxjs'; +{{/useRxJS6}} + +import { map } from 'rxjs/operators'; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; @@ -16,7 +21,7 @@ import { {{classname}} } from '../{{filename}}'; import { COLLECTION_FORMATS } from '../variables'; {{#withInterfaces}} -import { {{classname}}Interface } from './{{classname}}Interface'; +import { {{classname}}Interface } from './{{classFilename}}Interface'; {{/withInterfaces}} {{#operations}} @@ -171,7 +176,9 @@ export class {{classname}} { {{/hasFormParams}} const response: Observable<HttpResponse<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>> = this.httpClient.{{httpMethod}}(`${this.basePath}{{{path}}}{{#hasQueryParams}}?${queryParameters.join('&')}{{/hasQueryParams}}`{{#bodyParam}}, {{paramName}} {{/bodyParam}}{{#hasFormParams}}, body{{/hasFormParams}}, headers); if (observe == 'body') { - return response.map(httpResponse => <{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>(httpResponse.response)){{#usePromise}}.toPromise(){{/usePromise}}; + return response.pipe( + map(httpResponse => <{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>(httpResponse.response)) + ){{#usePromise}}.toPromise(){{/usePromise}}; } return response{{#usePromise}}.toPromise(){{/usePromise}}; } diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache index cb31c6396b9..0412fc3d518 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache @@ -1,7 +1,14 @@ {{>licenseInfo}} import { Headers } from "../Headers"; -import { Observable } from "rxjs/Observable"; -import * as models from "../model/models"; +{{^useRxJS6}} +import { Observable } from 'rxjs/Observable'; +{{/useRxJS6}} +{{#useRxJS6}} +import { Observable } from 'rxjs'; +{{/useRxJS6}} +{{#imports}} +import { {{classname}} } from '../{{filename}}'; +{{/imports}} import HttpResponse from "../HttpResponse"; {{#operations}} diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache index 9f60773c2f0..637445a7185 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache @@ -16,7 +16,7 @@ }, "dependencies": { "inversify": "^4.3.0", - "rxjs": "~5.5.7", + "rxjs": "^6.0.0", "whatwg-fetch": "~2.0.1", "reflect-metadata": "0.1.8" }, -- GitLab From 7d3f2c656cb5f1e77ffe0038d034e956b17311f6 Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Thu, 2 May 2019 16:00:04 +0200 Subject: [PATCH 03/10] Align sample --- .../typescript-inversify/HttpClient.ts | 21 ++++++---- .../typescript-inversify/IHttpClient.ts | 3 +- .../typescript-inversify/api/pet.service.ts | 38 +++++++++++++------ .../typescript-inversify/api/store.service.ts | 22 +++++++---- .../typescript-inversify/api/user.service.ts | 38 +++++++++++++------ 5 files changed, 85 insertions(+), 37 deletions(-) diff --git a/samples/client/petstore/typescript-inversify/HttpClient.ts b/samples/client/petstore/typescript-inversify/HttpClient.ts index 64fe12a3045..0e8e3763590 100644 --- a/samples/client/petstore/typescript-inversify/HttpClient.ts +++ b/samples/client/petstore/typescript-inversify/HttpClient.ts @@ -1,28 +1,34 @@ import IHttpClient from "./IHttpClient"; -import { Observable } from "rxjs/Observable"; + +import { Observable } from 'rxjs/Observable'; + import "whatwg-fetch"; import HttpResponse from "./HttpResponse"; import {injectable} from "inversify"; -import "rxjs/add/observable/fromPromise"; import { Headers } from "./Headers"; @injectable() class HttpClient implements IHttpClient { get(url:string, headers?: Headers):Observable<HttpResponse> { - return this.performNetworkCall(url, "get", undefined, headers); + return this.performNetworkCall(url, "GET", undefined, headers); } post(url: string, body: {}|FormData, headers?: Headers): Observable<HttpResponse> { - return this.performNetworkCall(url, "post", this.getJsonBody(body), this.addJsonHeaders(headers)); + return this.performNetworkCall(url, "POST", this.getJsonBody(body), this.addJsonHeaders(headers)); } put(url: string, body: {}, headers?: Headers): Observable<HttpResponse> { - return this.performNetworkCall(url, "put", this.getJsonBody(body), this.addJsonHeaders(headers)); + return this.performNetworkCall(url, "PUT", this.getJsonBody(body), this.addJsonHeaders(headers)); + } + + patch(url: string, body: {}, headers?: Headers): Observable<HttpResponse> { + return this.performNetworkCall(url, "PATCH", this.getJsonBody(body), this.addJsonHeaders(headers)); } + delete(url: string, headers?: Headers): Observable<HttpResponse> { - return this.performNetworkCall(url, "delete", undefined, headers); + return this.performNetworkCall(url, "DELETE", undefined, headers); } private getJsonBody(body: {}|FormData) { @@ -56,7 +62,8 @@ class HttpClient implements IHttpClient { return httpResponse; }); }); - return Observable.fromPromise(promise); + + return Observable.fromPromise(promise); } } diff --git a/samples/client/petstore/typescript-inversify/IHttpClient.ts b/samples/client/petstore/typescript-inversify/IHttpClient.ts index 22d9e07c903..b81c80a92a1 100644 --- a/samples/client/petstore/typescript-inversify/IHttpClient.ts +++ b/samples/client/petstore/typescript-inversify/IHttpClient.ts @@ -1,4 +1,4 @@ -import { Observable } from "rxjs/Observable"; +import { Observable } from 'rxjs/Observable'; import HttpResponse from "./HttpResponse"; import { Headers } from "./Headers"; @@ -6,6 +6,7 @@ interface IHttpClient { get(url:string, headers?: Headers):Observable<HttpResponse> post(url:string, body:{}|FormData, headers?: Headers):Observable<HttpResponse> put(url:string, body:{}, headers?: Headers):Observable<HttpResponse> + patch(url:string, body:{}, headers?: Headers):Observable<HttpResponse> delete(url:string, headers?: Headers):Observable<HttpResponse> } diff --git a/samples/client/petstore/typescript-inversify/api/pet.service.ts b/samples/client/petstore/typescript-inversify/api/pet.service.ts index b0df73b34e0..d4cdb729de0 100644 --- a/samples/client/petstore/typescript-inversify/api/pet.service.ts +++ b/samples/client/petstore/typescript-inversify/api/pet.service.ts @@ -11,9 +11,9 @@ */ /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from "rxjs/Observable"; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/toPromise'; +import { Observable } from 'rxjs/Observable'; + +import { map } from 'rxjs/operators'; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; @@ -62,7 +62,9 @@ export class PetService { const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/pet`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -97,7 +99,9 @@ export class PetService { const response: Observable<HttpResponse<any>> = this.httpClient.delete(`${this.basePath}/pet/${encodeURIComponent(String(petId))}`, headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -132,7 +136,9 @@ export class PetService { const response: Observable<HttpResponse<Array<Pet>>> = this.httpClient.get(`${this.basePath}/pet/findByStatus?${queryParameters.join('&')}`, headers); if (observe == 'body') { - return response.map(httpResponse => <Array<Pet>>(httpResponse.response)); + return response.pipe( + map(httpResponse => <Array<Pet>>(httpResponse.response)) + ); } return response; } @@ -167,7 +173,9 @@ export class PetService { const response: Observable<HttpResponse<Array<Pet>>> = this.httpClient.get(`${this.basePath}/pet/findByTags?${queryParameters.join('&')}`, headers); if (observe == 'body') { - return response.map(httpResponse => <Array<Pet>>(httpResponse.response)); + return response.pipe( + map(httpResponse => <Array<Pet>>(httpResponse.response)) + ); } return response; } @@ -194,7 +202,9 @@ export class PetService { const response: Observable<HttpResponse<Pet>> = this.httpClient.get(`${this.basePath}/pet/${encodeURIComponent(String(petId))}`, headers); if (observe == 'body') { - return response.map(httpResponse => <Pet>(httpResponse.response)); + return response.pipe( + map(httpResponse => <Pet>(httpResponse.response)) + ); } return response; } @@ -225,7 +235,9 @@ export class PetService { const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/pet`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -266,7 +278,9 @@ export class PetService { const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/pet/${encodeURIComponent(String(petId))}`, body, headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -307,7 +321,9 @@ export class PetService { const response: Observable<HttpResponse<ApiResponse>> = this.httpClient.post(`${this.basePath}/pet/${encodeURIComponent(String(petId))}/uploadImage`, body, headers); if (observe == 'body') { - return response.map(httpResponse => <ApiResponse>(httpResponse.response)); + return response.pipe( + map(httpResponse => <ApiResponse>(httpResponse.response)) + ); } return response; } diff --git a/samples/client/petstore/typescript-inversify/api/store.service.ts b/samples/client/petstore/typescript-inversify/api/store.service.ts index f4c204db479..f2c581d13e9 100644 --- a/samples/client/petstore/typescript-inversify/api/store.service.ts +++ b/samples/client/petstore/typescript-inversify/api/store.service.ts @@ -11,9 +11,9 @@ */ /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from "rxjs/Observable"; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/toPromise'; +import { Observable } from 'rxjs/Observable'; + +import { map } from 'rxjs/operators'; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; @@ -53,7 +53,9 @@ export class StoreService { const response: Observable<HttpResponse<any>> = this.httpClient.delete(`${this.basePath}/store/order/${encodeURIComponent(String(orderId))}`, headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -75,7 +77,9 @@ export class StoreService { const response: Observable<HttpResponse<{ [key: string]: number; }>> = this.httpClient.get(`${this.basePath}/store/inventory`, headers); if (observe == 'body') { - return response.map(httpResponse => <{ [key: string]: number; }>(httpResponse.response)); + return response.pipe( + map(httpResponse => <{ [key: string]: number; }>(httpResponse.response)) + ); } return response; } @@ -98,7 +102,9 @@ export class StoreService { const response: Observable<HttpResponse<Order>> = this.httpClient.get(`${this.basePath}/store/order/${encodeURIComponent(String(orderId))}`, headers); if (observe == 'body') { - return response.map(httpResponse => <Order>(httpResponse.response)); + return response.pipe( + map(httpResponse => <Order>(httpResponse.response)) + ); } return response; } @@ -122,7 +128,9 @@ export class StoreService { const response: Observable<HttpResponse<Order>> = this.httpClient.post(`${this.basePath}/store/order`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <Order>(httpResponse.response)); + return response.pipe( + map(httpResponse => <Order>(httpResponse.response)) + ); } return response; } diff --git a/samples/client/petstore/typescript-inversify/api/user.service.ts b/samples/client/petstore/typescript-inversify/api/user.service.ts index 45e10dece9c..2a5d2dcc7bc 100644 --- a/samples/client/petstore/typescript-inversify/api/user.service.ts +++ b/samples/client/petstore/typescript-inversify/api/user.service.ts @@ -11,9 +11,9 @@ */ /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from "rxjs/Observable"; -import 'rxjs/add/operator/map'; -import 'rxjs/add/operator/toPromise'; +import { Observable } from 'rxjs/Observable'; + +import { map } from 'rxjs/operators'; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; @@ -54,7 +54,9 @@ export class UserService { const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -78,7 +80,9 @@ export class UserService { const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithArray`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -102,7 +106,9 @@ export class UserService { const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithList`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -125,7 +131,9 @@ export class UserService { const response: Observable<HttpResponse<any>> = this.httpClient.delete(`${this.basePath}/user/${encodeURIComponent(String(username))}`, headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -148,7 +156,9 @@ export class UserService { const response: Observable<HttpResponse<User>> = this.httpClient.get(`${this.basePath}/user/${encodeURIComponent(String(username))}`, headers); if (observe == 'body') { - return response.map(httpResponse => <User>(httpResponse.response)); + return response.pipe( + map(httpResponse => <User>(httpResponse.response)) + ); } return response; } @@ -184,7 +194,9 @@ export class UserService { const response: Observable<HttpResponse<string>> = this.httpClient.get(`${this.basePath}/user/login?${queryParameters.join('&')}`, headers); if (observe == 'body') { - return response.map(httpResponse => <string>(httpResponse.response)); + return response.pipe( + map(httpResponse => <string>(httpResponse.response)) + ); } return response; } @@ -202,7 +214,9 @@ export class UserService { const response: Observable<HttpResponse<any>> = this.httpClient.get(`${this.basePath}/user/logout`, headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } @@ -231,7 +245,9 @@ export class UserService { const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/user/${encodeURIComponent(String(username))}`, body , headers); if (observe == 'body') { - return response.map(httpResponse => <any>(httpResponse.response)); + return response.pipe( + map(httpResponse => <any>(httpResponse.response)) + ); } return response; } -- GitLab From d2062a4900eb82cad578ed7c759ba1dc4608408d Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Thu, 2 May 2019 16:03:19 +0200 Subject: [PATCH 04/10] Add sample for openapi3 --- .../typescript-inversify/api/pet.service.ts | 38 +++++++----- .../typescript-inversify/api/store.service.ts | 14 ++--- .../typescript-inversify/api/user.service.ts | 62 ++++++++++--------- .../model/inlineObject.ts | 23 +++++++ .../model/inlineObject1.ts | 23 +++++++ 5 files changed, 108 insertions(+), 52 deletions(-) create mode 100644 samples/client/petstore/typescript-inversify/model/inlineObject.ts create mode 100644 samples/client/petstore/typescript-inversify/model/inlineObject1.ts diff --git a/samples/client/petstore/typescript-inversify/api/pet.service.ts b/samples/client/petstore/typescript-inversify/api/pet.service.ts index d4cdb729de0..9be28b6565e 100644 --- a/samples/client/petstore/typescript-inversify/api/pet.service.ts +++ b/samples/client/petstore/typescript-inversify/api/pet.service.ts @@ -40,14 +40,14 @@ export class PetService { /** * Add a new pet to the store * - * @param body Pet object that needs to be added to the store + * @param pet Pet object that needs to be added to the store */ - public addPet(body: Pet, observe?: 'body', headers?: Headers): Observable<any>; - public addPet(body: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public addPet(body: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!body){ - throw new Error('Required parameter body was null or undefined when calling addPet.'); + public addPet(pet: Pet, observe?: 'body', headers?: Headers): Observable<any>; + public addPet(pet: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public addPet(pet: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!pet){ + throw new Error('Required parameter pet was null or undefined when calling addPet.'); } // authentication (petstore_auth) required @@ -60,7 +60,7 @@ export class PetService { headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/pet`, body , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/pet`, pet , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -148,11 +148,12 @@ export class PetService { * Finds Pets by tags * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * @param tags Tags to filter by + * @param maxCount Maximum number of items to return */ - public findPetsByTags(tags: Array<string>, observe?: 'body', headers?: Headers): Observable<Array<Pet>>; - public findPetsByTags(tags: Array<string>, observe?: 'response', headers?: Headers): Observable<HttpResponse<Array<Pet>>>; - public findPetsByTags(tags: Array<string>, observe: any = 'body', headers: Headers = {}): Observable<any> { + public findPetsByTags(tags: Array<string>, maxCount?: number, observe?: 'body', headers?: Headers): Observable<Array<Pet>>; + public findPetsByTags(tags: Array<string>, maxCount?: number, observe?: 'response', headers?: Headers): Observable<HttpResponse<Array<Pet>>>; + public findPetsByTags(tags: Array<string>, maxCount?: number, observe: any = 'body', headers: Headers = {}): Observable<any> { if (!tags){ throw new Error('Required parameter tags was null or undefined when calling findPetsByTags.'); } @@ -161,6 +162,9 @@ export class PetService { if (tags) { queryParameters.push("tags="+encodeURIComponent(tags.join(COLLECTION_FORMATS['csv']))); } + if (maxCount !== undefined) { + queryParameters.push("maxCount="+encodeURIComponent(String(maxCount))); + } // authentication (petstore_auth) required if (this.APIConfiguration.accessToken) { @@ -213,14 +217,14 @@ export class PetService { /** * Update an existing pet * - * @param body Pet object that needs to be added to the store + * @param pet Pet object that needs to be added to the store */ - public updatePet(body: Pet, observe?: 'body', headers?: Headers): Observable<any>; - public updatePet(body: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public updatePet(body: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!body){ - throw new Error('Required parameter body was null or undefined when calling updatePet.'); + public updatePet(pet: Pet, observe?: 'body', headers?: Headers): Observable<any>; + public updatePet(pet: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public updatePet(pet: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!pet){ + throw new Error('Required parameter pet was null or undefined when calling updatePet.'); } // authentication (petstore_auth) required @@ -233,7 +237,7 @@ export class PetService { headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/pet`, body , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/pet`, pet , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) diff --git a/samples/client/petstore/typescript-inversify/api/store.service.ts b/samples/client/petstore/typescript-inversify/api/store.service.ts index f2c581d13e9..407a8b99966 100644 --- a/samples/client/petstore/typescript-inversify/api/store.service.ts +++ b/samples/client/petstore/typescript-inversify/api/store.service.ts @@ -113,20 +113,20 @@ export class StoreService { /** * Place an order for a pet * - * @param body order placed for purchasing the pet + * @param order order placed for purchasing the pet */ - public placeOrder(body: Order, observe?: 'body', headers?: Headers): Observable<Order>; - public placeOrder(body: Order, observe?: 'response', headers?: Headers): Observable<HttpResponse<Order>>; - public placeOrder(body: Order, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!body){ - throw new Error('Required parameter body was null or undefined when calling placeOrder.'); + public placeOrder(order: Order, observe?: 'body', headers?: Headers): Observable<Order>; + public placeOrder(order: Order, observe?: 'response', headers?: Headers): Observable<HttpResponse<Order>>; + public placeOrder(order: Order, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!order){ + throw new Error('Required parameter order was null or undefined when calling placeOrder.'); } headers['Accept'] = 'application/xml'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<Order>> = this.httpClient.post(`${this.basePath}/store/order`, body , headers); + const response: Observable<HttpResponse<Order>> = this.httpClient.post(`${this.basePath}/store/order`, order , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <Order>(httpResponse.response)) diff --git a/samples/client/petstore/typescript-inversify/api/user.service.ts b/samples/client/petstore/typescript-inversify/api/user.service.ts index 2a5d2dcc7bc..934b5e015d9 100644 --- a/samples/client/petstore/typescript-inversify/api/user.service.ts +++ b/samples/client/petstore/typescript-inversify/api/user.service.ts @@ -39,20 +39,21 @@ export class UserService { /** * Create user * This can only be done by the logged in user. - * @param body Created user object + * @param user Created user object */ - public createUser(body: User, observe?: 'body', headers?: Headers): Observable<any>; - public createUser(body: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public createUser(body: User, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!body){ - throw new Error('Required parameter body was null or undefined when calling createUser.'); + public createUser(user: User, observe?: 'body', headers?: Headers): Observable<any>; + public createUser(user: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public createUser(user: User, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!user){ + throw new Error('Required parameter user was null or undefined when calling createUser.'); } + // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user`, body , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user`, user , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -65,20 +66,21 @@ export class UserService { /** * Creates list of users with given input array * - * @param body List of user object + * @param user List of user object */ - public createUsersWithArrayInput(body: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; - public createUsersWithArrayInput(body: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public createUsersWithArrayInput(body: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!body){ - throw new Error('Required parameter body was null or undefined when calling createUsersWithArrayInput.'); + public createUsersWithArrayInput(user: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; + public createUsersWithArrayInput(user: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public createUsersWithArrayInput(user: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!user){ + throw new Error('Required parameter user was null or undefined when calling createUsersWithArrayInput.'); } + // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithArray`, body , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithArray`, user , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -91,20 +93,21 @@ export class UserService { /** * Creates list of users with given input array * - * @param body List of user object + * @param user List of user object */ - public createUsersWithListInput(body: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; - public createUsersWithListInput(body: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public createUsersWithListInput(body: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!body){ - throw new Error('Required parameter body was null or undefined when calling createUsersWithListInput.'); + public createUsersWithListInput(user: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; + public createUsersWithListInput(user: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public createUsersWithListInput(user: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!user){ + throw new Error('Required parameter user was null or undefined when calling createUsersWithListInput.'); } + // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithList`, body , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithList`, user , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -127,6 +130,7 @@ export class UserService { throw new Error('Required parameter username was null or undefined when calling deleteUser.'); } + // authentication (auth_cookie) required headers['Accept'] = 'application/json'; const response: Observable<HttpResponse<any>> = this.httpClient.delete(`${this.basePath}/user/${encodeURIComponent(String(username))}`, headers); @@ -210,6 +214,7 @@ export class UserService { public logoutUser(observe?: 'body', headers?: Headers): Observable<any>; public logoutUser(observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; public logoutUser(observe: any = 'body', headers: Headers = {}): Observable<any> { + // authentication (auth_cookie) required headers['Accept'] = 'application/json'; const response: Observable<HttpResponse<any>> = this.httpClient.get(`${this.basePath}/user/logout`, headers); @@ -226,24 +231,25 @@ export class UserService { * Updated user * This can only be done by the logged in user. * @param username name that need to be deleted - * @param body Updated user object + * @param user Updated user object */ - public updateUser(username: string, body: User, observe?: 'body', headers?: Headers): Observable<any>; - public updateUser(username: string, body: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public updateUser(username: string, body: User, observe: any = 'body', headers: Headers = {}): Observable<any> { + public updateUser(username: string, user: User, observe?: 'body', headers?: Headers): Observable<any>; + public updateUser(username: string, user: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public updateUser(username: string, user: User, observe: any = 'body', headers: Headers = {}): Observable<any> { if (!username){ throw new Error('Required parameter username was null or undefined when calling updateUser.'); } - if (!body){ - throw new Error('Required parameter body was null or undefined when calling updateUser.'); + if (!user){ + throw new Error('Required parameter user was null or undefined when calling updateUser.'); } + // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/user/${encodeURIComponent(String(username))}`, body , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/user/${encodeURIComponent(String(username))}`, user , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) diff --git a/samples/client/petstore/typescript-inversify/model/inlineObject.ts b/samples/client/petstore/typescript-inversify/model/inlineObject.ts new file mode 100644 index 00000000000..7ebc2ff4916 --- /dev/null +++ b/samples/client/petstore/typescript-inversify/model/inlineObject.ts @@ -0,0 +1,23 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface InlineObject { + /** + * Updated name of the pet + */ + name?: string; + /** + * Updated status of the pet + */ + status?: string; +} diff --git a/samples/client/petstore/typescript-inversify/model/inlineObject1.ts b/samples/client/petstore/typescript-inversify/model/inlineObject1.ts new file mode 100644 index 00000000000..3f35ccedd9b --- /dev/null +++ b/samples/client/petstore/typescript-inversify/model/inlineObject1.ts @@ -0,0 +1,23 @@ +/** + * OpenAPI Petstore + * This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters. + * + * OpenAPI spec version: 1.0.0 + * + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + +export interface InlineObject1 { + /** + * Additional data to pass to server + */ + additionalMetadata?: string; + /** + * file to upload + */ + file?: Blob; +} -- GitLab From 50fddc701eabeb3025cc4df25212b9b757caeb40 Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Thu, 2 May 2019 17:41:18 +0200 Subject: [PATCH 05/10] Change usage of single quote to use only double ones --- .../typescript-inversify/HttpClient.mustache | 4 ++-- .../typescript-inversify/IHttpClient.mustache | 4 ++-- .../typescript-inversify/api.service.mustache | 12 ++++++------ .../typescript-inversify/apiInterface.mustache | 6 +++--- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache index 5862c9a3fad..2599345d141 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/HttpClient.mustache @@ -1,10 +1,10 @@ import IHttpClient from "./IHttpClient"; {{^useRxJS6}} -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; {{/useRxJS6}} {{#useRxJS6}} -import { Observable, from } from 'rxjs'; +import { Observable, from } from "rxjs"; {{/useRxJS6}} import "whatwg-fetch"; diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache index 5272d254ec3..8f898481903 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/IHttpClient.mustache @@ -1,8 +1,8 @@ {{^useRxJS6}} -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; {{/useRxJS6}} {{#useRxJS6}} -import { Observable, from } from 'rxjs'; +import { Observable, from } from "rxjs"; {{/useRxJS6}} import HttpResponse from "./HttpResponse"; import { Headers } from "./Headers"; diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache index f627c6cb82e..547055863b7 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/api.service.mustache @@ -2,13 +2,13 @@ /* tslint:disable:no-unused-variable member-ordering */ {{^useRxJS6}} -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; {{/useRxJS6}} {{#useRxJS6}} -import { Observable } from 'rxjs'; +import { Observable } from "rxjs"; {{/useRxJS6}} -import { map } from 'rxjs/operators'; +import { map } from "rxjs/operators"; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; @@ -16,12 +16,12 @@ import { Headers } from "../Headers"; import HttpResponse from "../HttpResponse"; {{#imports}} -import { {{classname}} } from '../{{filename}}'; +import { {{classname}} } from "../{{filename}}"; {{/imports}} -import { COLLECTION_FORMATS } from '../variables'; +import { COLLECTION_FORMATS } from "../variables"; {{#withInterfaces}} -import { {{classname}}Interface } from './{{classFilename}}Interface'; +import { {{classname}}Interface } from "./{{classFilename}}Interface"; {{/withInterfaces}} {{#operations}} diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache index 0412fc3d518..f6c4c03e5cc 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/apiInterface.mustache @@ -1,13 +1,13 @@ {{>licenseInfo}} import { Headers } from "../Headers"; {{^useRxJS6}} -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; {{/useRxJS6}} {{#useRxJS6}} -import { Observable } from 'rxjs'; +import { Observable } from "rxjs"; {{/useRxJS6}} {{#imports}} -import { {{classname}} } from '../{{filename}}'; +import { {{classname}} } from "../{{filename}}"; {{/imports}} import HttpResponse from "../HttpResponse"; -- GitLab From 84a7f98758f4ea3b924d15cb5bf70ceda6794ff4 Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Thu, 2 May 2019 17:56:23 +0200 Subject: [PATCH 06/10] Fix wrong changes of typescript-angular package.json template --- .../main/resources/typescript-angular/package.mustache | 7 +------ .../main/resources/typescript-inversify/package.mustache | 9 +++++++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache b/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache index c5c47b61dde..0caee1c44c0 100644 --- a/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-angular/package.mustache @@ -28,12 +28,7 @@ "@angular/compiler": "^{{ngVersion}}", "core-js": "^2.4.0", "reflect-metadata": "^0.1.3", - {{^useRxJS6}} - "rxjs": "^6.0.0" - {{/useRxJS6}} - {{#useRxJS6}} - "rxjs": "^5.0.0" - {{/useRxJS6}} + "rxjs": "^{{rxjsVersion}}" }, "devDependencies": { "@angular/common": "^{{ngVersion}}", diff --git a/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache b/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache index 637445a7185..78a4c93bab9 100644 --- a/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-inversify/package.mustache @@ -16,9 +16,14 @@ }, "dependencies": { "inversify": "^4.3.0", - "rxjs": "^6.0.0", "whatwg-fetch": "~2.0.1", - "reflect-metadata": "0.1.8" + "reflect-metadata": "0.1.8", + {{^useRxJS6}} + "rxjs": "^6.0.0" + {{/useRxJS6}} + {{#useRxJS6}} + "rxjs": "^5.0.0" + {{/useRxJS6}} }, "devDependencies": { }{{#npmRepository}},{{/npmRepository}} -- GitLab From 85d51018f24da6460b90be821db473b68f947c54 Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Wed, 8 May 2019 11:09:40 +0200 Subject: [PATCH 07/10] Add `map` keyword inside reservedWords --- .../codegen/languages/TypeScriptInversifyClientCodegen.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java index 24327c08402..4fafaf45845 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java @@ -57,6 +57,8 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo apiPackage = "api"; modelPackage = "model"; + this.reservedWords.add("map"); + this.cliOptions.add(new CliOption(NPM_NAME, "The name under which you want to publish generated npm package")); this.cliOptions.add(new CliOption(NPM_VERSION, "The version of your npm package")); this.cliOptions.add(new CliOption(NPM_REPOSITORY, -- GitLab From ed34de6d4413030bb5d6776fc6a60b9e9cbae5d6 Mon Sep 17 00:00:00 2001 From: Mario Gualtieri <mario.gualtieri2012@gmail.com> Date: Wed, 8 May 2019 15:29:06 +0200 Subject: [PATCH 08/10] Add typescript-inversify inside README Add typescript-inversify inside README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ac23eef4dd1..99109c3218b 100644 --- a/README.md +++ b/README.md @@ -651,6 +651,7 @@ Here is a list of template creators: * TypeScript (jQuery): @bherila * TypeScript (Node): @mhardorf * TypeScript (Rxjs): @denyo + * TypeScript (Inversify): @gualtierim * Server Stubs * Ada: @stcarrez * C# ASP.NET5: @jimschubert [:heart:](https://www.patreon.com/jimschubert) -- GitLab From fccd02c28fab6b15520bcc0db11d93fad58c6e1a Mon Sep 17 00:00:00 2001 From: William Cheng <wing328hk@gmail.com> Date: Mon, 20 May 2019 21:08:30 +0800 Subject: [PATCH 09/10] fix merge issue, update petstore --- .../TypeScriptInversifyClientCodegen.java | 2 - .../typescript-inversify/HttpClient.ts | 2 +- .../typescript-inversify/IHttpClient.ts | 2 +- .../typescript-inversify/api/pet.service.ts | 48 ++++++------- .../typescript-inversify/api/store.service.ts | 22 +++--- .../typescript-inversify/api/user.service.ts | 70 +++++++++---------- 6 files changed, 67 insertions(+), 79 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java index 4c59b846a3e..1fbe90664df 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptInversifyClientCodegen.java @@ -54,8 +54,6 @@ public class TypeScriptInversifyClientCodegen extends AbstractTypeScriptClientCo this.reservedWords.add("map"); - this.cliOptions.add(new CliOption(NPM_NAME, "The name under which you want to publish generated npm package")); - this.cliOptions.add(new CliOption(NPM_VERSION, "The version of your npm package")); this.cliOptions.add(new CliOption(NPM_REPOSITORY, "Use this property to set an url your private npmRepo in the package.json")); this.cliOptions.add(new CliOption(WITH_INTERFACES, diff --git a/samples/client/petstore/typescript-inversify/HttpClient.ts b/samples/client/petstore/typescript-inversify/HttpClient.ts index 0e8e3763590..391f4852977 100644 --- a/samples/client/petstore/typescript-inversify/HttpClient.ts +++ b/samples/client/petstore/typescript-inversify/HttpClient.ts @@ -1,6 +1,6 @@ import IHttpClient from "./IHttpClient"; -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; import "whatwg-fetch"; import HttpResponse from "./HttpResponse"; diff --git a/samples/client/petstore/typescript-inversify/IHttpClient.ts b/samples/client/petstore/typescript-inversify/IHttpClient.ts index b81c80a92a1..09f8fff96db 100644 --- a/samples/client/petstore/typescript-inversify/IHttpClient.ts +++ b/samples/client/petstore/typescript-inversify/IHttpClient.ts @@ -1,4 +1,4 @@ -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; import HttpResponse from "./HttpResponse"; import { Headers } from "./Headers"; diff --git a/samples/client/petstore/typescript-inversify/api/pet.service.ts b/samples/client/petstore/typescript-inversify/api/pet.service.ts index 52107821af5..06dbd62cdf3 100644 --- a/samples/client/petstore/typescript-inversify/api/pet.service.ts +++ b/samples/client/petstore/typescript-inversify/api/pet.service.ts @@ -11,19 +11,19 @@ */ /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; -import { map } from 'rxjs/operators'; +import { map } from "rxjs/operators"; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; import { Headers } from "../Headers"; import HttpResponse from "../HttpResponse"; -import { ApiResponse } from '../model/apiResponse'; -import { Pet } from '../model/pet'; +import { ApiResponse } from "../model/apiResponse"; +import { Pet } from "../model/pet"; -import { COLLECTION_FORMATS } from '../variables'; +import { COLLECTION_FORMATS } from "../variables"; @@ -40,14 +40,14 @@ export class PetService { /** * Add a new pet to the store * - * @param pet Pet object that needs to be added to the store + * @param body Pet object that needs to be added to the store */ - public addPet(pet: Pet, observe?: 'body', headers?: Headers): Observable<any>; - public addPet(pet: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public addPet(pet: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!pet){ - throw new Error('Required parameter pet was null or undefined when calling addPet.'); + public addPet(body: Pet, observe?: 'body', headers?: Headers): Observable<any>; + public addPet(body: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public addPet(body: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!body){ + throw new Error('Required parameter body was null or undefined when calling addPet.'); } // authentication (petstore_auth) required @@ -60,7 +60,7 @@ export class PetService { headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/pet`, pet , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/pet`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -148,12 +148,11 @@ export class PetService { * Finds Pets by tags * Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. * @param tags Tags to filter by - * @param maxCount Maximum number of items to return */ - public findPetsByTags(tags: Array<string>, maxCount?: number, observe?: 'body', headers?: Headers): Observable<Array<Pet>>; - public findPetsByTags(tags: Array<string>, maxCount?: number, observe?: 'response', headers?: Headers): Observable<HttpResponse<Array<Pet>>>; - public findPetsByTags(tags: Array<string>, maxCount?: number, observe: any = 'body', headers: Headers = {}): Observable<any> { + public findPetsByTags(tags: Array<string>, observe?: 'body', headers?: Headers): Observable<Array<Pet>>; + public findPetsByTags(tags: Array<string>, observe?: 'response', headers?: Headers): Observable<HttpResponse<Array<Pet>>>; + public findPetsByTags(tags: Array<string>, observe: any = 'body', headers: Headers = {}): Observable<any> { if (!tags){ throw new Error('Required parameter tags was null or undefined when calling findPetsByTags.'); } @@ -162,9 +161,6 @@ export class PetService { if (tags) { queryParameters.push("tags="+encodeURIComponent(tags.join(COLLECTION_FORMATS['csv']))); } - if (maxCount !== undefined) { - queryParameters.push("maxCount="+encodeURIComponent(String(maxCount))); - } // authentication (petstore_auth) required if (this.APIConfiguration.accessToken) { @@ -217,14 +213,14 @@ export class PetService { /** * Update an existing pet * - * @param pet Pet object that needs to be added to the store + * @param body Pet object that needs to be added to the store */ - public updatePet(pet: Pet, observe?: 'body', headers?: Headers): Observable<any>; - public updatePet(pet: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public updatePet(pet: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!pet){ - throw new Error('Required parameter pet was null or undefined when calling updatePet.'); + public updatePet(body: Pet, observe?: 'body', headers?: Headers): Observable<any>; + public updatePet(body: Pet, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public updatePet(body: Pet, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!body){ + throw new Error('Required parameter body was null or undefined when calling updatePet.'); } // authentication (petstore_auth) required @@ -237,7 +233,7 @@ export class PetService { headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/pet`, pet , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/pet`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) diff --git a/samples/client/petstore/typescript-inversify/api/store.service.ts b/samples/client/petstore/typescript-inversify/api/store.service.ts index f27c8c8178f..778e00e5c3a 100644 --- a/samples/client/petstore/typescript-inversify/api/store.service.ts +++ b/samples/client/petstore/typescript-inversify/api/store.service.ts @@ -11,18 +11,18 @@ */ /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; -import { map } from 'rxjs/operators'; +import { map } from "rxjs/operators"; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; import { Headers } from "../Headers"; import HttpResponse from "../HttpResponse"; -import { Order } from '../model/order'; +import { Order } from "../model/order"; -import { COLLECTION_FORMATS } from '../variables'; +import { COLLECTION_FORMATS } from "../variables"; @@ -113,20 +113,20 @@ export class StoreService { /** * Place an order for a pet * - * @param order order placed for purchasing the pet + * @param body order placed for purchasing the pet */ - public placeOrder(order: Order, observe?: 'body', headers?: Headers): Observable<Order>; - public placeOrder(order: Order, observe?: 'response', headers?: Headers): Observable<HttpResponse<Order>>; - public placeOrder(order: Order, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!order){ - throw new Error('Required parameter order was null or undefined when calling placeOrder.'); + public placeOrder(body: Order, observe?: 'body', headers?: Headers): Observable<Order>; + public placeOrder(body: Order, observe?: 'response', headers?: Headers): Observable<HttpResponse<Order>>; + public placeOrder(body: Order, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!body){ + throw new Error('Required parameter body was null or undefined when calling placeOrder.'); } headers['Accept'] = 'application/xml'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<Order>> = this.httpClient.post(`${this.basePath}/store/order`, order , headers); + const response: Observable<HttpResponse<Order>> = this.httpClient.post(`${this.basePath}/store/order`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <Order>(httpResponse.response)) diff --git a/samples/client/petstore/typescript-inversify/api/user.service.ts b/samples/client/petstore/typescript-inversify/api/user.service.ts index 1fd0e98afe7..f2e8b83c4ab 100644 --- a/samples/client/petstore/typescript-inversify/api/user.service.ts +++ b/samples/client/petstore/typescript-inversify/api/user.service.ts @@ -11,18 +11,18 @@ */ /* tslint:disable:no-unused-variable member-ordering */ -import { Observable } from 'rxjs/Observable'; +import { Observable } from "rxjs/Observable"; -import { map } from 'rxjs/operators'; +import { map } from "rxjs/operators"; import IHttpClient from "../IHttpClient"; import { inject, injectable } from "inversify"; import { IAPIConfiguration } from "../IAPIConfiguration"; import { Headers } from "../Headers"; import HttpResponse from "../HttpResponse"; -import { User } from '../model/user'; +import { User } from "../model/user"; -import { COLLECTION_FORMATS } from '../variables'; +import { COLLECTION_FORMATS } from "../variables"; @@ -39,21 +39,20 @@ export class UserService { /** * Create user * This can only be done by the logged in user. - * @param user Created user object + * @param body Created user object */ - public createUser(user: User, observe?: 'body', headers?: Headers): Observable<any>; - public createUser(user: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public createUser(user: User, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!user){ - throw new Error('Required parameter user was null or undefined when calling createUser.'); + public createUser(body: User, observe?: 'body', headers?: Headers): Observable<any>; + public createUser(body: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public createUser(body: User, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!body){ + throw new Error('Required parameter body was null or undefined when calling createUser.'); } - // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user`, user , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -66,21 +65,20 @@ export class UserService { /** * Creates list of users with given input array * - * @param user List of user object + * @param body List of user object */ - public createUsersWithArrayInput(user: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; - public createUsersWithArrayInput(user: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public createUsersWithArrayInput(user: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!user){ - throw new Error('Required parameter user was null or undefined when calling createUsersWithArrayInput.'); + public createUsersWithArrayInput(body: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; + public createUsersWithArrayInput(body: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public createUsersWithArrayInput(body: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!body){ + throw new Error('Required parameter body was null or undefined when calling createUsersWithArrayInput.'); } - // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithArray`, user , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithArray`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -93,21 +91,20 @@ export class UserService { /** * Creates list of users with given input array * - * @param user List of user object + * @param body List of user object */ - public createUsersWithListInput(user: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; - public createUsersWithListInput(user: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public createUsersWithListInput(user: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { - if (!user){ - throw new Error('Required parameter user was null or undefined when calling createUsersWithListInput.'); + public createUsersWithListInput(body: Array<User>, observe?: 'body', headers?: Headers): Observable<any>; + public createUsersWithListInput(body: Array<User>, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public createUsersWithListInput(body: Array<User>, observe: any = 'body', headers: Headers = {}): Observable<any> { + if (!body){ + throw new Error('Required parameter body was null or undefined when calling createUsersWithListInput.'); } - // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithList`, user , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.post(`${this.basePath}/user/createWithList`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) @@ -130,7 +127,6 @@ export class UserService { throw new Error('Required parameter username was null or undefined when calling deleteUser.'); } - // authentication (auth_cookie) required headers['Accept'] = 'application/json'; const response: Observable<HttpResponse<any>> = this.httpClient.delete(`${this.basePath}/user/${encodeURIComponent(String(username))}`, headers); @@ -214,7 +210,6 @@ export class UserService { public logoutUser(observe?: 'body', headers?: Headers): Observable<any>; public logoutUser(observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; public logoutUser(observe: any = 'body', headers: Headers = {}): Observable<any> { - // authentication (auth_cookie) required headers['Accept'] = 'application/json'; const response: Observable<HttpResponse<any>> = this.httpClient.get(`${this.basePath}/user/logout`, headers); @@ -231,25 +226,24 @@ export class UserService { * Updated user * This can only be done by the logged in user. * @param username name that need to be deleted - * @param user Updated user object + * @param body Updated user object */ - public updateUser(username: string, user: User, observe?: 'body', headers?: Headers): Observable<any>; - public updateUser(username: string, user: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; - public updateUser(username: string, user: User, observe: any = 'body', headers: Headers = {}): Observable<any> { + public updateUser(username: string, body: User, observe?: 'body', headers?: Headers): Observable<any>; + public updateUser(username: string, body: User, observe?: 'response', headers?: Headers): Observable<HttpResponse<any>>; + public updateUser(username: string, body: User, observe: any = 'body', headers: Headers = {}): Observable<any> { if (!username){ throw new Error('Required parameter username was null or undefined when calling updateUser.'); } - if (!user){ - throw new Error('Required parameter user was null or undefined when calling updateUser.'); + if (!body){ + throw new Error('Required parameter body was null or undefined when calling updateUser.'); } - // authentication (auth_cookie) required headers['Accept'] = 'application/json'; headers['Content-Type'] = 'application/json'; - const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/user/${encodeURIComponent(String(username))}`, user , headers); + const response: Observable<HttpResponse<any>> = this.httpClient.put(`${this.basePath}/user/${encodeURIComponent(String(username))}`, body , headers); if (observe == 'body') { return response.pipe( map(httpResponse => <any>(httpResponse.response)) -- GitLab From 2005c109a80f31a39368ab3d706d70a893b052f7 Mon Sep 17 00:00:00 2001 From: William Cheng <wing328hk@gmail.com> Date: Mon, 27 May 2019 21:13:12 +0800 Subject: [PATCH 10/10] update doc --- docs/generators/typescript-inversify.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/generators/typescript-inversify.md b/docs/generators/typescript-inversify.md index 4a7cbc73c4c..21e7c7dd326 100644 --- a/docs/generators/typescript-inversify.md +++ b/docs/generators/typescript-inversify.md @@ -19,4 +19,5 @@ sidebar_label: typescript-inversify |npmRepository|Use this property to set an url your private npmRepo in the package.json| |null| |withInterfaces|Setting this property to true will generate interfaces next to the default class implementations.| |false| |usePromise|Setting this property to use promise instead of observable inside every service.| |false| +|useRxJS6|Setting this property to use rxjs 6 instead of rxjs 5.| |false| |taggedUnions|Use discriminators to create tagged unions instead of extending interfaces.| |false| -- GitLab