From 4a8db23dd3838b6f15ffc3fc463eb536740c0df2 Mon Sep 17 00:00:00 2001 From: Ferdi Koomen Date: Tue, 16 Jun 2020 23:08:25 +0200 Subject: [PATCH] - Not exporting unused exports --- package.json | 2 +- src/templates/exportService.hbs | 6 ++++++ src/utils/writeClientServices.ts | 6 ++++++ test/__snapshots__/index.spec.js.snap | 24 ++++++++++++------------ 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index c1206e7d..2ac420b4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openapi-typescript-codegen", - "version": "0.4.1", + "version": "0.4.4", "description": "NodeJS library that generates Typescript or Javascript clients based on the OpenAPI specification.", "author": "Ferdi Koomen", "homepage": "https://github.com/ferdikoomen/openapi-typescript-codegen", diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index ec2f3c5b..2d3fe4cd 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -8,9 +8,15 @@ import { {{{this}}} } from '../models/{{{this}}}'; {{/each}} {{/if}} +{{#if hasApiErrors}} import { ApiError, catchGenericError } from '../core/ApiError'; +{{else}} +import { catchGenericError } from '../core/ApiError'; +{{/if}} import { request as __request } from '../core/request'; +{{#if hasApiVersion}} import { OpenAPI } from '../core/OpenAPI'; +{{/if}} export class {{{name}}} { diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index ccf5753a..82bc46a8 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -5,6 +5,8 @@ import { writeFile } from './fileSystem'; import { format } from './format'; import { Templates } from './registerHandlebarTemplates'; +const VERSION_TEMPLATE_STRING = 'OpenAPI.VERSION'; + /** * Generate Services using the Handlebar template and write to disk. * @param services Array of Services to write. @@ -15,8 +17,12 @@ import { Templates } from './registerHandlebarTemplates'; export async function writeClientServices(services: Service[], templates: Templates, outputPath: string, useOptions: boolean): Promise { for (const service of services) { const file = path.resolve(outputPath, `${service.name}.ts`); + const hasApiErrors = service.operations.some(operation => operation.errors.length); + const hasApiVersion = service.operations.some(operation => operation.path.includes(VERSION_TEMPLATE_STRING)); const templateResult = templates.service({ ...service, + hasApiErrors, + hasApiVersion, useOptions, }); await writeFile(file, format(templateResult)); diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 549ea24e..692448d5 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -2024,7 +2024,7 @@ exports[`v2 should generate: ./test/result/v2/services/DefaultsService.ts 1`] = import { ModelThatExtends } from '../models/ModelThatExtends'; import { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; import { ModelWithString } from '../models/ModelWithString'; -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -2164,7 +2164,7 @@ exports[`v2 should generate: ./test/result/v2/services/DuplicateService.ts 1`] = /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -2278,7 +2278,7 @@ exports[`v2 should generate: ./test/result/v2/services/ParametersService.ts 1`] /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -2464,7 +2464,7 @@ exports[`v2 should generate: ./test/result/v2/services/SimpleService.ts 1`] = ` /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -2585,7 +2585,7 @@ exports[`v2 should generate: ./test/result/v2/services/TypesService.ts 1`] = ` /* prettier-ignore */ import { Dictionary } from '../models/Dictionary'; -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -4801,7 +4801,7 @@ exports[`v3 should generate: ./test/result/v3/services/DefaultsService.ts 1`] = import { ModelThatExtends } from '../models/ModelThatExtends'; import { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; import { ModelWithString } from '../models/ModelWithString'; -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -4941,7 +4941,7 @@ exports[`v3 should generate: ./test/result/v3/services/DuplicateService.ts 1`] = /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -5055,7 +5055,7 @@ exports[`v3 should generate: ./test/result/v3/services/MultipartService.ts 1`] = /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -5095,7 +5095,7 @@ exports[`v3 should generate: ./test/result/v3/services/ParametersService.ts 1`] import { ModelThatExtends } from '../models/ModelThatExtends'; import { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; import { ModelWithString } from '../models/ModelWithString'; -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -5347,7 +5347,7 @@ exports[`v3 should generate: ./test/result/v3/services/SimpleService.ts 1`] = ` /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -5467,7 +5467,7 @@ exports[`v3 should generate: ./test/result/v3/services/TypesService.ts 1`] = ` /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -5536,7 +5536,7 @@ exports[`v3 should generate: ./test/result/v3/services/UploadService.ts 1`] = ` /* eslint-disable */ /* prettier-ignore */ -import { ApiError, catchGenericError } from '../core/ApiError'; +import { catchGenericError } from '../core/ApiError'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI';