Skip to content

Commit 988d83e

Browse files
committed
adds an importExtension option
1 parent 6003b2c commit 988d83e

27 files changed

+107
-63
lines changed

bin/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const params = program
1616
.option('--name <value>', 'Custom client class name')
1717
.option('--useOptions', 'Use options instead of arguments')
1818
.option('--splitParameters', 'User arguments for path parameters and options for query parameters')
19+
.option('--importExtension', 'Add .js extension to import statements')
1920
.option('--useUnionTypes', 'Use union types instead of enums')
2021
.option('--exportCore <value>', 'Write core files to disk', true)
2122
.option('--exportServices <value>', 'Write services to disk', true)
@@ -38,6 +39,7 @@ if (OpenAPI) {
3839
clientName: params.name,
3940
useOptions: params.useOptions,
4041
splitParameters: params.splitParameters,
42+
importExtension: params.importExtension,
4143
useUnionTypes: params.useUnionTypes,
4244
exportCore: JSON.parse(params.exportCore) === true,
4345
exportServices: JSON.parse(params.exportServices) === true,

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@
4747
"eslint:fix": "eslint . --fix",
4848
"prepare": "npm run clean && npm run release",
4949
"generate-spa-codacy": "npm run build && rimraf ./generated && node ./bin/index.js --input ./samples/spec/codacy-api.yaml --output ./generated --useUnionTypes --indent 2 --client fetch --splitParameters",
50-
"generate-ide-codacy": "npm run build && rimraf ./generated && node ./bin/index.js --input ./samples/spec/codacy-api.yaml --output ./generated --useUnionTypes --indent 2 --client axios"
50+
"generate-ide-codacy": "npm run build && rimraf ./generated && node ./bin/index.js --input ./samples/spec/codacy-api.yaml --output ./generated --useUnionTypes --indent 2 --client axios",
51+
"generate-mcp-codacy": "npm run build && rimraf ./generated && node ./bin/index.js --input ./samples/spec/codacy-api.yaml --output ./generated --useUnionTypes --indent 2 --client fetch --importExtension"
5152
},
5253
"dependencies": {
5354
"@apidevtools/json-schema-ref-parser": "^10.1.0",

src/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export type Options = {
1919
clientName?: string;
2020
useOptions?: boolean;
2121
splitParameters?: boolean;
22+
importExtension?: boolean;
2223
useUnionTypes?: boolean;
2324
exportCore?: boolean;
2425
exportServices?: boolean;
@@ -41,6 +42,7 @@ export type Options = {
4142
* @param clientName Custom client class name
4243
* @param useOptions Use options or arguments functions
4344
* @param splitParameters User arguments for path parameters and options for query parameters
45+
* @param importExtension Add .js extension to import statements
4446
* @param useUnionTypes Use union types instead of enums
4547
* @param exportCore Generate core client classes
4648
* @param exportServices Generate services
@@ -59,6 +61,7 @@ export const generate = async ({
5961
clientName,
6062
useOptions = false,
6163
splitParameters = false,
64+
importExtension = false,
6265
useUnionTypes = false,
6366
exportCore = true,
6467
exportServices = true,
@@ -90,6 +93,7 @@ export const generate = async ({
9093
httpClient,
9194
useOptions,
9295
splitParameters,
96+
importExtension,
9397
useUnionTypes,
9498
exportCore,
9599
exportServices,
@@ -115,6 +119,7 @@ export const generate = async ({
115119
httpClient,
116120
useOptions,
117121
splitParameters,
122+
importExtension,
118123
useUnionTypes,
119124
exportCore,
120125
exportServices,

src/templates/core/ApiError.hbs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{{>header}}
22

3-
import type { ApiRequestOptions } from './ApiRequestOptions';
4-
import type { ApiResult } from './ApiResult';
3+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
4+
import type { ApiResult } from './ApiResult{{#if @root.importExtension}}.js{{/if}}';
55

66
export class ApiError extends Error {
77
public readonly url: string;

src/templates/core/BaseHttpRequest.hbs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
import type { HttpClient } from '@angular/common/http';
55
import type { Observable } from 'rxjs';
66

7-
import type { ApiRequestOptions } from './ApiRequestOptions';
7+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
88
import type { OpenAPIConfig } from './OpenAPI';
99
{{else}}
10-
import type { ApiRequestOptions } from './ApiRequestOptions';
11-
import type { CancelablePromise } from './CancelablePromise';
12-
import type { OpenAPIConfig } from './OpenAPI';
10+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
11+
import type { CancelablePromise } from './CancelablePromise{{#if @root.importExtension}}.js{{/if}}';
12+
import type { OpenAPIConfig } from './OpenAPI{{#if @root.importExtension}}.js{{/if}}';
1313
{{/equals}}
1414

1515
export abstract class BaseHttpRequest {

src/templates/core/HttpRequest.hbs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ import { Inject, Injectable } from '@angular/core';
55
import { HttpClient } from '@angular/common/http';
66
import type { Observable } from 'rxjs';
77

8-
import type { ApiRequestOptions } from './ApiRequestOptions';
8+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
99
import { BaseHttpRequest } from './BaseHttpRequest';
1010
import type { OpenAPIConfig } from './OpenAPI';
1111
import { OpenAPI } from './OpenAPI';
1212
import { request as __request } from './request';
1313
{{else}}
14-
import type { ApiRequestOptions } from './ApiRequestOptions';
15-
import { BaseHttpRequest } from './BaseHttpRequest';
16-
import type { CancelablePromise } from './CancelablePromise';
17-
import type { OpenAPIConfig } from './OpenAPI';
18-
import { request as __request } from './request';
14+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
15+
import { BaseHttpRequest } from './BaseHttpRequest{{#if @root.importExtension}}.js{{/if}}';
16+
import type { CancelablePromise } from './CancelablePromise{{#if @root.importExtension}}.js{{/if}}';
17+
import type { OpenAPIConfig } from './OpenAPI{{#if @root.importExtension}}.js{{/if}}';
18+
import { request as __request } from './request{{#if @root.importExtension}}.js{{/if}}';
1919
{{/equals}}
2020

2121
{{#equals @root.httpClient 'angular'}}

src/templates/core/OpenAPI.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{{>header}}
22

3-
import type { ApiRequestOptions } from './ApiRequestOptions';
3+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
44

55
type Resolver<T> = (options: ApiRequestOptions) => Promise<T | undefined>;
66
type Headers = Record<string, string>;

src/templates/core/angular/request.hbs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { catchError, map, switchMap } from 'rxjs/operators';
77
import type { Observable } from 'rxjs';
88

99
import { ApiError } from './ApiError';
10-
import type { ApiRequestOptions } from './ApiRequestOptions';
10+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
1111
import type { ApiResult } from './ApiResult';
1212
import type { OpenAPIConfig } from './OpenAPI';
1313

src/templates/core/axios/request.hbs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ import axios from 'axios';
44
import type { AxiosError, AxiosRequestConfig, AxiosResponse, AxiosInstance } from 'axios';
55
import FormData from 'form-data';
66

7-
import { ApiError } from './ApiError';
8-
import type { ApiRequestOptions } from './ApiRequestOptions';
9-
import type { ApiResult } from './ApiResult';
10-
import { CancelablePromise } from './CancelablePromise';
11-
import type { OnCancel } from './CancelablePromise';
12-
import type { OpenAPIConfig } from './OpenAPI';
7+
import { ApiError } from './ApiError{{#if @root.importExtension}}.js{{/if}}';
8+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
9+
import type { ApiResult } from './ApiResult{{#if @root.importExtension}}.js{{/if}}';
10+
import { CancelablePromise } from './CancelablePromise{{#if @root.importExtension}}.js{{/if}}';
11+
import type { OnCancel } from './CancelablePromise{{#if @root.importExtension}}.js{{/if}}';
12+
import type { OpenAPIConfig } from './OpenAPI{{#if @root.importExtension}}.js{{/if}}';
1313

1414
{{>functions/isDefined}}
1515

src/templates/core/fetch/request.hbs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{{>header}}
22

3-
import { ApiError } from './ApiError';
4-
import type { ApiRequestOptions } from './ApiRequestOptions';
5-
import type { ApiResult } from './ApiResult';
6-
import { CancelablePromise } from './CancelablePromise';
7-
import type { OnCancel } from './CancelablePromise';
8-
import type { OpenAPIConfig } from './OpenAPI';
3+
import { ApiError } from './ApiError{{#if @root.importExtension}}.js{{/if}}';
4+
import type { ApiRequestOptions } from './ApiRequestOptions{{#if @root.importExtension}}.js{{/if}}';
5+
import type { ApiResult } from './ApiResult{{#if @root.importExtension}}.js{{/if}}';
6+
import { CancelablePromise } from './CancelablePromise{{#if @root.importExtension}}.js{{/if}}';
7+
import type { OnCancel } from './CancelablePromise{{#if @root.importExtension}}.js{{/if}}';
8+
import type { OpenAPIConfig } from './OpenAPI{{#if @root.importExtension}}.js{{/if}}';
99

1010
{{>functions/isDefined}}
1111

0 commit comments

Comments
 (0)