diff --git a/.babelrc.js b/.babelrc.js index 1e643954..26c0ef6a 100644 --- a/.babelrc.js +++ b/.babelrc.js @@ -4,9 +4,11 @@ module.exports = { presets: [ ['@babel/preset-env', { targets: { - node: 'current' - } + node: true, + }, + }], + ['@babel/preset-typescript', { + onlyRemoveTypeImports: true, }], - '@babel/preset-typescript', ], }; diff --git a/jest.config.js b/jest.config.js index 06726c01..cbaeb2ca 100644 --- a/jest.config.js +++ b/jest.config.js @@ -15,13 +15,13 @@ module.exports = { displayName: 'E2E', testEnvironment: 'node', testMatch: [ - // '/test/e2e/v2.fetch.spec.js', - // '/test/e2e/v2.xhr.spec.js', - // '/test/e2e/v2.node.spec.js', - // '/test/e2e/v2.babel.spec.js', - // '/test/e2e/v3.fetch.spec.js', - // '/test/e2e/v3.xhr.spec.js', - // '/test/e2e/v3.node.spec.js', + '/test/e2e/v2.fetch.spec.js', + '/test/e2e/v2.xhr.spec.js', + '/test/e2e/v2.node.spec.js', + '/test/e2e/v2.babel.spec.js', + '/test/e2e/v3.fetch.spec.js', + '/test/e2e/v3.xhr.spec.js', + '/test/e2e/v3.node.spec.js', '/test/e2e/v3.babel.spec.js', ], }, diff --git a/package.json b/package.json index 0ffe62a1..b2c53f97 100644 --- a/package.json +++ b/package.json @@ -59,8 +59,7 @@ "prettier": "prettier \"./src/**/*.ts\" \"./bin/index.js\" --check", "prettier:fix": "prettier \"./src/**/*.ts\" \"./bin/index.js\" --write", "prepublish": "yarn run clean && yarn run release", - "codecov": "codecov --token=66c30c23-8954-4892-bef9-fbaed0a2e42b", - "aap": "node test/e2e/index.js" + "codecov": "codecov --token=66c30c23-8954-4892-bef9-fbaed0a2e42b" }, "dependencies": { "@types/node-fetch": "2.5.7", diff --git a/src/client/interfaces/Client.d.ts b/src/client/interfaces/Client.d.ts index 59d0c768..844e2c6f 100644 --- a/src/client/interfaces/Client.d.ts +++ b/src/client/interfaces/Client.d.ts @@ -1,5 +1,5 @@ -import { Model } from './Model'; -import { Service } from './Service'; +import type { Model } from './Model'; +import type { Service } from './Service'; export interface Client { version: string; diff --git a/src/client/interfaces/Model.d.ts b/src/client/interfaces/Model.d.ts index 13e722cb..9d2da542 100644 --- a/src/client/interfaces/Model.d.ts +++ b/src/client/interfaces/Model.d.ts @@ -1,5 +1,5 @@ -import { Enum } from './Enum'; -import { Schema } from './Schema'; +import type { Enum } from './Enum'; +import type { Schema } from './Schema'; export interface Model extends Schema { name: string; diff --git a/src/client/interfaces/Operation.d.ts b/src/client/interfaces/Operation.d.ts index 59fb7371..77914432 100644 --- a/src/client/interfaces/Operation.d.ts +++ b/src/client/interfaces/Operation.d.ts @@ -1,6 +1,6 @@ -import { OperationError } from './OperationError'; -import { OperationParameters } from './OperationParameters'; -import { OperationResponse } from './OperationResponse'; +import type { OperationError } from './OperationError'; +import type { OperationParameters } from './OperationParameters'; +import type { OperationResponse } from './OperationResponse'; export interface Operation extends OperationParameters { service: string; diff --git a/src/client/interfaces/OperationParameter.d.ts b/src/client/interfaces/OperationParameter.d.ts index 0fea3746..403d57e2 100644 --- a/src/client/interfaces/OperationParameter.d.ts +++ b/src/client/interfaces/OperationParameter.d.ts @@ -1,4 +1,4 @@ -import { Model } from './Model'; +import type { Model } from './Model'; export interface OperationParameter extends Model { in: 'path' | 'query' | 'header' | 'formData' | 'body' | 'cookie'; diff --git a/src/client/interfaces/OperationParameters.d.ts b/src/client/interfaces/OperationParameters.d.ts index b2e0240f..43419438 100644 --- a/src/client/interfaces/OperationParameters.d.ts +++ b/src/client/interfaces/OperationParameters.d.ts @@ -1,4 +1,4 @@ -import { OperationParameter } from './OperationParameter'; +import type { OperationParameter } from './OperationParameter'; export interface OperationParameters { imports: string[]; diff --git a/src/client/interfaces/OperationResponse.d.ts b/src/client/interfaces/OperationResponse.d.ts index afdb668c..0eed9153 100644 --- a/src/client/interfaces/OperationResponse.d.ts +++ b/src/client/interfaces/OperationResponse.d.ts @@ -1,4 +1,4 @@ -import { Model } from './Model'; +import type { Model } from './Model'; export interface OperationResponse extends Model { in: 'response' | 'header'; diff --git a/src/client/interfaces/Service.d.ts b/src/client/interfaces/Service.d.ts index f7861cd2..9ab21ebe 100644 --- a/src/client/interfaces/Service.d.ts +++ b/src/client/interfaces/Service.d.ts @@ -1,4 +1,4 @@ -import { Operation } from './Operation'; +import type { Operation } from './Operation'; export interface Service { name: string; diff --git a/src/index.ts b/src/index.ts index 609263df..cc20b3c8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -30,16 +30,16 @@ export interface Options { * Generate the OpenAPI client. This method will read the OpenAPI specification and based on the * given language it will generate the client, including the typed models, validation schemas, * service layer, etc. - * @param input The relative location of the OpenAPI spec. - * @param output The relative location of the output directory. - * @param httpClient The selected httpClient (fetch or XHR). - * @param useOptions Use options or arguments functions. - * @param useUnionTypes Use inclusive union types. - * @param exportCore: Generate core client classes. - * @param exportServices: Generate services. - * @param exportModels: Generate models. - * @param exportSchemas: Generate schemas. - * @param write Write the files to disk (true or false). + * @param input The relative location of the OpenAPI spec + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch or XHR) + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore: Generate core client classes + * @param exportServices: Generate services + * @param exportModels: Generate models + * @param exportSchemas: Generate schemas + * @param write Write the files to disk (true or false) */ export async function generate({ input, @@ -53,8 +53,6 @@ export async function generate({ exportSchemas = false, write = true, }: Options): Promise { - // Load the specification, read the OpenAPI version and load the - // handlebar templates for the given language const openApi = isString(input) ? await getOpenApiSpec(input) : input; const openApiVersion = getOpenApiVersion(openApi); const templates = registerHandlebarTemplates(); diff --git a/src/openApi/v2/index.ts b/src/openApi/v2/index.ts index 342bede8..30bd05cc 100644 --- a/src/openApi/v2/index.ts +++ b/src/openApi/v2/index.ts @@ -1,5 +1,5 @@ -import { Client } from '../../client/interfaces/Client'; -import { OpenApi } from './interfaces/OpenApi'; +import type { Client } from '../../client/interfaces/Client'; +import type { OpenApi } from './interfaces/OpenApi'; import { getModels } from './parser/getModels'; import { getServer } from './parser/getServer'; import { getServices } from './parser/getServices'; diff --git a/src/openApi/v2/interfaces/OpenApi.d.ts b/src/openApi/v2/interfaces/OpenApi.d.ts index 04629930..1479c31a 100644 --- a/src/openApi/v2/interfaces/OpenApi.d.ts +++ b/src/openApi/v2/interfaces/OpenApi.d.ts @@ -1,13 +1,13 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; -import { OpenApiInfo } from './OpenApiInfo'; -import { OpenApiParameter } from './OpenApiParameter'; -import { OpenApiPath } from './OpenApiPath'; -import { OpenApiResponse } from './OpenApiResponse'; -import { OpenApiSchema } from './OpenApiSchema'; -import { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; -import { OpenApiSecurityScheme } from './OpenApiSecurityScheme'; -import { OpenApiTag } from './OpenApiTag'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiInfo } from './OpenApiInfo'; +import type { OpenApiParameter } from './OpenApiParameter'; +import type { OpenApiPath } from './OpenApiPath'; +import type { OpenApiResponse } from './OpenApiResponse'; +import type { OpenApiSchema } from './OpenApiSchema'; +import type { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; +import type { OpenApiSecurityScheme } from './OpenApiSecurityScheme'; +import type { OpenApiTag } from './OpenApiTag'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md diff --git a/src/openApi/v2/interfaces/OpenApiHeader.d.ts b/src/openApi/v2/interfaces/OpenApiHeader.d.ts index 83c2a7e0..ddb9c7d5 100644 --- a/src/openApi/v2/interfaces/OpenApiHeader.d.ts +++ b/src/openApi/v2/interfaces/OpenApiHeader.d.ts @@ -1,5 +1,5 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiItems } from './OpenApiItems'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiItems } from './OpenApiItems'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#headerObject diff --git a/src/openApi/v2/interfaces/OpenApiInfo.d.ts b/src/openApi/v2/interfaces/OpenApiInfo.d.ts index efa6d8ba..208dec9f 100644 --- a/src/openApi/v2/interfaces/OpenApiInfo.d.ts +++ b/src/openApi/v2/interfaces/OpenApiInfo.d.ts @@ -1,5 +1,5 @@ -import { OpenApiContact } from './OpenApiContact'; -import { OpenApiLicense } from './OpenApiLicense'; +import type { OpenApiContact } from './OpenApiContact'; +import type { OpenApiLicense } from './OpenApiLicense'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#infoObject diff --git a/src/openApi/v2/interfaces/OpenApiItems.d.ts b/src/openApi/v2/interfaces/OpenApiItems.d.ts index f3aa8425..de269d65 100644 --- a/src/openApi/v2/interfaces/OpenApiItems.d.ts +++ b/src/openApi/v2/interfaces/OpenApiItems.d.ts @@ -1,4 +1,4 @@ -import { WithEnumExtension } from './Extensions/WithEnumExtension'; +import type { WithEnumExtension } from './Extensions/WithEnumExtension'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#itemsObject diff --git a/src/openApi/v2/interfaces/OpenApiOperation.d.ts b/src/openApi/v2/interfaces/OpenApiOperation.d.ts index d3881e88..b0b17022 100644 --- a/src/openApi/v2/interfaces/OpenApiOperation.d.ts +++ b/src/openApi/v2/interfaces/OpenApiOperation.d.ts @@ -1,7 +1,7 @@ -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; -import { OpenApiParameter } from './OpenApiParameter'; -import { OpenApiResponses } from './OpenApiResponses'; -import { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiParameter } from './OpenApiParameter'; +import type { OpenApiResponses } from './OpenApiResponses'; +import type { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#operationObject diff --git a/src/openApi/v2/interfaces/OpenApiParameter.d.ts b/src/openApi/v2/interfaces/OpenApiParameter.d.ts index 9eb713cd..3f4f3532 100644 --- a/src/openApi/v2/interfaces/OpenApiParameter.d.ts +++ b/src/openApi/v2/interfaces/OpenApiParameter.d.ts @@ -1,7 +1,7 @@ -import { WithEnumExtension } from './Extensions/WithEnumExtension'; -import { OpenApiItems } from './OpenApiItems'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiSchema } from './OpenApiSchema'; +import type { WithEnumExtension } from './Extensions/WithEnumExtension'; +import type { OpenApiItems } from './OpenApiItems'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiSchema } from './OpenApiSchema'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#parameterObject diff --git a/src/openApi/v2/interfaces/OpenApiPath.d.ts b/src/openApi/v2/interfaces/OpenApiPath.d.ts index 4e9fcd79..62d8e755 100644 --- a/src/openApi/v2/interfaces/OpenApiPath.d.ts +++ b/src/openApi/v2/interfaces/OpenApiPath.d.ts @@ -1,6 +1,6 @@ -import { OpenApiOperation } from './OpenApiOperation'; -import { OpenApiParameter } from './OpenApiParameter'; -import { OpenApiReference } from './OpenApiReference'; +import type { OpenApiOperation } from './OpenApiOperation'; +import type { OpenApiParameter } from './OpenApiParameter'; +import type { OpenApiReference } from './OpenApiReference'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#pathItemObject diff --git a/src/openApi/v2/interfaces/OpenApiResponse.d.ts b/src/openApi/v2/interfaces/OpenApiResponse.d.ts index 6b42777c..64a0bc85 100644 --- a/src/openApi/v2/interfaces/OpenApiResponse.d.ts +++ b/src/openApi/v2/interfaces/OpenApiResponse.d.ts @@ -1,8 +1,8 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiExample } from './OpenApiExample'; -import { OpenApiHeader } from './OpenApiHeader'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiSchema } from './OpenApiSchema'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiExample } from './OpenApiExample'; +import type { OpenApiHeader } from './OpenApiHeader'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiSchema } from './OpenApiSchema'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#responseObject diff --git a/src/openApi/v2/interfaces/OpenApiResponses.d.ts b/src/openApi/v2/interfaces/OpenApiResponses.d.ts index 5d35b944..35b20454 100644 --- a/src/openApi/v2/interfaces/OpenApiResponses.d.ts +++ b/src/openApi/v2/interfaces/OpenApiResponses.d.ts @@ -1,4 +1,4 @@ -import { OpenApiResponse } from './OpenApiResponse'; +import type { OpenApiResponse } from './OpenApiResponse'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#responsesObject diff --git a/src/openApi/v2/interfaces/OpenApiSchema.d.ts b/src/openApi/v2/interfaces/OpenApiSchema.d.ts index 110c2a17..abba5fce 100644 --- a/src/openApi/v2/interfaces/OpenApiSchema.d.ts +++ b/src/openApi/v2/interfaces/OpenApiSchema.d.ts @@ -1,8 +1,8 @@ -import { Dictionary } from '../../../utils/types'; -import { WithEnumExtension } from './Extensions/WithEnumExtension'; -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiXml } from './OpenApiXml'; +import type { Dictionary } from '../../../utils/types'; +import type { WithEnumExtension } from './Extensions/WithEnumExtension'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiXml } from './OpenApiXml'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#schemaObject diff --git a/src/openApi/v2/interfaces/OpenApiSecurityScheme.d.ts b/src/openApi/v2/interfaces/OpenApiSecurityScheme.d.ts index 0e94a7ef..121c737a 100644 --- a/src/openApi/v2/interfaces/OpenApiSecurityScheme.d.ts +++ b/src/openApi/v2/interfaces/OpenApiSecurityScheme.d.ts @@ -1,4 +1,4 @@ -import { Dictionary } from '../../../utils/types'; +import type { Dictionary } from '../../../utils/types'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#securitySchemeObject diff --git a/src/openApi/v2/interfaces/OpenApiTag.d.ts b/src/openApi/v2/interfaces/OpenApiTag.d.ts index 7b935e78..85063452 100644 --- a/src/openApi/v2/interfaces/OpenApiTag.d.ts +++ b/src/openApi/v2/interfaces/OpenApiTag.d.ts @@ -1,4 +1,4 @@ -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#tagObject diff --git a/src/openApi/v2/parser/extendEnum.ts b/src/openApi/v2/parser/extendEnum.ts index 39325188..4d62a025 100644 --- a/src/openApi/v2/parser/extendEnum.ts +++ b/src/openApi/v2/parser/extendEnum.ts @@ -1,5 +1,5 @@ -import { Enum } from '../../../client/interfaces/Enum'; -import { WithEnumExtension } from '../interfaces/Extensions/WithEnumExtension'; +import type { Enum } from '../../../client/interfaces/Enum'; +import type { WithEnumExtension } from '../interfaces/Extensions/WithEnumExtension'; const KEY_ENUM_NAMES = 'x-enum-varnames'; const KEY_ENUM_DESCRIPTIONS = 'x-enum-descriptions'; diff --git a/src/openApi/v2/parser/getEnum.ts b/src/openApi/v2/parser/getEnum.ts index 2e848040..fc10c9e2 100644 --- a/src/openApi/v2/parser/getEnum.ts +++ b/src/openApi/v2/parser/getEnum.ts @@ -1,4 +1,4 @@ -import { Enum } from '../../../client/interfaces/Enum'; +import type { Enum } from '../../../client/interfaces/Enum'; import { PrimaryType } from './constants'; import { isDefined } from './isDefined'; diff --git a/src/openApi/v2/parser/getEnumFromDescription.ts b/src/openApi/v2/parser/getEnumFromDescription.ts index 45f35d43..e4279ea8 100644 --- a/src/openApi/v2/parser/getEnumFromDescription.ts +++ b/src/openApi/v2/parser/getEnumFromDescription.ts @@ -1,4 +1,4 @@ -import { Enum } from '../../../client/interfaces/Enum'; +import type { Enum } from '../../../client/interfaces/Enum'; import { PrimaryType } from './constants'; export function getEnumFromDescription(description: string): Enum[] { diff --git a/src/openApi/v2/parser/getModel.ts b/src/openApi/v2/parser/getModel.ts index 2a6385b9..779baae3 100644 --- a/src/openApi/v2/parser/getModel.ts +++ b/src/openApi/v2/parser/getModel.ts @@ -1,6 +1,6 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; import { PrimaryType } from './constants'; import { extendEnum } from './extendEnum'; import { getComment } from './getComment'; diff --git a/src/openApi/v2/parser/getModelProperties.ts b/src/openApi/v2/parser/getModelProperties.ts index fe8f1d51..7623814e 100644 --- a/src/openApi/v2/parser/getModelProperties.ts +++ b/src/openApi/v2/parser/getModelProperties.ts @@ -1,6 +1,6 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; import { getComment } from './getComment'; import { getType } from './getType'; diff --git a/src/openApi/v2/parser/getModelTemplate.ts b/src/openApi/v2/parser/getModelTemplate.ts index f472e784..26902ea0 100644 --- a/src/openApi/v2/parser/getModelTemplate.ts +++ b/src/openApi/v2/parser/getModelTemplate.ts @@ -1,4 +1,4 @@ -import { Type } from '../../../client/interfaces/Type'; +import type { Type } from '../../../client/interfaces/Type'; /** * If our model has a template type, then we want to generalize that! diff --git a/src/openApi/v2/parser/getModels.ts b/src/openApi/v2/parser/getModels.ts index e223f5f9..b22e5c12 100644 --- a/src/openApi/v2/parser/getModels.ts +++ b/src/openApi/v2/parser/getModels.ts @@ -1,5 +1,5 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApi } from '../interfaces/OpenApi'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApi } from '../interfaces/OpenApi'; import { getModel } from './getModel'; import { getType } from './getType'; diff --git a/src/openApi/v2/parser/getOperation.ts b/src/openApi/v2/parser/getOperation.ts index b89b7101..c7a44f0c 100644 --- a/src/openApi/v2/parser/getOperation.ts +++ b/src/openApi/v2/parser/getOperation.ts @@ -1,7 +1,7 @@ -import { Operation } from '../../../client/interfaces/Operation'; -import { OperationParameters } from '../../../client/interfaces/OperationParameters'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiOperation } from '../interfaces/OpenApiOperation'; +import type { Operation } from '../../../client/interfaces/Operation'; +import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiOperation } from '../interfaces/OpenApiOperation'; import { getComment } from './getComment'; import { getOperationErrors } from './getOperationErrors'; import { getOperationName } from './getOperationName'; diff --git a/src/openApi/v2/parser/getOperationErrors.ts b/src/openApi/v2/parser/getOperationErrors.ts index ab6edbb6..9703f91b 100644 --- a/src/openApi/v2/parser/getOperationErrors.ts +++ b/src/openApi/v2/parser/getOperationErrors.ts @@ -1,5 +1,5 @@ -import { OperationError } from '../../../client/interfaces/OperationError'; -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OperationError } from '../../../client/interfaces/OperationError'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; export function getOperationErrors(operationResponses: OperationResponse[]): OperationError[] { return operationResponses diff --git a/src/openApi/v2/parser/getOperationParameter.ts b/src/openApi/v2/parser/getOperationParameter.ts index bc0738cd..4fba8197 100644 --- a/src/openApi/v2/parser/getOperationParameter.ts +++ b/src/openApi/v2/parser/getOperationParameter.ts @@ -1,6 +1,6 @@ -import { OperationParameter } from '../../../client/interfaces/OperationParameter'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; import { PrimaryType } from './constants'; import { extendEnum } from './extendEnum'; import { getComment } from './getComment'; diff --git a/src/openApi/v2/parser/getOperationParameterDefault.ts b/src/openApi/v2/parser/getOperationParameterDefault.ts index 330c476d..d5ffe60f 100644 --- a/src/openApi/v2/parser/getOperationParameterDefault.ts +++ b/src/openApi/v2/parser/getOperationParameterDefault.ts @@ -1,5 +1,5 @@ -import { OperationParameter } from '../../../client/interfaces/OperationParameter'; -import { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; +import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; export function getOperationParameterDefault(parameter: OpenApiParameter, operationParameter: OperationParameter): string | undefined { if (parameter.default === undefined) { diff --git a/src/openApi/v2/parser/getOperationParameters.ts b/src/openApi/v2/parser/getOperationParameters.ts index 60b8248b..61f8bc23 100644 --- a/src/openApi/v2/parser/getOperationParameters.ts +++ b/src/openApi/v2/parser/getOperationParameters.ts @@ -1,6 +1,6 @@ -import { OperationParameters } from '../../../client/interfaces/OperationParameters'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; import { getOperationParameter } from './getOperationParameter'; import { getRef } from './getRef'; import { sortByRequired } from './sortByRequired'; diff --git a/src/openApi/v2/parser/getOperationResponse.ts b/src/openApi/v2/parser/getOperationResponse.ts index 4b980225..b7349750 100644 --- a/src/openApi/v2/parser/getOperationResponse.ts +++ b/src/openApi/v2/parser/getOperationResponse.ts @@ -1,6 +1,6 @@ -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiResponse } from '../interfaces/OpenApiResponse'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; import { PrimaryType } from './constants'; import { getComment } from './getComment'; import { getModel } from './getModel'; diff --git a/src/openApi/v2/parser/getOperationResponseHeader.ts b/src/openApi/v2/parser/getOperationResponseHeader.ts index efd4e8eb..79659ae2 100644 --- a/src/openApi/v2/parser/getOperationResponseHeader.ts +++ b/src/openApi/v2/parser/getOperationResponseHeader.ts @@ -1,4 +1,4 @@ -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; export function getOperationResponseHeader(operationResponses: OperationResponse[]): string | null { const header = operationResponses.find(operationResponses => { diff --git a/src/openApi/v2/parser/getOperationResponses.ts b/src/openApi/v2/parser/getOperationResponses.ts index 46d750b5..2ed23f14 100644 --- a/src/openApi/v2/parser/getOperationResponses.ts +++ b/src/openApi/v2/parser/getOperationResponses.ts @@ -1,7 +1,7 @@ -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiResponse } from '../interfaces/OpenApiResponse'; -import { OpenApiResponses } from '../interfaces/OpenApiResponses'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; +import type { OpenApiResponses } from '../interfaces/OpenApiResponses'; import { getOperationResponse } from './getOperationResponse'; import { getOperationResponseCode } from './getOperationResponseCode'; import { getRef } from './getRef'; diff --git a/src/openApi/v2/parser/getOperationResults.ts b/src/openApi/v2/parser/getOperationResults.ts index 6f8b4429..0f164ea8 100644 --- a/src/openApi/v2/parser/getOperationResults.ts +++ b/src/openApi/v2/parser/getOperationResults.ts @@ -1,5 +1,5 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; import { PrimaryType } from './constants'; function areEqual(a: Model, b: Model): boolean { diff --git a/src/openApi/v2/parser/getRef.ts b/src/openApi/v2/parser/getRef.ts index 303382ba..cb9fe24f 100644 --- a/src/openApi/v2/parser/getRef.ts +++ b/src/openApi/v2/parser/getRef.ts @@ -1,5 +1,5 @@ -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiReference } from '../interfaces/OpenApiReference'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiReference } from '../interfaces/OpenApiReference'; export function getRef(openApi: OpenApi, item: T & OpenApiReference): T { if (item.$ref) { diff --git a/src/openApi/v2/parser/getServer.ts b/src/openApi/v2/parser/getServer.ts index 6037e0c5..e13a5b6c 100644 --- a/src/openApi/v2/parser/getServer.ts +++ b/src/openApi/v2/parser/getServer.ts @@ -1,4 +1,4 @@ -import { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApi } from '../interfaces/OpenApi'; /** * Get the base server url. diff --git a/src/openApi/v2/parser/getServices.ts b/src/openApi/v2/parser/getServices.ts index 2a061cdc..b57a8f11 100644 --- a/src/openApi/v2/parser/getServices.ts +++ b/src/openApi/v2/parser/getServices.ts @@ -1,5 +1,5 @@ -import { Service } from '../../../client/interfaces/Service'; -import { OpenApi } from '../interfaces/OpenApi'; +import type { Service } from '../../../client/interfaces/Service'; +import type { OpenApi } from '../interfaces/OpenApi'; import { Method } from './constants'; import { getOperation } from './getOperation'; import { getOperationParameters } from './getOperationParameters'; diff --git a/src/openApi/v2/parser/getType.ts b/src/openApi/v2/parser/getType.ts index 1cf8de66..1e874e03 100644 --- a/src/openApi/v2/parser/getType.ts +++ b/src/openApi/v2/parser/getType.ts @@ -1,4 +1,4 @@ -import { Type } from '../../../client/interfaces/Type'; +import type { Type } from '../../../client/interfaces/Type'; import { PrimaryType } from './constants'; import { getMappedType, hasMappedType } from './getMappedType'; import { stripNamespace } from './stripNamespace'; diff --git a/src/openApi/v2/parser/sortByRequired.ts b/src/openApi/v2/parser/sortByRequired.ts index 6737ae2f..05eceb4a 100644 --- a/src/openApi/v2/parser/sortByRequired.ts +++ b/src/openApi/v2/parser/sortByRequired.ts @@ -1,4 +1,4 @@ -import { OperationParameter } from '../../../client/interfaces/OperationParameter'; +import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; export function sortByRequired(a: OperationParameter, b: OperationParameter): number { const aNeedsValue = a.isRequired && a.default === undefined; diff --git a/src/openApi/v3/index.ts b/src/openApi/v3/index.ts index 342bede8..30bd05cc 100644 --- a/src/openApi/v3/index.ts +++ b/src/openApi/v3/index.ts @@ -1,5 +1,5 @@ -import { Client } from '../../client/interfaces/Client'; -import { OpenApi } from './interfaces/OpenApi'; +import type { Client } from '../../client/interfaces/Client'; +import type { OpenApi } from './interfaces/OpenApi'; import { getModels } from './parser/getModels'; import { getServer } from './parser/getServer'; import { getServices } from './parser/getServices'; diff --git a/src/openApi/v3/interfaces/OpenApi.d.ts b/src/openApi/v3/interfaces/OpenApi.d.ts index 2d598349..b33d382a 100644 --- a/src/openApi/v3/interfaces/OpenApi.d.ts +++ b/src/openApi/v3/interfaces/OpenApi.d.ts @@ -1,10 +1,10 @@ -import { OpenApiComponents } from './OpenApiComponents'; -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; -import { OpenApiInfo } from './OpenApiInfo'; -import { OpenApiPaths } from './OpenApiPaths'; -import { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; -import { OpenApiServer } from './OpenApiServer'; -import { OpenApiTag } from './OpenApiTag'; +import type { OpenApiComponents } from './OpenApiComponents'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiInfo } from './OpenApiInfo'; +import type { OpenApiPaths } from './OpenApiPaths'; +import type { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; +import type { OpenApiServer } from './OpenApiServer'; +import type { OpenApiTag } from './OpenApiTag'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md diff --git a/src/openApi/v3/interfaces/OpenApiCallback.d.ts b/src/openApi/v3/interfaces/OpenApiCallback.d.ts index 897ce3a4..deec433c 100644 --- a/src/openApi/v3/interfaces/OpenApiCallback.d.ts +++ b/src/openApi/v3/interfaces/OpenApiCallback.d.ts @@ -1,5 +1,5 @@ -import { OpenApiPath } from './OpenApiPath'; -import { OpenApiReference } from './OpenApiReference'; +import type { OpenApiPath } from './OpenApiPath'; +import type { OpenApiReference } from './OpenApiReference'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#callbackObject diff --git a/src/openApi/v3/interfaces/OpenApiComponents.d.ts b/src/openApi/v3/interfaces/OpenApiComponents.d.ts index 8dafa556..54cfaa68 100644 --- a/src/openApi/v3/interfaces/OpenApiComponents.d.ts +++ b/src/openApi/v3/interfaces/OpenApiComponents.d.ts @@ -1,13 +1,13 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiCallback } from './OpenApiCallback'; -import { OpenApiExample } from './OpenApiExample'; -import { OpenApiHeader } from './OpenApiHeader'; -import { OpenApiLink } from './OpenApiLink'; -import { OpenApiParameter } from './OpenApiParameter'; -import { OpenApiRequestBody } from './OpenApiRequestBody'; -import { OpenApiResponses } from './OpenApiResponses'; -import { OpenApiSchema } from './OpenApiSchema'; -import { OpenApiSecurityScheme } from './OpenApiSecurityScheme'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiCallback } from './OpenApiCallback'; +import type { OpenApiExample } from './OpenApiExample'; +import type { OpenApiHeader } from './OpenApiHeader'; +import type { OpenApiLink } from './OpenApiLink'; +import type { OpenApiParameter } from './OpenApiParameter'; +import type { OpenApiRequestBody } from './OpenApiRequestBody'; +import type { OpenApiResponses } from './OpenApiResponses'; +import type { OpenApiSchema } from './OpenApiSchema'; +import type { OpenApiSecurityScheme } from './OpenApiSecurityScheme'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#componentsObject diff --git a/src/openApi/v3/interfaces/OpenApiDiscriminator.d.ts b/src/openApi/v3/interfaces/OpenApiDiscriminator.d.ts index 0655f90d..aa683057 100644 --- a/src/openApi/v3/interfaces/OpenApiDiscriminator.d.ts +++ b/src/openApi/v3/interfaces/OpenApiDiscriminator.d.ts @@ -1,4 +1,4 @@ -import { Dictionary } from '../../../utils/types'; +import type { Dictionary } from '../../../utils/types'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#discriminatorObject diff --git a/src/openApi/v3/interfaces/OpenApiEncoding.d.ts b/src/openApi/v3/interfaces/OpenApiEncoding.d.ts index 5a60ccf3..670a5f15 100644 --- a/src/openApi/v3/interfaces/OpenApiEncoding.d.ts +++ b/src/openApi/v3/interfaces/OpenApiEncoding.d.ts @@ -1,5 +1,5 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiHeader } from './OpenApiHeader'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiHeader } from './OpenApiHeader'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#encodingObject diff --git a/src/openApi/v3/interfaces/OpenApiExample.d.ts b/src/openApi/v3/interfaces/OpenApiExample.d.ts index 48f441d2..22879579 100644 --- a/src/openApi/v3/interfaces/OpenApiExample.d.ts +++ b/src/openApi/v3/interfaces/OpenApiExample.d.ts @@ -1,4 +1,4 @@ -import { OpenApiReference } from './OpenApiReference'; +import type { OpenApiReference } from './OpenApiReference'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#exampleObject diff --git a/src/openApi/v3/interfaces/OpenApiHeader.d.ts b/src/openApi/v3/interfaces/OpenApiHeader.d.ts index 9fb75b1a..694c859f 100644 --- a/src/openApi/v3/interfaces/OpenApiHeader.d.ts +++ b/src/openApi/v3/interfaces/OpenApiHeader.d.ts @@ -1,7 +1,7 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiExample } from './OpenApiExample'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiSchema } from './OpenApiSchema'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiExample } from './OpenApiExample'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiSchema } from './OpenApiSchema'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#headerObject diff --git a/src/openApi/v3/interfaces/OpenApiInfo.d.ts b/src/openApi/v3/interfaces/OpenApiInfo.d.ts index d5b2985d..96fabd0c 100644 --- a/src/openApi/v3/interfaces/OpenApiInfo.d.ts +++ b/src/openApi/v3/interfaces/OpenApiInfo.d.ts @@ -1,5 +1,5 @@ -import { OpenApiContact } from './OpenApiContact'; -import { OpenApiLicense } from './OpenApiLicense'; +import type { OpenApiContact } from './OpenApiContact'; +import type { OpenApiLicense } from './OpenApiLicense'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#infoObject diff --git a/src/openApi/v3/interfaces/OpenApiLink.d.ts b/src/openApi/v3/interfaces/OpenApiLink.d.ts index 9797217e..31b9707e 100644 --- a/src/openApi/v3/interfaces/OpenApiLink.d.ts +++ b/src/openApi/v3/interfaces/OpenApiLink.d.ts @@ -1,6 +1,6 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiServer } from './OpenApiServer'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiServer } from './OpenApiServer'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#linkObject diff --git a/src/openApi/v3/interfaces/OpenApiMediaType.d.ts b/src/openApi/v3/interfaces/OpenApiMediaType.d.ts index fb11a7da..89f78c8a 100644 --- a/src/openApi/v3/interfaces/OpenApiMediaType.d.ts +++ b/src/openApi/v3/interfaces/OpenApiMediaType.d.ts @@ -1,8 +1,8 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiEncoding } from './OpenApiEncoding'; -import { OpenApiExample } from './OpenApiExample'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiSchema } from './OpenApiSchema'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiEncoding } from './OpenApiEncoding'; +import type { OpenApiExample } from './OpenApiExample'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiSchema } from './OpenApiSchema'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#mediaTypeObject diff --git a/src/openApi/v3/interfaces/OpenApiOAuthFlow.d.ts b/src/openApi/v3/interfaces/OpenApiOAuthFlow.d.ts index 6f1827aa..85654a9a 100644 --- a/src/openApi/v3/interfaces/OpenApiOAuthFlow.d.ts +++ b/src/openApi/v3/interfaces/OpenApiOAuthFlow.d.ts @@ -1,4 +1,4 @@ -import { Dictionary } from '../../../utils/types'; +import type { Dictionary } from '../../../utils/types'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#oauthFlowObject diff --git a/src/openApi/v3/interfaces/OpenApiOAuthFlows.d.ts b/src/openApi/v3/interfaces/OpenApiOAuthFlows.d.ts index a03a6d3d..87accfdb 100644 --- a/src/openApi/v3/interfaces/OpenApiOAuthFlows.d.ts +++ b/src/openApi/v3/interfaces/OpenApiOAuthFlows.d.ts @@ -1,4 +1,4 @@ -import { OpenApiOAuthFlow } from './OpenApiOAuthFlow'; +import type { OpenApiOAuthFlow } from './OpenApiOAuthFlow'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#oauthFlowsObject diff --git a/src/openApi/v3/interfaces/OpenApiOperation.d.ts b/src/openApi/v3/interfaces/OpenApiOperation.d.ts index b2176049..954d9653 100644 --- a/src/openApi/v3/interfaces/OpenApiOperation.d.ts +++ b/src/openApi/v3/interfaces/OpenApiOperation.d.ts @@ -1,11 +1,11 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiCallback } from './OpenApiCallback'; -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; -import { OpenApiParameter } from './OpenApiParameter'; -import { OpenApiRequestBody } from './OpenApiRequestBody'; -import { OpenApiResponses } from './OpenApiResponses'; -import { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; -import { OpenApiServer } from './OpenApiServer'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiCallback } from './OpenApiCallback'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiParameter } from './OpenApiParameter'; +import type { OpenApiRequestBody } from './OpenApiRequestBody'; +import type { OpenApiResponses } from './OpenApiResponses'; +import type { OpenApiSecurityRequirement } from './OpenApiSecurityRequirement'; +import type { OpenApiServer } from './OpenApiServer'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject diff --git a/src/openApi/v3/interfaces/OpenApiParameter.d.ts b/src/openApi/v3/interfaces/OpenApiParameter.d.ts index bb646a70..7172feb7 100644 --- a/src/openApi/v3/interfaces/OpenApiParameter.d.ts +++ b/src/openApi/v3/interfaces/OpenApiParameter.d.ts @@ -1,7 +1,7 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiExample } from './OpenApiExample'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiSchema } from './OpenApiSchema'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiExample } from './OpenApiExample'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiSchema } from './OpenApiSchema'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#parameterObject diff --git a/src/openApi/v3/interfaces/OpenApiPath.d.ts b/src/openApi/v3/interfaces/OpenApiPath.d.ts index 047798c9..a0d29805 100644 --- a/src/openApi/v3/interfaces/OpenApiPath.d.ts +++ b/src/openApi/v3/interfaces/OpenApiPath.d.ts @@ -1,6 +1,6 @@ -import { OpenApiOperation } from './OpenApiOperation'; -import { OpenApiParameter } from './OpenApiParameter'; -import { OpenApiServer } from './OpenApiServer'; +import type { OpenApiOperation } from './OpenApiOperation'; +import type { OpenApiParameter } from './OpenApiParameter'; +import type { OpenApiServer } from './OpenApiServer'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#pathItemObject diff --git a/src/openApi/v3/interfaces/OpenApiPaths.d.ts b/src/openApi/v3/interfaces/OpenApiPaths.d.ts index 1ad406c7..334e1bed 100644 --- a/src/openApi/v3/interfaces/OpenApiPaths.d.ts +++ b/src/openApi/v3/interfaces/OpenApiPaths.d.ts @@ -1,4 +1,4 @@ -import { OpenApiPath } from './OpenApiPath'; +import type { OpenApiPath } from './OpenApiPath'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#pathsObject diff --git a/src/openApi/v3/interfaces/OpenApiRequestBody.d.ts b/src/openApi/v3/interfaces/OpenApiRequestBody.d.ts index e526bf61..1a687b8b 100644 --- a/src/openApi/v3/interfaces/OpenApiRequestBody.d.ts +++ b/src/openApi/v3/interfaces/OpenApiRequestBody.d.ts @@ -1,6 +1,6 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiMediaType } from './OpenApiMediaType'; -import { OpenApiReference } from './OpenApiReference'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiMediaType } from './OpenApiMediaType'; +import type { OpenApiReference } from './OpenApiReference'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#requestBodyObject diff --git a/src/openApi/v3/interfaces/OpenApiResponse.d.ts b/src/openApi/v3/interfaces/OpenApiResponse.d.ts index 3918fc96..d6509bd7 100644 --- a/src/openApi/v3/interfaces/OpenApiResponse.d.ts +++ b/src/openApi/v3/interfaces/OpenApiResponse.d.ts @@ -1,8 +1,8 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiHeader } from './OpenApiHeader'; -import { OpenApiLink } from './OpenApiLink'; -import { OpenApiMediaType } from './OpenApiMediaType'; -import { OpenApiReference } from './OpenApiReference'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiHeader } from './OpenApiHeader'; +import type { OpenApiLink } from './OpenApiLink'; +import type { OpenApiMediaType } from './OpenApiMediaType'; +import type { OpenApiReference } from './OpenApiReference'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#responseObject diff --git a/src/openApi/v3/interfaces/OpenApiResponses.d.ts b/src/openApi/v3/interfaces/OpenApiResponses.d.ts index ecc829a7..fd909d29 100644 --- a/src/openApi/v3/interfaces/OpenApiResponses.d.ts +++ b/src/openApi/v3/interfaces/OpenApiResponses.d.ts @@ -1,5 +1,5 @@ -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiResponse } from './OpenApiResponse'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiResponse } from './OpenApiResponse'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#responsesObject diff --git a/src/openApi/v3/interfaces/OpenApiSchema.d.ts b/src/openApi/v3/interfaces/OpenApiSchema.d.ts index aa7cfd6e..7bbf0665 100644 --- a/src/openApi/v3/interfaces/OpenApiSchema.d.ts +++ b/src/openApi/v3/interfaces/OpenApiSchema.d.ts @@ -1,9 +1,9 @@ -import { Dictionary } from '../../../utils/types'; -import { WithEnumExtension } from './Extensions/WithEnumExtension'; -import { OpenApiDiscriminator } from './OpenApiDiscriminator'; -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; -import { OpenApiReference } from './OpenApiReference'; -import { OpenApiXml } from './OpenApiXml'; +import type { Dictionary } from '../../../utils/types'; +import type { WithEnumExtension } from './Extensions/WithEnumExtension'; +import type { OpenApiDiscriminator } from './OpenApiDiscriminator'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiReference } from './OpenApiReference'; +import type { OpenApiXml } from './OpenApiXml'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject diff --git a/src/openApi/v3/interfaces/OpenApiSecurityScheme.d.ts b/src/openApi/v3/interfaces/OpenApiSecurityScheme.d.ts index 0a5a461d..21cfd1c2 100644 --- a/src/openApi/v3/interfaces/OpenApiSecurityScheme.d.ts +++ b/src/openApi/v3/interfaces/OpenApiSecurityScheme.d.ts @@ -1,5 +1,5 @@ -import { OpenApiOAuthFlows } from './OpenApiOAuthFlows'; -import { OpenApiReference } from './OpenApiReference'; +import type { OpenApiOAuthFlows } from './OpenApiOAuthFlows'; +import type { OpenApiReference } from './OpenApiReference'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#securitySchemeObject diff --git a/src/openApi/v3/interfaces/OpenApiServer.d.ts b/src/openApi/v3/interfaces/OpenApiServer.d.ts index 3220b554..81178661 100644 --- a/src/openApi/v3/interfaces/OpenApiServer.d.ts +++ b/src/openApi/v3/interfaces/OpenApiServer.d.ts @@ -1,5 +1,5 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApiServerVariable } from './OpenApiServerVariable'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApiServerVariable } from './OpenApiServerVariable'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#serverObject diff --git a/src/openApi/v3/interfaces/OpenApiServerVariable.d.ts b/src/openApi/v3/interfaces/OpenApiServerVariable.d.ts index e250bdea..7e556ccd 100644 --- a/src/openApi/v3/interfaces/OpenApiServerVariable.d.ts +++ b/src/openApi/v3/interfaces/OpenApiServerVariable.d.ts @@ -1,4 +1,4 @@ -import { WithEnumExtension } from './Extensions/WithEnumExtension'; +import type { WithEnumExtension } from './Extensions/WithEnumExtension'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#serverVariableObject diff --git a/src/openApi/v3/interfaces/OpenApiTag.d.ts b/src/openApi/v3/interfaces/OpenApiTag.d.ts index 8cbceb9c..4bded337 100644 --- a/src/openApi/v3/interfaces/OpenApiTag.d.ts +++ b/src/openApi/v3/interfaces/OpenApiTag.d.ts @@ -1,4 +1,4 @@ -import { OpenApiExternalDocs } from './OpenApiExternalDocs'; +import type { OpenApiExternalDocs } from './OpenApiExternalDocs'; /** * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#tagObject diff --git a/src/openApi/v3/parser/extendEnum.ts b/src/openApi/v3/parser/extendEnum.ts index 39325188..4d62a025 100644 --- a/src/openApi/v3/parser/extendEnum.ts +++ b/src/openApi/v3/parser/extendEnum.ts @@ -1,5 +1,5 @@ -import { Enum } from '../../../client/interfaces/Enum'; -import { WithEnumExtension } from '../interfaces/Extensions/WithEnumExtension'; +import type { Enum } from '../../../client/interfaces/Enum'; +import type { WithEnumExtension } from '../interfaces/Extensions/WithEnumExtension'; const KEY_ENUM_NAMES = 'x-enum-varnames'; const KEY_ENUM_DESCRIPTIONS = 'x-enum-descriptions'; diff --git a/src/openApi/v3/parser/getContent.ts b/src/openApi/v3/parser/getContent.ts index 86b96c3a..b5653f78 100644 --- a/src/openApi/v3/parser/getContent.ts +++ b/src/openApi/v3/parser/getContent.ts @@ -1,7 +1,7 @@ -import { Dictionary } from '../../../utils/types'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiMediaType } from '../interfaces/OpenApiMediaType'; -import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import type { Dictionary } from '../../../utils/types'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiMediaType } from '../interfaces/OpenApiMediaType'; +import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; import { ContentType } from './constants'; export function getContent(openApi: OpenApi, content: Dictionary): OpenApiSchema | null { diff --git a/src/openApi/v3/parser/getEnum.ts b/src/openApi/v3/parser/getEnum.ts index 2e848040..fc10c9e2 100644 --- a/src/openApi/v3/parser/getEnum.ts +++ b/src/openApi/v3/parser/getEnum.ts @@ -1,4 +1,4 @@ -import { Enum } from '../../../client/interfaces/Enum'; +import type { Enum } from '../../../client/interfaces/Enum'; import { PrimaryType } from './constants'; import { isDefined } from './isDefined'; diff --git a/src/openApi/v3/parser/getEnumFromDescription.ts b/src/openApi/v3/parser/getEnumFromDescription.ts index 45f35d43..e4279ea8 100644 --- a/src/openApi/v3/parser/getEnumFromDescription.ts +++ b/src/openApi/v3/parser/getEnumFromDescription.ts @@ -1,4 +1,4 @@ -import { Enum } from '../../../client/interfaces/Enum'; +import type { Enum } from '../../../client/interfaces/Enum'; import { PrimaryType } from './constants'; export function getEnumFromDescription(description: string): Enum[] { diff --git a/src/openApi/v3/parser/getModel.ts b/src/openApi/v3/parser/getModel.ts index b64f5022..655459d3 100644 --- a/src/openApi/v3/parser/getModel.ts +++ b/src/openApi/v3/parser/getModel.ts @@ -1,6 +1,6 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; import { PrimaryType } from './constants'; import { extendEnum } from './extendEnum'; import { getComment } from './getComment'; diff --git a/src/openApi/v3/parser/getModelDefault.ts b/src/openApi/v3/parser/getModelDefault.ts index 595588f4..c1bb76c7 100644 --- a/src/openApi/v3/parser/getModelDefault.ts +++ b/src/openApi/v3/parser/getModelDefault.ts @@ -1,5 +1,5 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; export function getModelDefault(definition: OpenApiSchema, model?: Model): string | undefined { if (definition.default === undefined) { diff --git a/src/openApi/v3/parser/getModelProperties.ts b/src/openApi/v3/parser/getModelProperties.ts index 5a5e4c2c..a81a23be 100644 --- a/src/openApi/v3/parser/getModelProperties.ts +++ b/src/openApi/v3/parser/getModelProperties.ts @@ -1,6 +1,6 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiSchema } from '../interfaces/OpenApiSchema'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiSchema } from '../interfaces/OpenApiSchema'; import { getComment } from './getComment'; import { getType } from './getType'; diff --git a/src/openApi/v3/parser/getModelTemplate.ts b/src/openApi/v3/parser/getModelTemplate.ts index f472e784..26902ea0 100644 --- a/src/openApi/v3/parser/getModelTemplate.ts +++ b/src/openApi/v3/parser/getModelTemplate.ts @@ -1,4 +1,4 @@ -import { Type } from '../../../client/interfaces/Type'; +import type { Type } from '../../../client/interfaces/Type'; /** * If our model has a template type, then we want to generalize that! diff --git a/src/openApi/v3/parser/getModels.ts b/src/openApi/v3/parser/getModels.ts index e4faece4..6294597d 100644 --- a/src/openApi/v3/parser/getModels.ts +++ b/src/openApi/v3/parser/getModels.ts @@ -1,5 +1,5 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OpenApi } from '../interfaces/OpenApi'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OpenApi } from '../interfaces/OpenApi'; import { getModel } from './getModel'; import { getType } from './getType'; diff --git a/src/openApi/v3/parser/getOperation.ts b/src/openApi/v3/parser/getOperation.ts index 622f11ec..bce5dca8 100644 --- a/src/openApi/v3/parser/getOperation.ts +++ b/src/openApi/v3/parser/getOperation.ts @@ -1,8 +1,8 @@ -import { Operation } from '../../../client/interfaces/Operation'; -import { OperationParameters } from '../../../client/interfaces/OperationParameters'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiOperation } from '../interfaces/OpenApiOperation'; -import { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; +import type { Operation } from '../../../client/interfaces/Operation'; +import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiOperation } from '../interfaces/OpenApiOperation'; +import type { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; import { getComment } from './getComment'; import { getOperationErrors } from './getOperationErrors'; import { getOperationName } from './getOperationName'; diff --git a/src/openApi/v3/parser/getOperationErrors.ts b/src/openApi/v3/parser/getOperationErrors.ts index ab6edbb6..9703f91b 100644 --- a/src/openApi/v3/parser/getOperationErrors.ts +++ b/src/openApi/v3/parser/getOperationErrors.ts @@ -1,5 +1,5 @@ -import { OperationError } from '../../../client/interfaces/OperationError'; -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OperationError } from '../../../client/interfaces/OperationError'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; export function getOperationErrors(operationResponses: OperationResponse[]): OperationError[] { return operationResponses diff --git a/src/openApi/v3/parser/getOperationParameter.ts b/src/openApi/v3/parser/getOperationParameter.ts index 0c855a1d..409aca72 100644 --- a/src/openApi/v3/parser/getOperationParameter.ts +++ b/src/openApi/v3/parser/getOperationParameter.ts @@ -1,6 +1,6 @@ -import { OperationParameter } from '../../../client/interfaces/OperationParameter'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; import { PrimaryType } from './constants'; import { getComment } from './getComment'; import { getModel } from './getModel'; diff --git a/src/openApi/v3/parser/getOperationParameters.ts b/src/openApi/v3/parser/getOperationParameters.ts index 58a90f8c..4d6612d1 100644 --- a/src/openApi/v3/parser/getOperationParameters.ts +++ b/src/openApi/v3/parser/getOperationParameters.ts @@ -1,6 +1,6 @@ -import { OperationParameters } from '../../../client/interfaces/OperationParameters'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiParameter } from '../interfaces/OpenApiParameter'; +import type { OperationParameters } from '../../../client/interfaces/OperationParameters'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiParameter } from '../interfaces/OpenApiParameter'; import { getOperationParameter } from './getOperationParameter'; import { getRef } from './getRef'; import { sortByRequired } from './sortByRequired'; diff --git a/src/openApi/v3/parser/getOperationRequestBody.ts b/src/openApi/v3/parser/getOperationRequestBody.ts index dc36d75f..62a0cb01 100644 --- a/src/openApi/v3/parser/getOperationRequestBody.ts +++ b/src/openApi/v3/parser/getOperationRequestBody.ts @@ -1,6 +1,6 @@ -import { OperationParameter } from '../../../client/interfaces/OperationParameter'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; +import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiRequestBody } from '../interfaces/OpenApiRequestBody'; import { PrimaryType } from './constants'; import { getComment } from './getComment'; import { getContent } from './getContent'; diff --git a/src/openApi/v3/parser/getOperationResponse.ts b/src/openApi/v3/parser/getOperationResponse.ts index bc042d2f..e3118512 100644 --- a/src/openApi/v3/parser/getOperationResponse.ts +++ b/src/openApi/v3/parser/getOperationResponse.ts @@ -1,6 +1,6 @@ -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiResponse } from '../interfaces/OpenApiResponse'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; import { PrimaryType } from './constants'; import { getComment } from './getComment'; import { getContent } from './getContent'; diff --git a/src/openApi/v3/parser/getOperationResponseHeader.ts b/src/openApi/v3/parser/getOperationResponseHeader.ts index efd4e8eb..79659ae2 100644 --- a/src/openApi/v3/parser/getOperationResponseHeader.ts +++ b/src/openApi/v3/parser/getOperationResponseHeader.ts @@ -1,4 +1,4 @@ -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; export function getOperationResponseHeader(operationResponses: OperationResponse[]): string | null { const header = operationResponses.find(operationResponses => { diff --git a/src/openApi/v3/parser/getOperationResponses.ts b/src/openApi/v3/parser/getOperationResponses.ts index cd608f9b..17fa505b 100644 --- a/src/openApi/v3/parser/getOperationResponses.ts +++ b/src/openApi/v3/parser/getOperationResponses.ts @@ -1,7 +1,7 @@ -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiResponse } from '../interfaces/OpenApiResponse'; -import { OpenApiResponses } from '../interfaces/OpenApiResponses'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiResponse } from '../interfaces/OpenApiResponse'; +import type { OpenApiResponses } from '../interfaces/OpenApiResponses'; import { getOperationResponse } from './getOperationResponse'; import { getOperationResponseCode } from './getOperationResponseCode'; import { getRef } from './getRef'; diff --git a/src/openApi/v3/parser/getOperationResults.ts b/src/openApi/v3/parser/getOperationResults.ts index 6f8b4429..0f164ea8 100644 --- a/src/openApi/v3/parser/getOperationResults.ts +++ b/src/openApi/v3/parser/getOperationResults.ts @@ -1,5 +1,5 @@ -import { Model } from '../../../client/interfaces/Model'; -import { OperationResponse } from '../../../client/interfaces/OperationResponse'; +import type { Model } from '../../../client/interfaces/Model'; +import type { OperationResponse } from '../../../client/interfaces/OperationResponse'; import { PrimaryType } from './constants'; function areEqual(a: Model, b: Model): boolean { diff --git a/src/openApi/v3/parser/getRef.ts b/src/openApi/v3/parser/getRef.ts index 891d924b..3fa53d22 100644 --- a/src/openApi/v3/parser/getRef.ts +++ b/src/openApi/v3/parser/getRef.ts @@ -1,5 +1,5 @@ -import { OpenApi } from '../interfaces/OpenApi'; -import { OpenApiReference } from '../interfaces/OpenApiReference'; +import type { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApiReference } from '../interfaces/OpenApiReference'; export function getRef(openApi: OpenApi, item: T & OpenApiReference): T { if (item.$ref) { diff --git a/src/openApi/v3/parser/getServer.ts b/src/openApi/v3/parser/getServer.ts index aa0180b6..95efecd6 100644 --- a/src/openApi/v3/parser/getServer.ts +++ b/src/openApi/v3/parser/getServer.ts @@ -1,4 +1,4 @@ -import { OpenApi } from '../interfaces/OpenApi'; +import type { OpenApi } from '../interfaces/OpenApi'; export function getServer(openApi: OpenApi): string { const server = openApi.servers && openApi.servers[0]; diff --git a/src/openApi/v3/parser/getServices.ts b/src/openApi/v3/parser/getServices.ts index 48a41eea..4404dba3 100644 --- a/src/openApi/v3/parser/getServices.ts +++ b/src/openApi/v3/parser/getServices.ts @@ -1,5 +1,5 @@ -import { Service } from '../../../client/interfaces/Service'; -import { OpenApi } from '../interfaces/OpenApi'; +import type { Service } from '../../../client/interfaces/Service'; +import type { OpenApi } from '../interfaces/OpenApi'; import { Method } from './constants'; import { getOperation } from './getOperation'; import { getOperationParameters } from './getOperationParameters'; diff --git a/src/openApi/v3/parser/getType.ts b/src/openApi/v3/parser/getType.ts index 866dd5ed..c873f443 100644 --- a/src/openApi/v3/parser/getType.ts +++ b/src/openApi/v3/parser/getType.ts @@ -1,4 +1,4 @@ -import { Type } from '../../../client/interfaces/Type'; +import type { Type } from '../../../client/interfaces/Type'; import { PrimaryType } from './constants'; import { getMappedType, hasMappedType } from './getMappedType'; import { stripNamespace } from './stripNamespace'; diff --git a/src/openApi/v3/parser/sortByRequired.ts b/src/openApi/v3/parser/sortByRequired.ts index 6737ae2f..05eceb4a 100644 --- a/src/openApi/v3/parser/sortByRequired.ts +++ b/src/openApi/v3/parser/sortByRequired.ts @@ -1,4 +1,4 @@ -import { OperationParameter } from '../../../client/interfaces/OperationParameter'; +import type { OperationParameter } from '../../../client/interfaces/OperationParameter'; export function sortByRequired(a: OperationParameter, b: OperationParameter): number { const aNeedsValue = a.isRequired && a.default === undefined; diff --git a/src/templates/core/ApiError.hbs b/src/templates/core/ApiError.hbs index 6b61e18a..f8b82941 100644 --- a/src/templates/core/ApiError.hbs +++ b/src/templates/core/ApiError.hbs @@ -1,6 +1,6 @@ {{>header}} -import { ApiResult } from './ApiResult'; +import type { ApiResult } from './ApiResult'; export class ApiError extends Error { public readonly url: string; diff --git a/src/templates/core/OpenAPI.hbs b/src/templates/core/OpenAPI.hbs index c6009575..3974025f 100644 --- a/src/templates/core/OpenAPI.hbs +++ b/src/templates/core/OpenAPI.hbs @@ -3,7 +3,6 @@ interface Config { BASE: string; VERSION: string; - CLIENT: 'fetch' | 'xhr' | 'node'; WITH_CREDENTIALS: boolean; TOKEN: string; } @@ -11,7 +10,6 @@ interface Config { export const OpenAPI: Config = { BASE: '{{{server}}}', VERSION: '{{{version}}}', - CLIENT: '{{{httpClient}}}', WITH_CREDENTIALS: false, TOKEN: '', }; diff --git a/src/templates/core/fetch/request.hbs b/src/templates/core/fetch/request.hbs index b6a20a6b..2bbfe4d3 100644 --- a/src/templates/core/fetch/request.hbs +++ b/src/templates/core/fetch/request.hbs @@ -1,8 +1,8 @@ {{>header}} import { ApiError } from './ApiError'; -import { ApiRequestOptions } from './ApiRequestOptions'; -import { ApiResult } from './ApiResult'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; import { OpenAPI } from './OpenAPI'; {{>functions/isDefined}} diff --git a/src/templates/core/node/request.hbs b/src/templates/core/node/request.hbs index 3443b00a..c3d4abed 100644 --- a/src/templates/core/node/request.hbs +++ b/src/templates/core/node/request.hbs @@ -1,8 +1,8 @@ {{>header}} import { ApiError } from './ApiError'; -import { ApiRequestOptions } from './ApiRequestOptions'; -import { ApiResult } from './ApiResult'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; import { OpenAPI } from './OpenAPI'; import fetch, { Headers, RequestInit, Response, BodyInit } from 'node-fetch'; import * as FormData from 'form-data'; diff --git a/src/templates/core/xhr/request.hbs b/src/templates/core/xhr/request.hbs index e91ecd01..44fe1742 100644 --- a/src/templates/core/xhr/request.hbs +++ b/src/templates/core/xhr/request.hbs @@ -1,8 +1,8 @@ {{>header}} import { ApiError } from './ApiError'; -import { ApiRequestOptions } from './ApiRequestOptions'; -import { ApiResult } from './ApiResult'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; import { OpenAPI } from './OpenAPI'; {{>functions/isDefined}} diff --git a/src/templates/exportModel.hbs b/src/templates/exportModel.hbs index 5bc017a7..e61e96b2 100644 --- a/src/templates/exportModel.hbs +++ b/src/templates/exportModel.hbs @@ -2,7 +2,7 @@ {{#if imports}} {{#each imports}} -import { {{{this}}} } from './{{{this}}}'; +import type { {{{this}}} } from './{{{this}}}'; {{/each}} {{/if}} diff --git a/src/templates/exportSchema.hbs b/src/templates/exportSchema.hbs index d0f33fb7..0495c4d6 100644 --- a/src/templates/exportSchema.hbs +++ b/src/templates/exportSchema.hbs @@ -2,7 +2,7 @@ {{#if extends}} {{#each extends}} -import { ${{{this}}} } from './${{{this}}}'; +import type { ${{{this}}} } from './${{{this}}}'; {{/each}} {{/if}} diff --git a/src/templates/exportService.hbs b/src/templates/exportService.hbs index cc9d630d..a1f6f00e 100644 --- a/src/templates/exportService.hbs +++ b/src/templates/exportService.hbs @@ -2,11 +2,11 @@ {{#if imports}} {{#each imports}} -import { {{{this}}} } from '../models/{{{this}}}'; +import type { {{{this}}} } from '../models/{{{this}}}'; {{/each}} {{/if}} import { request as __request } from '../core/request'; -{{#if useVersion}} +{{#if @root.useVersion}} import { OpenAPI } from '../core/OpenAPI'; {{/if}} diff --git a/src/templates/index.hbs b/src/templates/index.hbs index b530e09f..e10436ba 100644 --- a/src/templates/index.hbs +++ b/src/templates/index.hbs @@ -1,15 +1,17 @@ {{>header}} -{{#if exportCore}} +{{#if @root.exportCore}} export { ApiError } from './core/ApiError'; export { OpenAPI } from './core/OpenAPI'; {{/if}} -{{#if exportModels}} +{{#if @root.exportModels}} {{#if models}} {{#each models}} {{#if enum}} export { {{{name}}} } from './models/{{{name}}}'; +{{else if @root.useUnionTypes}} +export type { {{{name}}} } from './models/{{{name}}}'; {{else if enums}} export { {{{name}}} } from './models/{{{name}}}'; {{else}} @@ -18,7 +20,7 @@ export type { {{{name}}} } from './models/{{{name}}}'; {{/each}} {{/if}} {{/if}} -{{#if exportSchemas}} +{{#if @root.exportSchemas}} {{#if models}} {{#each models}} @@ -26,7 +28,7 @@ export { ${{{name}}} } from './schemas/${{{name}}}'; {{/each}} {{/if}} {{/if}} -{{#if exportServices}} +{{#if @root.exportServices}} {{#if services}} {{#each services}} diff --git a/src/templates/partials/exportInterface.hbs b/src/templates/partials/exportInterface.hbs index c0a88b2d..e045e1e5 100644 --- a/src/templates/partials/exportInterface.hbs +++ b/src/templates/partials/exportInterface.hbs @@ -14,6 +14,7 @@ export interface {{{name}}}{{>extends}} { {{/each}} } {{#if enums}} +{{#unless @root.useUnionTypes}} export namespace {{{name}}} { @@ -32,4 +33,5 @@ export namespace {{{name}}} { {{/each}} } +{{/unless}} {{/if}} diff --git a/src/templates/partials/typeEnum.hbs b/src/templates/partials/typeEnum.hbs index 5cc39eba..125c9924 100644 --- a/src/templates/partials/typeEnum.hbs +++ b/src/templates/partials/typeEnum.hbs @@ -1,9 +1,13 @@ -{{~#if parent~}} -{{{parent}}}.{{{name}}}{{>isNullable}} -{{~else~}} -( +{{~#if @root.useUnionTypes~}} {{~#each enum~}} {{{value}}}{{#unless @last}} | {{/unless}} {{~/each~}} -){{>isNullable}} +{{>isNullable}} +{{~else if parent~}} +{{{parent}}}.{{{name}}}{{>isNullable}} +{{~else~}} +{{~#each enum~}} +{{{value}}}{{#unless @last}} | {{/unless}} +{{~/each~}} +{{>isNullable}} {{~/if~}} diff --git a/src/utils/getModelNames.spec.ts b/src/utils/getModelNames.spec.ts index ff006a09..c97d97d6 100644 --- a/src/utils/getModelNames.spec.ts +++ b/src/utils/getModelNames.spec.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { getModelNames } from './getModelNames'; describe('getModelNames', () => { diff --git a/src/utils/getModelNames.ts b/src/utils/getModelNames.ts index c53f2039..78cd58b1 100644 --- a/src/utils/getModelNames.ts +++ b/src/utils/getModelNames.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { sort } from './sort'; export function getModelNames(models: Model[]): string[] { diff --git a/src/utils/getServiceNames.spec.ts b/src/utils/getServiceNames.spec.ts index a6df31d3..4ec39ea1 100644 --- a/src/utils/getServiceNames.spec.ts +++ b/src/utils/getServiceNames.spec.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { getServiceNames } from './getServiceNames'; describe('getServiceNames', () => { diff --git a/src/utils/getServiceNames.ts b/src/utils/getServiceNames.ts index f00197ad..78f18469 100644 --- a/src/utils/getServiceNames.ts +++ b/src/utils/getServiceNames.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { sort } from './sort'; export function getServiceNames(services: Service[]): string[] { diff --git a/src/utils/postProcessClient.ts b/src/utils/postProcessClient.ts index d3cec023..9e0e00dd 100644 --- a/src/utils/postProcessClient.ts +++ b/src/utils/postProcessClient.ts @@ -1,4 +1,4 @@ -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { postProcessModel } from './postProcessModel'; import { postProcessService } from './postProcessService'; diff --git a/src/utils/postProcessModel.ts b/src/utils/postProcessModel.ts index 08adea20..c2e06622 100644 --- a/src/utils/postProcessModel.ts +++ b/src/utils/postProcessModel.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { postProcessModelEnum } from './postProcessModelEnum'; import { postProcessModelEnums } from './postProcessModelEnums'; import { postProcessModelImports } from './postProcessModelImports'; diff --git a/src/utils/postProcessModelEnum.ts b/src/utils/postProcessModelEnum.ts index ee367386..c2655726 100644 --- a/src/utils/postProcessModelEnum.ts +++ b/src/utils/postProcessModelEnum.ts @@ -1,5 +1,5 @@ -import { Enum } from '../client/interfaces/Enum'; -import { Model } from '../client/interfaces/Model'; +import type { Enum } from '../client/interfaces/Enum'; +import type { Model } from '../client/interfaces/Model'; /** * Set unique enum values for the model diff --git a/src/utils/postProcessModelEnums.ts b/src/utils/postProcessModelEnums.ts index 4ab3a787..e220e213 100644 --- a/src/utils/postProcessModelEnums.ts +++ b/src/utils/postProcessModelEnums.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; /** * Set unique enum values for the model diff --git a/src/utils/postProcessModelImports.ts b/src/utils/postProcessModelImports.ts index 02252ec2..949dd7b3 100644 --- a/src/utils/postProcessModelImports.ts +++ b/src/utils/postProcessModelImports.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { sort } from './sort'; import { unique } from './unique'; diff --git a/src/utils/postProcessService.ts b/src/utils/postProcessService.ts index 51e8e432..d604dcdd 100644 --- a/src/utils/postProcessService.ts +++ b/src/utils/postProcessService.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { postProcessServiceImports } from './postProcessServiceImports'; import { postProcessServiceOperations } from './postProcessServiceOperations'; diff --git a/src/utils/postProcessServiceImports.ts b/src/utils/postProcessServiceImports.ts index adb15333..008dd2b4 100644 --- a/src/utils/postProcessServiceImports.ts +++ b/src/utils/postProcessServiceImports.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { sort } from './sort'; import { unique } from './unique'; diff --git a/src/utils/postProcessServiceOperations.ts b/src/utils/postProcessServiceOperations.ts index 33105243..62faad72 100644 --- a/src/utils/postProcessServiceOperations.ts +++ b/src/utils/postProcessServiceOperations.ts @@ -1,5 +1,5 @@ -import { Operation } from '../client/interfaces/Operation'; -import { Service } from '../client/interfaces/Service'; +import type { Operation } from '../client/interfaces/Operation'; +import type { Service } from '../client/interfaces/Service'; import { flatMap } from './flatMap'; export function postProcessServiceOperations(service: Service): Operation[] { diff --git a/src/utils/sortModelsByName.spec.ts b/src/utils/sortModelsByName.spec.ts index 764e6aeb..8365024e 100644 --- a/src/utils/sortModelsByName.spec.ts +++ b/src/utils/sortModelsByName.spec.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { sortModelsByName } from './sortModelsByName'; describe('sortModelsByName', () => { diff --git a/src/utils/sortModelsByName.ts b/src/utils/sortModelsByName.ts index 8013cf81..c4d272e1 100644 --- a/src/utils/sortModelsByName.ts +++ b/src/utils/sortModelsByName.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; export function sortModelsByName(models: Model[]): Model[] { return models.sort((a, b) => { diff --git a/src/utils/sortServicesByName.spec.ts b/src/utils/sortServicesByName.spec.ts index 3fdcc8a6..bcce6c4e 100644 --- a/src/utils/sortServicesByName.spec.ts +++ b/src/utils/sortServicesByName.spec.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { sortServicesByName } from './sortServicesByName'; describe('sortServicesByName', () => { diff --git a/src/utils/sortServicesByName.ts b/src/utils/sortServicesByName.ts index 1dc1bfbd..9ff4d871 100644 --- a/src/utils/sortServicesByName.ts +++ b/src/utils/sortServicesByName.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; export function sortServicesByName(services: Service[]): Service[] { return services.sort((a, b) => { diff --git a/src/utils/writeClient.spec.ts b/src/utils/writeClient.spec.ts index 4617c6f0..be6d3fd5 100644 --- a/src/utils/writeClient.spec.ts +++ b/src/utils/writeClient.spec.ts @@ -1,4 +1,4 @@ -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { HttpClient } from '../index'; import { mkdir, rmdir, writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; diff --git a/src/utils/writeClient.ts b/src/utils/writeClient.ts index a04c9265..556dde3b 100644 --- a/src/utils/writeClient.ts +++ b/src/utils/writeClient.ts @@ -1,6 +1,6 @@ import * as path from 'path'; -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { HttpClient } from '../index'; import { mkdir, rmdir } from './fileSystem'; import { isSubDirectory } from './isSubdirectory'; @@ -14,15 +14,15 @@ import { writeClientServices } from './writeClientServices'; /** * Write our OpenAPI client, using the given templates at the given output path. * @param client Client object with all the models, services, etc. - * @param templates Templates wrapper with all loaded Handlebars templates. - * @param output Directory to write the generated files to. - * @param httpClient The selected httpClient (fetch or XHR). - * @param useOptions Use options or arguments functions. - * @param useUnionTypes Use union types or enums. - * @param exportCore: Generate core. - * @param exportServices: Generate services. - * @param exportModels: Generate models. - * @param exportSchemas: Generate schemas. + * @param templates Templates wrapper with all loaded Handlebars templates + * @param output The relative location of the output directory + * @param httpClient The selected httpClient (fetch or XHR) + * @param useOptions Use options or arguments functions + * @param useUnionTypes Use union types instead of enums + * @param exportCore: Generate core client classes + * @param exportServices: Generate services + * @param exportModels: Generate models + * @param exportSchemas: Generate schemas */ export async function writeClient( client: Client, @@ -56,18 +56,18 @@ export async function writeClient( if (exportServices) { await mkdir(outputPathServices); - await writeClientServices(client.services, templates, outputPathServices, useOptions); + await writeClientServices(client.services, templates, outputPathServices, useUnionTypes, useOptions); } if (exportSchemas) { await mkdir(outputPathSchemas); - await writeClientSchemas(client.models, templates, outputPathSchemas); + await writeClientSchemas(client.models, templates, outputPathSchemas, useUnionTypes); } if (exportModels) { await mkdir(outputPathModels); - await writeClientModels(client.models, templates, outputPathModels); + await writeClientModels(client.models, templates, outputPathModels, useUnionTypes); } - await writeClientIndex(client, templates, outputPath, exportCore, exportServices, exportModels, exportSchemas); + await writeClientIndex(client, templates, outputPath, useUnionTypes, exportCore, exportServices, exportModels, exportSchemas); } diff --git a/src/utils/writeClientCore.spec.ts b/src/utils/writeClientCore.spec.ts index bc82edd5..c699c192 100644 --- a/src/utils/writeClientCore.spec.ts +++ b/src/utils/writeClientCore.spec.ts @@ -1,4 +1,4 @@ -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { HttpClient } from '../index'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; diff --git a/src/utils/writeClientCore.ts b/src/utils/writeClientCore.ts index ec3055f1..1022d6d6 100644 --- a/src/utils/writeClientCore.ts +++ b/src/utils/writeClientCore.ts @@ -1,16 +1,16 @@ import * as path from 'path'; -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { HttpClient } from '../index'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; /** * Generate OpenAPI core files, this includes the basic boilerplate code to handle requests. - * @param client Client object, containing, models, schemas and services. - * @param templates The loaded handlebar templates. - * @param outputPath Directory to write the generated files to. - * @param httpClient The selected httpClient (fetch or XHR). + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param httpClient The selected httpClient (fetch, xhr or node) */ export async function writeClientCore(client: Client, templates: Templates, outputPath: string, httpClient: HttpClient): Promise { const context = { diff --git a/src/utils/writeClientIndex.spec.ts b/src/utils/writeClientIndex.spec.ts index 79a84764..96fdbb63 100644 --- a/src/utils/writeClientIndex.spec.ts +++ b/src/utils/writeClientIndex.spec.ts @@ -1,4 +1,4 @@ -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; import { writeClientIndex } from './writeClientIndex'; diff --git a/src/utils/writeClientIndex.ts b/src/utils/writeClientIndex.ts index e7a3cc44..3091977e 100644 --- a/src/utils/writeClientIndex.ts +++ b/src/utils/writeClientIndex.ts @@ -1,6 +1,6 @@ import * as path from 'path'; -import { Client } from '../client/interfaces/Client'; +import type { Client } from '../client/interfaces/Client'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; import { sortModelsByName } from './sortModelsByName'; @@ -10,18 +10,20 @@ import { sortServicesByName } from './sortServicesByName'; * Generate the OpenAPI client index file using the Handlebar template and write it to disk. * The index file just contains all the exports you need to use the client as a standalone * library. But yuo can also import individual models and services directly. - * @param client Client object, containing, models, schemas and services. - * @param templates The loaded handlebar templates. - * @param outputPath Directory to write the generated files to. - * @param exportCore: Generate core. - * @param exportServices: Generate services. - * @param exportModels: Generate models. - * @param exportSchemas: Generate schemas. + * @param client Client object, containing, models, schemas and services + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums + * @param exportCore: Generate core + * @param exportServices: Generate services + * @param exportModels: Generate models + * @param exportSchemas: Generate schemas */ export async function writeClientIndex( client: Client, templates: Templates, outputPath: string, + useUnionTypes: boolean, exportCore: boolean, exportServices: boolean, exportModels: boolean, @@ -34,6 +36,7 @@ export async function writeClientIndex( exportServices, exportModels, exportSchemas, + useUnionTypes, server: client.server, version: client.version, models: sortModelsByName(client.models), diff --git a/src/utils/writeClientModels.spec.ts b/src/utils/writeClientModels.spec.ts index bb5f0ee8..acd0eab4 100644 --- a/src/utils/writeClientModels.spec.ts +++ b/src/utils/writeClientModels.spec.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; import { writeClientModels } from './writeClientModels'; diff --git a/src/utils/writeClientModels.ts b/src/utils/writeClientModels.ts index 0640ff42..843495cb 100644 --- a/src/utils/writeClientModels.ts +++ b/src/utils/writeClientModels.ts @@ -1,21 +1,23 @@ import * as path from 'path'; -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { writeFile } from './fileSystem'; import { format } from './format'; import { Templates } from './registerHandlebarTemplates'; /** * Generate Models using the Handlebar template and write to disk. - * @param models Array of Models to write. - * @param templates The loaded handlebar templates. - * @param outputPath Directory to write the generated files to. + * @param models Array of Models to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums */ -export async function writeClientModels(models: Model[], templates: Templates, outputPath: string): Promise { +export async function writeClientModels(models: Model[], templates: Templates, outputPath: string, useUnionTypes: boolean): Promise { for (const model of models) { const file = path.resolve(outputPath, `${model.name}.ts`); const templateResult = templates.exports.model({ ...model, + useUnionTypes, }); await writeFile(file, format(templateResult)); } diff --git a/src/utils/writeClientSchemas.spec.ts b/src/utils/writeClientSchemas.spec.ts index 3e378cb5..cc91ae7f 100644 --- a/src/utils/writeClientSchemas.spec.ts +++ b/src/utils/writeClientSchemas.spec.ts @@ -1,4 +1,4 @@ -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; import { writeClientSchemas } from './writeClientSchemas'; diff --git a/src/utils/writeClientSchemas.ts b/src/utils/writeClientSchemas.ts index 57f07b3c..1d6d1ce1 100644 --- a/src/utils/writeClientSchemas.ts +++ b/src/utils/writeClientSchemas.ts @@ -1,21 +1,23 @@ import * as path from 'path'; -import { Model } from '../client/interfaces/Model'; +import type { Model } from '../client/interfaces/Model'; import { writeFile } from './fileSystem'; import { format } from './format'; import { Templates } from './registerHandlebarTemplates'; /** * Generate Schemas using the Handlebar template and write to disk. - * @param models Array of Models to write. - * @param templates The loaded handlebar templates. - * @param outputPath Directory to write the generated files to. + * @param models Array of Models to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums */ -export async function writeClientSchemas(models: Model[], templates: Templates, outputPath: string): Promise { +export async function writeClientSchemas(models: Model[], templates: Templates, outputPath: string, useUnionTypes: boolean): Promise { for (const model of models) { const file = path.resolve(outputPath, `$${model.name}.ts`); const templateResult = templates.exports.schema({ ...model, + useUnionTypes, }); await writeFile(file, format(templateResult)); } diff --git a/src/utils/writeClientServices.spec.ts b/src/utils/writeClientServices.spec.ts index b9b4f8b5..cb67ced3 100644 --- a/src/utils/writeClientServices.spec.ts +++ b/src/utils/writeClientServices.spec.ts @@ -1,4 +1,4 @@ -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { writeFile } from './fileSystem'; import { Templates } from './registerHandlebarTemplates'; import { writeClientServices } from './writeClientServices'; diff --git a/src/utils/writeClientServices.ts b/src/utils/writeClientServices.ts index 92e083d3..8d823285 100644 --- a/src/utils/writeClientServices.ts +++ b/src/utils/writeClientServices.ts @@ -1,6 +1,6 @@ import * as path from 'path'; -import { Service } from '../client/interfaces/Service'; +import type { Service } from '../client/interfaces/Service'; import { writeFile } from './fileSystem'; import { format } from './format'; import { Templates } from './registerHandlebarTemplates'; @@ -9,17 +9,19 @@ const VERSION_TEMPLATE_STRING = 'OpenAPI.VERSION'; /** * Generate Services using the Handlebar template and write to disk. - * @param services Array of Services to write. - * @param templates The loaded handlebar templates. - * @param outputPath Directory to write the generated files to. - * @param useOptions Use options or arguments functions. + * @param services Array of Services to write + * @param templates The loaded handlebar templates + * @param outputPath Directory to write the generated files to + * @param useUnionTypes Use union types instead of enums + * @param useOptions Use options or arguments functions */ -export async function writeClientServices(services: Service[], templates: Templates, outputPath: string, useOptions: boolean): Promise { +export async function writeClientServices(services: Service[], templates: Templates, outputPath: string, useUnionTypes: boolean, useOptions: boolean): Promise { for (const service of services) { const file = path.resolve(outputPath, `${service.name}.ts`); const useVersion = service.operations.some(operation => operation.path.includes(VERSION_TEMPLATE_STRING)); const templateResult = templates.exports.service({ ...service, + useUnionTypes, useVersion, useOptions, }); diff --git a/test/__snapshots__/index.spec.js.snap b/test/__snapshots__/index.spec.js.snap index 91aefb1c..c144e5d2 100644 --- a/test/__snapshots__/index.spec.js.snap +++ b/test/__snapshots__/index.spec.js.snap @@ -4,7 +4,7 @@ exports[`v2 should generate: ./test/generated/v2/core/ApiError.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ApiResult } from './ApiResult'; +import type { ApiResult } from './ApiResult'; export class ApiError extends Error { public readonly url: string; @@ -60,7 +60,6 @@ exports[`v2 should generate: ./test/generated/v2/core/OpenAPI.ts 1`] = ` interface Config { BASE: string; VERSION: string; - CLIENT: 'fetch' | 'xhr' | 'node'; WITH_CREDENTIALS: boolean; TOKEN: string; } @@ -68,7 +67,6 @@ interface Config { export const OpenAPI: Config = { BASE: 'http://localhost:3000/base', VERSION: '1.0', - CLIENT: 'fetch', WITH_CREDENTIALS: false, TOKEN: '', };" @@ -79,8 +77,8 @@ exports[`v2 should generate: ./test/generated/v2/core/request.ts 1`] = ` /* tslint:disable */ /* eslint-disable */ import { ApiError } from './ApiError'; -import { ApiRequestOptions } from './ApiRequestOptions'; -import { ApiResult } from './ApiResult'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; import { OpenAPI } from './OpenAPI'; function isDefined(value: T | null | undefined): value is Exclude { @@ -358,7 +356,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ArrayWithArray.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a simple array containing an array @@ -403,7 +401,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ArrayWithReferences.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a simple array with references @@ -425,7 +423,7 @@ exports[`v2 should generate: ./test/generated/v2/models/DictionaryWithArray.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a complex dictionary @@ -460,7 +458,7 @@ exports[`v2 should generate: ./test/generated/v2/models/DictionaryWithReference. "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a string reference @@ -560,7 +558,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelThatExtends.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -576,8 +574,8 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelThatExtendsExtends. "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelThatExtends } from './ModelThatExtends'; -import { ModelWithString } from './ModelWithString'; +import type { ModelThatExtends } from './ModelThatExtends'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -593,7 +591,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithArray.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with one property containing an array @@ -652,7 +650,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithDuplicateImport "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated imports @@ -669,7 +667,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithDuplicateProper "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated properties @@ -776,8 +774,8 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithLink.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelLink } from './ModelLink'; -import { ModelWithString } from './ModelWithString'; +import type { ModelLink } from './ModelLink'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model that can have a template?? @@ -796,10 +794,10 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithNestedEnums.ts * This is a model with nested enums */ export interface ModelWithNestedEnums { - dictionaryWithEnum?: Record; - dictionaryWithEnumFromDescription?: Record; - arrayWithEnum?: Array<('Success' | 'Warning' | 'Error')>; - arrayWithDescription?: Array<(1 | 2 | 3)>; + dictionaryWithEnum?: Record; + dictionaryWithEnumFromDescription?: Record; + arrayWithEnum?: Array<'Success' | 'Warning' | 'Error'>; + arrayWithDescription?: Array<1 | 2 | 3>; } " `; @@ -856,7 +854,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithProperties.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with one nested property @@ -876,7 +874,7 @@ exports[`v2 should generate: ./test/generated/v2/models/ModelWithReference.ts 1` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithProperties } from './ModelWithProperties'; +import type { ModelWithProperties } from './ModelWithProperties'; /** * This is a model with one property containing a reference @@ -950,7 +948,7 @@ exports[`v2 should generate: ./test/generated/v2/models/SimpleReference.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a simple reference @@ -1120,7 +1118,7 @@ exports[`v2 should generate: ./test/generated/v2/schemas/$ModelThatExtends.ts 1` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { $ModelWithString } from './$ModelWithString'; +import type { $ModelWithString } from './$ModelWithString'; export const $ModelThatExtends = { properties: { @@ -1139,8 +1137,8 @@ exports[`v2 should generate: ./test/generated/v2/schemas/$ModelThatExtendsExtend "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { $ModelWithString } from './$ModelWithString'; -import { $ModelThatExtends } from './$ModelThatExtends'; +import type { $ModelWithString } from './$ModelWithString'; +import type { $ModelThatExtends } from './$ModelThatExtends'; export const $ModelThatExtendsExtends = { properties: { @@ -1514,7 +1512,7 @@ exports[`v2 should generate: ./test/generated/v2/services/ComplexService.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -1558,7 +1556,7 @@ exports[`v2 should generate: ./test/generated/v2/services/DefaultsService.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -1576,7 +1574,7 @@ export class DefaultsService { parameterString: string = 'Hello World!', parameterNumber: number = 123, parameterBoolean: boolean = true, - parameterEnum: ('Success' | 'Warning' | 'Error') = 'Success', + parameterEnum: 'Success' | 'Warning' | 'Error' = 'Success', parameterModel: ModelWithString = { \\"prop\\": \\"Hello World!\\" }, @@ -1607,7 +1605,7 @@ export class DefaultsService { parameterString: string = 'Hello World!', parameterNumber: number = 123, parameterBoolean: boolean = true, - parameterEnum: ('Success' | 'Warning' | 'Error') = 'Success', + parameterEnum: 'Success' | 'Warning' | 'Error' = 'Success', parameterModel: ModelWithString = { \\"prop\\": \\"Hello World!\\" }, @@ -1830,9 +1828,9 @@ exports[`v2 should generate: ./test/generated/v2/services/ResponseService.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelThatExtends } from '../models/ModelThatExtends'; -import { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelThatExtends } from '../models/ModelThatExtends'; +import type { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -2005,7 +2003,7 @@ export class TypesService { public static async types( parameterArray: Array, parameterDictionary: Record, - parameterEnum: ('Success' | 'Warning' | 'Error'), + parameterEnum: 'Success' | 'Warning' | 'Error', parameterNumber: number = 123, parameterString: string = 'default', parameterBoolean: boolean = true, @@ -2035,7 +2033,7 @@ exports[`v3 should generate: ./test/generated/v3/core/ApiError.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ApiResult } from './ApiResult'; +import type { ApiResult } from './ApiResult'; export class ApiError extends Error { public readonly url: string; @@ -2091,7 +2089,6 @@ exports[`v3 should generate: ./test/generated/v3/core/OpenAPI.ts 1`] = ` interface Config { BASE: string; VERSION: string; - CLIENT: 'fetch' | 'xhr' | 'node'; WITH_CREDENTIALS: boolean; TOKEN: string; } @@ -2099,7 +2096,6 @@ interface Config { export const OpenAPI: Config = { BASE: 'http://localhost:3000/base', VERSION: '1.0', - CLIENT: 'fetch', WITH_CREDENTIALS: false, TOKEN: '', };" @@ -2110,8 +2106,8 @@ exports[`v3 should generate: ./test/generated/v3/core/request.ts 1`] = ` /* tslint:disable */ /* eslint-disable */ import { ApiError } from './ApiError'; -import { ApiRequestOptions } from './ApiRequestOptions'; -import { ApiResult } from './ApiResult'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; import { OpenAPI } from './OpenAPI'; function isDefined(value: T | null | undefined): value is Exclude { @@ -2396,7 +2392,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ArrayWithArray.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a simple array containing an array @@ -2441,7 +2437,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ArrayWithReferences.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a simple array with references @@ -2463,7 +2459,7 @@ exports[`v3 should generate: ./test/generated/v3/models/DictionaryWithArray.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a complex dictionary @@ -2498,7 +2494,7 @@ exports[`v3 should generate: ./test/generated/v3/models/DictionaryWithReference. "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a string reference @@ -2598,7 +2594,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelThatExtends.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -2614,8 +2610,8 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelThatExtendsExtends. "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelThatExtends } from './ModelThatExtends'; -import { ModelWithString } from './ModelWithString'; +import type { ModelThatExtends } from './ModelThatExtends'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model that extends another model @@ -2631,10 +2627,10 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithAnyOf.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithArray } from './ModelWithArray'; -import { ModelWithDictionary } from './ModelWithDictionary'; -import { ModelWithEnum } from './ModelWithEnum'; -import { ModelWithString } from './ModelWithString'; +import type { ModelWithArray } from './ModelWithArray'; +import type { ModelWithDictionary } from './ModelWithDictionary'; +import type { ModelWithEnum } from './ModelWithEnum'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with one property with a 'any of' relationship @@ -2649,7 +2645,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithArray.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with one property containing an array @@ -2708,7 +2704,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithDuplicateImport "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated imports @@ -2725,7 +2721,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithDuplicateProper "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with duplicated properties @@ -2832,8 +2828,8 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithLink.ts 1`] = ` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelLink } from './ModelLink'; -import { ModelWithString } from './ModelWithString'; +import type { ModelLink } from './ModelLink'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model that can have a template?? @@ -2852,10 +2848,10 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithNestedEnums.ts * This is a model with nested enums */ export interface ModelWithNestedEnums { - dictionaryWithEnum?: Record; - dictionaryWithEnumFromDescription?: Record; - arrayWithEnum?: Array<('Success' | 'Warning' | 'Error')>; - arrayWithDescription?: Array<(1 | 2 | 3)>; + dictionaryWithEnum?: Record; + dictionaryWithEnumFromDescription?: Record; + arrayWithEnum?: Array<'Success' | 'Warning' | 'Error'>; + arrayWithDescription?: Array<1 | 2 | 3>; } " `; @@ -2881,10 +2877,10 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithOneOf.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithArray } from './ModelWithArray'; -import { ModelWithDictionary } from './ModelWithDictionary'; -import { ModelWithEnum } from './ModelWithEnum'; -import { ModelWithString } from './ModelWithString'; +import type { ModelWithArray } from './ModelWithArray'; +import type { ModelWithDictionary } from './ModelWithDictionary'; +import type { ModelWithEnum } from './ModelWithEnum'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with one property with a 'one of' relationship @@ -2930,7 +2926,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithProperties.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a model with one nested property @@ -2951,7 +2947,7 @@ exports[`v3 should generate: ./test/generated/v3/models/ModelWithReference.ts 1` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithProperties } from './ModelWithProperties'; +import type { ModelWithProperties } from './ModelWithProperties'; /** * This is a model with one property containing a reference @@ -3025,7 +3021,7 @@ exports[`v3 should generate: ./test/generated/v3/models/SimpleReference.ts 1`] = "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from './ModelWithString'; +import type { ModelWithString } from './ModelWithString'; /** * This is a simple reference @@ -3195,7 +3191,7 @@ exports[`v3 should generate: ./test/generated/v3/schemas/$ModelThatExtends.ts 1` "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { $ModelWithString } from './$ModelWithString'; +import type { $ModelWithString } from './$ModelWithString'; export const $ModelThatExtends = { properties: { @@ -3214,8 +3210,8 @@ exports[`v3 should generate: ./test/generated/v3/schemas/$ModelThatExtendsExtend "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { $ModelWithString } from './$ModelWithString'; -import { $ModelThatExtends } from './$ModelThatExtends'; +import type { $ModelWithString } from './$ModelWithString'; +import type { $ModelThatExtends } from './$ModelThatExtends'; export const $ModelThatExtendsExtends = { properties: { @@ -3623,10 +3619,10 @@ exports[`v3 should generate: ./test/generated/v3/services/ComplexService.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithArray } from '../models/ModelWithArray'; -import { ModelWithDictionary } from '../models/ModelWithDictionary'; -import { ModelWithEnum } from '../models/ModelWithEnum'; -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelWithArray } from '../models/ModelWithArray'; +import type { ModelWithDictionary } from '../models/ModelWithDictionary'; +import type { ModelWithEnum } from '../models/ModelWithEnum'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -3675,7 +3671,7 @@ export class ComplexService { readonly key: string | null, name: string | null, enabled?: boolean, - readonly type: ('Monkey' | 'Horse' | 'Bird'), + readonly type: 'Monkey' | 'Horse' | 'Bird', listOfModels?: Array | null, listOfStrings?: Array | null, parameters: ModelWithArray | ModelWithDictionary | ModelWithEnum | ModelWithString, @@ -3700,7 +3696,7 @@ exports[`v3 should generate: ./test/generated/v3/services/DefaultsService.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -3718,7 +3714,7 @@ export class DefaultsService { parameterString: string | null = 'Hello World!', parameterNumber: number | null = 123, parameterBoolean: boolean | null = true, - parameterEnum: ('Success' | 'Warning' | 'Error') = 'Success', + parameterEnum: 'Success' | 'Warning' | 'Error' = 'Success', parameterModel: ModelWithString | null = { \\"prop\\": \\"Hello World!\\" }, @@ -3749,7 +3745,7 @@ export class DefaultsService { parameterString: string = 'Hello World!', parameterNumber: number = 123, parameterBoolean: boolean = true, - parameterEnum: ('Success' | 'Warning' | 'Error') = 'Success', + parameterEnum: 'Success' | 'Warning' | 'Error' = 'Success', parameterModel: ModelWithString = { \\"prop\\": \\"Hello World!\\" }, @@ -3922,7 +3918,7 @@ exports[`v3 should generate: ./test/generated/v3/services/ParametersService.ts 1 "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -4053,7 +4049,7 @@ exports[`v3 should generate: ./test/generated/v3/services/RequestBodyService.ts "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -4081,9 +4077,9 @@ exports[`v3 should generate: ./test/generated/v3/services/ResponseService.ts 1`] "/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -import { ModelThatExtends } from '../models/ModelThatExtends'; -import { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; -import { ModelWithString } from '../models/ModelWithString'; +import type { ModelThatExtends } from '../models/ModelThatExtends'; +import type { ModelThatExtendsExtends } from '../models/ModelThatExtendsExtends'; +import type { ModelWithString } from '../models/ModelWithString'; import { request as __request } from '../core/request'; import { OpenAPI } from '../core/OpenAPI'; @@ -4256,7 +4252,7 @@ export class TypesService { public static async types( parameterArray: Array | null, parameterDictionary: any, - parameterEnum: ('Success' | 'Warning' | 'Error') | null, + parameterEnum: 'Success' | 'Warning' | 'Error' | null, parameterNumber: number = 123, parameterString: string | null = 'default', parameterBoolean: boolean | null = true, diff --git a/test/e2e/scripts/compile.js b/test/e2e/scripts/compile.js index 43ea75e7..372b9ab1 100644 --- a/test/e2e/scripts/compile.js +++ b/test/e2e/scripts/compile.js @@ -25,11 +25,12 @@ function compile(dir) { // Show errors or warnings (if any) const diagnostics = ts.getPreEmitDiagnostics(compiler).concat(result.diagnostics); if (diagnostics.length) { - console.log(ts.formatDiagnosticsWithColorAndContext(diagnostics, { + const message = ts.formatDiagnosticsWithColorAndContext(diagnostics, { getCurrentDirectory: () => ts.sys.getCurrentDirectory(), getCanonicalFileName: f => f, - getNewLine: () => os.EOL - })); + getNewLine: () => os.EOL, + }); + console.log(message); } } diff --git a/test/e2e/scripts/server.js b/test/e2e/scripts/server.js index fa9c4e8e..9e76c53a 100644 --- a/test/e2e/scripts/server.js +++ b/test/e2e/scripts/server.js @@ -14,7 +14,7 @@ async function start(dir) { // and all other relative paths are resolved from that file. app.use('/js', express.static(`./test/e2e/generated/${dir}/`, { extensions: ['', 'js'], - index: 'index.js' + index: 'index.js', })); // When we request the index then we can just return the script loader. diff --git a/test/e2e/scripts/transpile.js b/test/e2e/scripts/transpile.js index b114a2ed..37fbe7fc 100644 --- a/test/e2e/scripts/transpile.js +++ b/test/e2e/scripts/transpile.js @@ -8,9 +8,19 @@ function transpile(dir) { glob.sync(`./test/e2e/generated/${dir}/**/*.ts`).forEach(file => { try { const content = fs.readFileSync(file, 'utf8').toString(); - const result = babel.transformSync(content, {filename: file}); - const filename = file.replace(/\.ts$/, '.js'); - fs.writeFileSync(filename, result.code); + const result = babel.transformSync(content, { + filename: file, + presets: [ + ['@babel/preset-env', { + modules: false, + }], + ['@babel/preset-typescript', { + onlyRemoveTypeImports: true, + }], + ], + }); + const out = file.replace(/\.ts$/, '.js'); + fs.writeFileSync(out, result.code); } catch (error) { console.error(error); } diff --git a/test/index.js b/test/index.js index 7c88334b..115c033c 100644 --- a/test/index.js +++ b/test/index.js @@ -7,8 +7,8 @@ async function generateV2() { input: './test/spec/v2.json', output: './test/generated/v2/', httpClient: OpenAPI.HttpClient.FETCH, - useOptions: false, - useUnionTypes: false, + useOptions: true, + useUnionTypes: true, exportCore: true, exportSchemas: true, exportModels: true, @@ -21,8 +21,8 @@ async function generateV3() { input: './test/spec/v3.json', output: './test/generated/v3/', httpClient: OpenAPI.HttpClient.FETCH, - useOptions: false, - useUnionTypes: false, + useOptions: true, + useUnionTypes: true, exportCore: true, exportSchemas: true, exportModels: true,