Skip to content

Commit 9c9fae2

Browse files
PE-2152 - add multiple http clients
1 parent e23135a commit 9c9fae2

14 files changed

+1005
-44
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,4 @@ test/e2e/generated
1515
samples/generated
1616
samples/swagger-codegen-cli-v2.jar
1717
samples/swagger-codegen-cli-v3.jar
18+
example

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
2-
"name": "openapi-typescript-codegen",
3-
"version": "0.9.3",
2+
"name": "@parsable/openapi-typescript-codegen",
3+
"version": "0.0.1-alpha-2",
44
"description": "Library that generates Typescript clients based on the OpenAPI specification.",
55
"author": "Ferdi Koomen",
66
"homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen",

src/utils/registerHandlebarTemplates.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ describe('registerHandlebarTemplates', () => {
1616
expect(templates.core.apiError).toBeDefined();
1717
expect(templates.core.apiRequestOptions).toBeDefined();
1818
expect(templates.core.apiResult).toBeDefined();
19-
expect(templates.core.concreteHttpRequest).toBeDefined();
19+
expect(templates.core.request).toBeDefined();
2020
expect(templates.core.baseHttpRequest).toBeDefined();
2121
expect(templates.client).toBeDefined();
2222
});

src/utils/registerHandlebarTemplates.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import templateCoreApiError from '../templates/core/ApiError.hbs';
55
import templateCoreApiRequestOptions from '../templates/core/ApiRequestOptions.hbs';
66
import templateCoreApiResult from '../templates/core/ApiResult.hbs';
77
import templateCoreBaseHttpClient from '../templates/core/BaseHttpRequest.hbs';
8-
import templateCoreConcreteHttpClient from '../templates/core/ConcreteHttpRequest.hbs';
98
import fetchGetHeaders from '../templates/core/fetch/getHeaders.hbs';
109
import fetchGetRequestBody from '../templates/core/fetch/getRequestBody.hbs';
1110
import fetchGetResponseBody from '../templates/core/fetch/getResponseBody.hbs';
@@ -30,6 +29,7 @@ import nodeGetResponseHeader from '../templates/core/node/getResponseHeader.hbs'
3029
import nodeRequest from '../templates/core/node/request.hbs';
3130
import nodeSendRequest from '../templates/core/node/sendRequest.hbs';
3231
import templateCoreSettings from '../templates/core/OpenAPI.hbs';
32+
import templateCoreRequest from '../templates/core/request.hbs';
3333
import xhrGetHeaders from '../templates/core/xhr/getHeaders.hbs';
3434
import xhrGetRequestBody from '../templates/core/xhr/getRequestBody.hbs';
3535
import xhrGetResponseBody from '../templates/core/xhr/getResponseBody.hbs';
@@ -84,7 +84,12 @@ export interface Templates {
8484
apiRequestOptions: Handlebars.TemplateDelegate;
8585
apiResult: Handlebars.TemplateDelegate;
8686
baseHttpRequest: Handlebars.TemplateDelegate;
87-
concreteHttpRequest: Handlebars.TemplateDelegate;
87+
request: Handlebars.TemplateDelegate;
88+
httpRequest: {
89+
fetch: Handlebars.TemplateDelegate;
90+
node: Handlebars.TemplateDelegate;
91+
xhr: Handlebars.TemplateDelegate;
92+
};
8893
};
8994
}
9095

@@ -110,7 +115,12 @@ export function registerHandlebarTemplates(root: { httpClient: HttpClient; useOp
110115
apiRequestOptions: Handlebars.template(templateCoreApiRequestOptions),
111116
apiResult: Handlebars.template(templateCoreApiResult),
112117
baseHttpRequest: Handlebars.template(templateCoreBaseHttpClient),
113-
concreteHttpRequest: Handlebars.template(templateCoreConcreteHttpClient),
118+
request: Handlebars.template(templateCoreRequest),
119+
httpRequest: {
120+
fetch: Handlebars.template(fetchRequest),
121+
node: Handlebars.template(nodeRequest),
122+
xhr: Handlebars.template(xhrRequest),
123+
},
114124
},
115125
};
116126

src/utils/writeAppClient.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ describe('writeAppClient', () => {
2929
apiRequestOptions: () => 'apiRequestOptions',
3030
apiResult: () => 'apiResult',
3131
baseHttpRequest: () => 'baseHttpRequest',
32-
concreteHttpRequest: () => 'concreteHttpRequest',
32+
request: () => 'concreteHttpRequest',
33+
httpRequest: {
34+
fetch: () => 'fetchRequest',
35+
node: () => 'nodeRequest',
36+
xhr: () => 'xhrRequest',
37+
},
3338
},
3439
};
3540

src/utils/writeClient.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe('writeClient', () => {
2929
apiRequestOptions: () => 'apiRequestOptions',
3030
apiResult: () => 'apiResult',
3131
baseHttpRequest: () => 'baseHttpRequest',
32-
concreteHttpRequest: () => 'concreteHttpRequest',
32+
request: () => 'concreteHttpRequest',
3333
},
3434
};
3535

src/utils/writeClientCore.spec.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@ describe('writeClientCore', () => {
2828
apiRequestOptions: () => 'apiRequestOptions',
2929
apiResult: () => 'apiResult',
3030
baseHttpRequest: () => 'baseHttpRequest',
31-
concreteHttpRequest: () => 'concreteHttpRequest',
31+
request: () => 'request',
32+
httpRequest: {
33+
fetch: () => 'fetchRequest',
34+
node: () => 'nodeRequest',
35+
xhr: () => 'xhrRequest',
36+
},
3237
},
3338
};
3439

@@ -39,7 +44,7 @@ describe('writeClientCore', () => {
3944
expect(writeFile).toBeCalledWith('/ApiError.ts', 'apiError');
4045
expect(writeFile).toBeCalledWith('/ApiRequestOptions.ts', 'apiRequestOptions');
4146
expect(writeFile).toBeCalledWith('/ApiResult.ts', 'apiResult');
42-
expect(writeFile).toBeCalledWith('/request.ts', 'concreteHttpRequest');
47+
expect(writeFile).toBeCalledWith('/request.ts', 'request');
4348
});
4449

4550
it('should write to filesystem when exportClient true', async () => {
@@ -50,6 +55,8 @@ describe('writeClientCore', () => {
5055
expect(writeFile).toBeCalledWith('/ApiRequestOptions.ts', 'apiRequestOptions');
5156
expect(writeFile).toBeCalledWith('/ApiResult.ts', 'apiResult');
5257
expect(writeFile).toBeCalledWith('/BaseHttpRequest.ts', 'baseHttpRequest');
53-
expect(writeFile).toBeCalledWith('/FetchHttpRequest.ts', 'concreteHttpRequest');
58+
expect(writeFile).toBeCalledWith('/FetchHttpRequest.ts', 'fetchRequest');
59+
expect(writeFile).toBeCalledWith('/NodeHttpRequest.ts', 'nodeRequest');
60+
expect(writeFile).toBeCalledWith('/XhrHttpRequest.ts', 'xhrRequest');
5461
});
5562
});

src/utils/writeClientCore.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@ export async function writeClientCore(client: Client, templates: Templates, outp
2929
await writeFile(resolve(outputPath, 'ApiResult.ts'), templates.core.apiResult({}));
3030
if (exportClient) {
3131
await writeFile(resolve(outputPath, 'BaseHttpRequest.ts'), templates.core.baseHttpRequest({}));
32-
await writeFile(resolve(outputPath, `${getHttpRequestName(httpClient)}.ts`), templates.core.concreteHttpRequest(context));
32+
for (const client of Object.values(HttpClient)) {
33+
await writeFile(resolve(outputPath, `${getHttpRequestName(client)}.ts`), templates.core.httpRequest[client](context));
34+
}
3335
} else {
34-
await writeFile(resolve(outputPath, `request.ts`), templates.core.concreteHttpRequest(context));
36+
await writeFile(resolve(outputPath, `request.ts`), templates.core.request(context));
3537
}
3638

3739
if (request) {

src/utils/writeClientIndex.spec.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,12 @@ describe('writeClientIndex', () => {
2929
apiRequestOptions: () => 'apiRequestOptions',
3030
apiResult: () => 'apiResult',
3131
baseHttpRequest: () => 'baseHttpClient',
32-
concreteHttpRequest: () => 'concreteHttpClient',
32+
request: () => 'request',
33+
httpRequest: {
34+
fetch: () => 'fetchRequest',
35+
node: () => 'nodeRequest',
36+
xhr: () => 'xhrRequest',
37+
},
3338
},
3439
};
3540

0 commit comments

Comments
 (0)