diff --git a/packages/openapi-code-generator/src/cli.ts b/packages/openapi-code-generator/src/cli.ts index 8899e2ad5..ebf93a50d 100644 --- a/packages/openapi-code-generator/src/cli.ts +++ b/packages/openapi-code-generator/src/cli.ts @@ -2,6 +2,8 @@ import "source-map-support/register" +// eslint-disable-next-line no-restricted-imports +import path from "node:path" import { Command, InvalidArgumentError, @@ -10,6 +12,7 @@ import { import {promptContinue} from "./core/cli-utils" import {NodeFsAdaptor} from "./core/file-system/node-fs-adaptor" import {OperationGroupStrategy} from "./core/input" +import {loadTsConfigCompilerOptions} from "./core/loaders/tsconfig.loader" import {logger} from "./core/logger" import {OpenapiValidator} from "./core/openapi-validator" import {generate} from "./index" @@ -142,8 +145,20 @@ async function main() { "yes", ) }) + const compilerOptions = await loadTsConfigCompilerOptions( + path.join(process.cwd(), config.output), + fsAdaptor, + ) - await generate(config, fsAdaptor, formatter, validator) + await generate( + { + ...config, + tsCompilerOptions: compilerOptions, + }, + fsAdaptor, + formatter, + validator, + ) } main() diff --git a/packages/openapi-code-generator/src/index.ts b/packages/openapi-code-generator/src/index.ts index 242131e11..3af9416c4 100644 --- a/packages/openapi-code-generator/src/index.ts +++ b/packages/openapi-code-generator/src/index.ts @@ -1,10 +1,8 @@ -import path from "path" - import {IFsAdaptor} from "./core/file-system/fs-adaptor" import {Input} from "./core/input" import {IFormatter} from "./core/interfaces" import {GenericLoader} from "./core/loaders/generic.loader" -import {loadTsConfigCompilerOptions} from "./core/loaders/tsconfig.loader" +import type {CompilerOptions} from "./core/loaders/tsconfig.loader" import {logger} from "./core/logger" import {OpenapiLoader} from "./core/openapi-loader" import {OpenapiValidator} from "./core/openapi-validator" @@ -26,6 +24,7 @@ export type Config = { allowUnusedImports: boolean groupingStrategy: "none" | "first-slug" | "first-tag" tsAllowAny: boolean + tsCompilerOptions: CompilerOptions } export async function generate( @@ -38,11 +37,6 @@ export async function generate( logger.info(`running on input file '${config.input}'`) logger.time("load files") - const compilerOptions = await loadTsConfigCompilerOptions( - path.join(process.cwd(), config.output), - fsAdaptor, - ) - const genericLoader = new GenericLoader(fsAdaptor) const loader = await OpenapiLoader.create( @@ -67,7 +61,7 @@ export async function generate( emitter, schemaBuilder: config.schemaBuilder, enableRuntimeResponseValidation: config.enableRuntimeResponseValidation, - compilerOptions, + compilerOptions: config.tsCompilerOptions, groupingStrategy: config.groupingStrategy, allowAny: config.tsAllowAny, }) diff --git a/packages/openapi-code-generator/src/templates.types.ts b/packages/openapi-code-generator/src/templates.types.ts index 4feee5ede..bd788667e 100644 --- a/packages/openapi-code-generator/src/templates.types.ts +++ b/packages/openapi-code-generator/src/templates.types.ts @@ -1,5 +1,5 @@ import {Input, OperationGroupStrategy} from "./core/input" -import {CompilerOptions} from "./core/loaders/tsconfig.loader" +import type {CompilerOptions} from "./core/loaders/tsconfig.loader" import {SchemaBuilderType} from "./typescript/common/schema-builders/schema-builder" import {TypescriptEmitter} from "./typescript/common/typescript-emitter" diff --git a/packages/openapi-code-generator/src/typescript/common/type-builder.spec.ts b/packages/openapi-code-generator/src/typescript/common/type-builder.spec.ts index 50d91c717..33c374feb 100644 --- a/packages/openapi-code-generator/src/typescript/common/type-builder.spec.ts +++ b/packages/openapi-code-generator/src/typescript/common/type-builder.spec.ts @@ -1,5 +1,5 @@ import {describe, expect, it} from "@jest/globals" -import {CompilerOptions} from "../../core/loaders/tsconfig.loader" +import type {CompilerOptions} from "../../core/loaders/tsconfig.loader" import {testVersions, unitTestInput} from "../../test/input.test-utils" import {ImportBuilder} from "./import-builder" import {TypeBuilder, TypeBuilderConfig} from "./type-builder" diff --git a/packages/openapi-code-generator/src/typescript/common/type-builder.ts b/packages/openapi-code-generator/src/typescript/common/type-builder.ts index 7e8e14581..916065ce5 100644 --- a/packages/openapi-code-generator/src/typescript/common/type-builder.ts +++ b/packages/openapi-code-generator/src/typescript/common/type-builder.ts @@ -1,5 +1,5 @@ import {Input} from "../../core/input" -import {CompilerOptions} from "../../core/loaders/tsconfig.loader" +import type {CompilerOptions} from "../../core/loaders/tsconfig.loader" import {logger} from "../../core/logger" import {Reference} from "../../core/openapi-types" import {MaybeIRModel} from "../../core/openapi-types-normalized"