Skip to content

Commit 4c5ac0d

Browse files
Merge pull request #5 from parsable/feature/PE-2380
PE-2380 - properly generate client when no tags used
2 parents 537a23d + ad6dac9 commit 4c5ac0d

File tree

9 files changed

+7093
-4797
lines changed

9 files changed

+7093
-4797
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@parsable/openapi-typescript-codegen",
3-
"version": "0.0.3",
3+
"version": "0.0.4",
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/templates/exportAppClient.hbs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,11 @@ import {
1010
{{/each}}
1111
} from './services';
1212
{{/if}}
13+
{{#if service}}
14+
import { {{{service.name}}} } from './services';
15+
{{/if}}
1316

14-
export class {{{clientName}}} {
17+
export class {{{clientName}}} {{#if service}}extends {{{service.name}}} {{/if}}{
1518
{{#each services}}
1619
readonly {{{shortName}}}: {{{name}}};
1720
{{/each}}
@@ -26,6 +29,9 @@ export class {{{clientName}}} {
2629
password: clientConfig?.password,
2730
headers: clientConfig?.headers,
2831
}
32+
{{#if service}}
33+
super(httpClient, config);
34+
{{/if}}
2935
{{#each services}}
3036
this.{{{shortName}}} = new {{{name}}}(httpClient, config);
3137
{{/each}}

src/utils/writeAppClient.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@ export async function writeAppClient(client: Client, templates: Templates, outpu
1919
await writeFile(
2020
resolve(outputPath, 'client.ts'),
2121
templates.client({
22-
services: sortServicesByName(client.services).map(s => ({
23-
name: s.name,
24-
shortName: s.name.replace('Service', '').toLowerCase(),
25-
})),
22+
services: sortServicesByName(client.services)
23+
.filter(s => s.name !== 'Service')
24+
.map(s => ({
25+
name: s.name,
26+
shortName: s.name.replace('Service', '').toLowerCase(),
27+
})),
28+
service: client.services.find(s => s.name === 'Service'),
2629
clientName,
2730
httpClientRequest: getHttpRequestName(httpClient),
2831
server: client.server,

0 commit comments

Comments
 (0)