Skip to content

Commit 737e6e5

Browse files
committed
feat: add different services & refactor ability to add .service .models extensions
1 parent dda85bd commit 737e6e5

22 files changed

+28671
-53
lines changed

src/HttpClient.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@ export enum HttpClient {
44
NODE = 'node',
55
AXIOS = 'axios',
66
ANGULAR = 'angular',
7+
SADDLEBACK = 'saddleback',
78
}

src/generate.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ export type Options = {
2424
postfix?: string;
2525
request?: string;
2626
write?: boolean;
27-
exportModelsFileExtension?: string;
27+
additionalModelFileExtension?: boolean;
28+
additionalServiceFileExtension?: boolean;
2829
};
2930
/**
3031
* Generate the OpenAPI client. This method will read the OpenAPI specification and based on the
@@ -44,7 +45,8 @@ export type Options = {
4445
* @param postfix Service name postfix
4546
* @param request Path to custom request file
4647
* @param write Write the files to disk (true or false)
47-
* @param exportModelsFileExtension File extension for models .ts as default
48+
* @param additionalModelFileExtension Add file extension for models *.models.*
49+
* @param additionalServiceFileExtension Add file extension for service *.service.*
4850
*/
4951
export const generate = async ({
5052
input,
@@ -61,6 +63,8 @@ export const generate = async ({
6163
postfix = 'Service',
6264
request,
6365
write = true,
66+
additionalModelFileExtension = false,
67+
additionalServiceFileExtension = false,
6468
}: Options): Promise<void> => {
6569
const openApi = isString(input) ? await getOpenApiSpec(input) : input;
6670
const openApiVersion = getOpenApiVersion(openApi);
@@ -88,6 +92,8 @@ export const generate = async ({
8892
exportSchemas,
8993
indent,
9094
postfix,
95+
additionalModelFileExtension,
96+
additionalServiceFileExtension,
9197
clientName,
9298
request
9399
);
@@ -111,6 +117,8 @@ export const generate = async ({
111117
exportSchemas,
112118
indent,
113119
postfix,
120+
additionalModelFileExtension,
121+
additionalServiceFileExtension,
114122
clientName,
115123
request
116124
);

src/generateCustomSpec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ type Config = Options & {
1313
filterArray: string[];
1414
input: string;
1515
useSaddlebackServices?: boolean;
16+
additionalModelFileExtension?: boolean;
17+
additionalServiceFileExtension?: boolean;
1618
};
1719

1820
export const generateCustomSpec = async (config: Config) => {

src/templates/client.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { {{{httpRequest}}} } from './core/{{{httpRequest}}}';
1616

1717
{{#if services}}
1818
{{#each services}}
19-
import { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}.service';
19+
import { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}';
2020
{{/each}}
2121
{{/if}}
2222

src/templates/exportModel.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{{#if imports}}
44

55
{{#each imports}}
6-
import type { {{{this}}} } from './{{{this}}}.models';
6+
import type { {{{this}}} } from './{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
77
{{/each}}
88
{{/if}}
99

src/templates/exportSaddlebackService.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{#if imports}}
22
{{#each imports}}
3-
import type { {{{this}}} } from '../models/{{{this}}}.models';
3+
import type { {{{this}}} } from '../models/{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
44
{{/each}}
55
{{/if}}
66
import axios, {

src/templates/exportService.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import type { Observable } from 'rxjs';
1313
{{/equals}}
1414
{{#if imports}}
1515
{{#each imports}}
16-
import type { {{{this}}} } from '../models/{{{this}}}.models';
16+
import type { {{{this}}} } from '../models/{{{this}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
1717
{{/each}}
1818

1919
{{/if}}

src/templates/index.hbs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ export type { OpenAPIConfig } from './core/OpenAPI';
1818

1919
{{#each models}}
2020
{{#if @root.useUnionTypes}}
21-
export type { {{{name}}} } from './models/{{{name}}}.models';
21+
export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
2222
{{else if enum}}
23-
export { {{{name}}} } from './models/{{{name}}}.models';
23+
export { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
2424
{{else if enums}}
25-
export { {{{name}}} } from './models/{{{name}}}.models';
25+
export { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
2626
{{else}}
27-
export type { {{{name}}} } from './models/{{{name}}}.models';
27+
export type { {{{name}}} } from './models/{{{name}}}{{#if ../additionalModelFileExtension}}.models{{/if}}';
2828
{{/if}}
2929
{{/each}}
3030
{{/if}}
@@ -41,7 +41,7 @@ export { ${{{name}}} } from './schemas/${{{name}}}';
4141
{{#if services}}
4242

4343
{{#each services}}
44-
export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}.service';
44+
export { {{{name}}}{{{@root.postfix}}} } from './services/{{{name}}}{{{@root.postfix}}}{{#if ../additionalServiceFileExtension}}.service{{/if}}';
4545
{{/each}}
4646
{{/if}}
4747
{{/if}}

src/utils/getHttpRequestName.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,7 @@ export const getHttpRequestName = (httpClient: HttpClient): string => {
1616
return 'AxiosHttpRequest';
1717
case HttpClient.ANGULAR:
1818
return 'AngularHttpRequest';
19+
case HttpClient.SADDLEBACK:
20+
return 'AxiosHttpRequest';
1921
}
2022
};

src/utils/writeClient.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ describe('writeClient', () => {
5050
true,
5151
Indent.SPACE_4,
5252
'Service',
53+
false,
54+
false,
5355
'AppClient'
5456
);
5557

0 commit comments

Comments
 (0)