···242242243243## API
244244245245-You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/types/config.d.ts) interface.
245245+You can view the complete list of options in the [UserConfig](https://github.com/hey-api/openapi-ts/blob/main/packages/openapi-ts/src/config/types.d.ts) interface.
246246247247<!--@include: ../partials/examples.md-->
248248<!--@include: ../partials/sponsors.md-->
···11import { describe, expect, it } from 'vitest';
2233-import type { UserConfig } from '~/types/config';
44-53import { getInput } from '../input';
44+import type { UserConfig } from '../types';
6576describe('input config', () => {
87 describe('getInput', () => {
+2-2
packages/openapi-ts/src/config/init.ts
···11import path from 'node:path';
2233+import type { Logger } from '@hey-api/codegen-core';
34import type { ArrayOnly } from '@hey-api/types';
45import colors from 'ansi-colors';
5667import { ConfigError } from '~/error';
77-import type { Config, UserConfig } from '~/types/config';
88-import type { Logger } from '~/utils/logger';
98109import { getInput } from './input';
1110import { getLogs } from './logs';
···1413import { getProjectDependencies } from './packages';
1514import { getParser } from './parser';
1615import { getPlugins } from './plugins';
1616+import type { Config, UserConfig } from './types';
17171818type ConfigResult = {
1919 config: Config;
+2-1
packages/openapi-ts/src/config/input.ts
···11-import type { Config, UserConfig } from '~/types/config';
21import type { Input, Watch } from '~/types/input';
32import { inputToApiRegistry } from '~/utils/input';
43import { heyApiRegistryBaseUrl } from '~/utils/input/heyApi';
44+55+import type { Config, UserConfig } from './types';
5667const defaultWatch: Watch = {
78 enabled: false,
+1-1
packages/openapi-ts/src/config/logs.ts
···11-import type { Config, UserConfig } from '~/types/config';
11+import type { Config, UserConfig } from './types';
2233export const getLogs = (
44 userConfig: Pick<UserConfig, 'logs'> | undefined,
+1-1
packages/openapi-ts/src/config/merge.ts
···11-import type { UserConfig } from '~/types/config';
11+import type { UserConfig } from './types';
2233const mergeObjects = (
44 objA: Record<string, unknown> | undefined,
+1-1
packages/openapi-ts/src/config/output/config.ts
···22import ts from 'typescript';
3344import { findTsConfigPath, loadTsConfig } from '~/generate/tsConfig';
55-import type { Config, UserConfig } from '~/types/config';
6566+import type { Config, UserConfig } from '../types';
77import { valueToObject } from '../utils/config';
88import type { PostProcessor, UserPostProcessor } from './postprocess';
99import { postProcessors } from './postprocess';
+1-2
packages/openapi-ts/src/config/parser.ts
···11-import type { Config, UserConfig } from '~/types/config';
22-11+import type { Config, UserConfig } from './types';
32import { valueToObject } from './utils/config';
4354export const defaultPaginationKeywords = [
+1-1
packages/openapi-ts/src/config/plugins.ts
···44 PluginContext,
55 PluginNames,
66} from '~/plugins/types';
77-import type { Config, UserConfig } from '~/types/config';
8788+import type { Config, UserConfig } from './types';
99import { valueToObject } from './utils/config';
1010import { packageFactory } from './utils/package';
1111
+2-2
packages/openapi-ts/src/createClient.ts
···11import path from 'node:path';
2233+import type { Logger } from '@hey-api/codegen-core';
34import { $RefParser } from '@hey-api/json-schema-ref-parser';
45import colors from 'ansi-colors';
5667import { postprocessOutput } from '~/config/output';
88+import type { Config } from '~/config/types';
79import { generateOutput } from '~/generate/output';
810import { getSpec } from '~/getSpec';
911import type { Context } from '~/ir/context';
1012import { parseOpenApiSpec } from '~/openApi';
1113import { buildGraph } from '~/openApi/shared/utils/graph';
1214import { patchOpenApiSpec } from '~/openApi/shared/utils/patch';
1313-import type { Config } from '~/types/config';
1415import type { Input } from '~/types/input';
1516import type { WatchValues } from '~/types/types';
1616-import type { Logger } from '~/utils/logger';
17171818export const compileInputPath = (input: Omit<Input, 'watch'>) => {
1919 const result: Pick<
+2-2
packages/openapi-ts/src/generate.ts
···11+import { Logger } from '@hey-api/codegen-core';
12import type { LazyOrAsync, MaybeArray } from '@hey-api/types';
2334import { checkNodeVersion } from '~/config/engine';
45import type { Configs } from '~/config/init';
56import { initConfigs } from '~/config/init';
67import { getLogs } from '~/config/logs';
88+import type { UserConfig } from '~/config/types';
79import { createClient as pCreateClient } from '~/createClient';
810import {
911 ConfigValidationError,
···1416 shouldReportCrash,
1517} from '~/error';
1618import type { Context } from '~/ir/context';
1717-import type { UserConfig } from '~/types/config';
1819import { printCliIntro } from '~/utils/cli';
1919-import { Logger } from '~/utils/logger';
20202121/**
2222 * Generate a client from the provided configuration.
+1-1
packages/openapi-ts/src/generate/client.ts
···4455import type { IProject, ProjectRenderMeta } from '@hey-api/codegen-core';
6677+import type { Config } from '~/config/types';
78import type { DefinePlugin } from '~/plugins';
89import type { Client } from '~/plugins/@hey-api/client-core/types';
910import { getClientPlugin } from '~/plugins/@hey-api/client-core/utils';
1010-import type { Config } from '~/types/config';
11111212import { ensureDirSync } from './utils';
1313
+3-3
packages/openapi-ts/src/index.ts
···7272// @ts-expect-error
7373import colorSupport from 'color-support';
74747575-import type { UserConfig } from '~/types/config';
7575+import type { UserConfig } from '~/config/types';
76767777colors.enabled = colorSupport().hasBasic;
7878···8585 config: LazyOrAsync<T>,
8686): Promise<T> => (typeof config === 'function' ? await config() : config);
87878888+export { Logger } from '@hey-api/codegen-core';
8889export { defaultPaginationKeywords } from '~/config/parser';
8990export { defaultPlugins } from '~/config/plugins';
9191+export type { UserConfig } from '~/config/types';
9092export type { IR } from '~/ir/types';
9193export { OperationPath, OperationStrategy } from '~/openApi/shared/locations';
9294export type {
···115117export type { TypeTransformer } from '~/plugins/@hey-api/transformers/types';
116118export { definePluginConfig } from '~/plugins/shared/utils/config';
117119export * from '~/ts-dsl';
118118-export type { UserConfig } from '~/types/config';
119120export { utils } from '~/utils/exports';
120120-export { Logger } from '~/utils/logger';
···11import { describe, expect, it, vi } from 'vitest';
2233import { defaultPaginationKeywords } from '~/config/parser';
44-import type { Config } from '~/types/config';
44+import type { Config } from '~/config/types';
5566import type { Context } from '../context';
77import { operationPagination } from '../operation';
+2-2
packages/openapi-ts/src/ir/context.ts
···11+import type { Logger } from '@hey-api/codegen-core';
12import { Project } from '@hey-api/codegen-core';
2344+import type { Config } from '~/config/types';
35import type { Package } from '~/config/utils/package';
46import { packageFactory } from '~/config/utils/package';
57import type { Graph } from '~/graph';
···79import { PluginInstance } from '~/plugins/shared/utils/instance';
810import type { PluginNames } from '~/plugins/types';
911import { TypeScriptRenderer } from '~/ts-dsl';
1010-import type { Config } from '~/types/config';
1111-import type { Logger } from '~/utils/logger';
1212import { applyNaming } from '~/utils/naming';
1313import { resolveRef } from '~/utils/ref';
1414
+1-1
packages/openapi-ts/src/ir/pagination.ts
···11-import type { Config } from '~/types/config';
11+import type { Config } from '~/config/types';
2233import type { IR } from './types';
44
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import { createOperationKey } from '~/ir/operation';
24import { addNamespace, removeNamespace } from '~/openApi/shared/utils/filter';
35import { httpMethods } from '~/openApi/shared/utils/operation';
44-import type { Logger } from '~/utils/logger';
5667import type {
78 OpenApiV2_0_X,
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import { createOperationKey } from '~/ir/operation';
24import { httpMethods } from '~/openApi/shared/utils/operation';
35import type {
46 ValidatorIssue,
57 ValidatorResult,
68} from '~/openApi/shared/utils/validator';
77-import type { Logger } from '~/utils/logger';
89910import type { OpenApiV2_0_X, PathItemObject, PathsObject } from '../types/spec';
1011
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import { createOperationKey } from '~/ir/operation';
24import { addNamespace, removeNamespace } from '~/openApi/shared/utils/filter';
35import { httpMethods } from '~/openApi/shared/utils/operation';
44-import type { Logger } from '~/utils/logger';
5667import type { OpenApiV3_0_X, PathItemObject, PathsObject } from '../types/spec';
78
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import { createOperationKey } from '~/ir/operation';
24import { httpMethods } from '~/openApi/shared/utils/operation';
35import type {
46 ValidatorIssue,
57 ValidatorResult,
68} from '~/openApi/shared/utils/validator';
77-import type { Logger } from '~/utils/logger';
89910import type { OpenApiV3_0_X, PathItemObject, PathsObject } from '../types/spec';
1011
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import { createOperationKey } from '~/ir/operation';
24import { addNamespace, removeNamespace } from '~/openApi/shared/utils/filter';
35import { httpMethods } from '~/openApi/shared/utils/operation';
44-import type { Logger } from '~/utils/logger';
5667import type { OpenApiV3_1_X, PathItemObject, PathsObject } from '../types/spec';
78
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import { createOperationKey } from '~/ir/operation';
24import { httpMethods } from '~/openApi/shared/utils/operation';
35import type {
46 ValidatorIssue,
57 ValidatorResult,
68} from '~/openApi/shared/utils/validator';
77-import type { Logger } from '~/utils/logger';
89910import type { OpenApiV3_1_X, PathItemObject, PathsObject } from '../types/spec';
1011
···11import { afterEach, describe, expect, it, vi } from 'vitest';
2233+import type { Config } from '~/config/types';
34import type { OpenApiV3_0_X } from '~/openApi/3.0.x';
45import { parseV3_0_X } from '~/openApi/3.0.x';
56import type { OpenApiV3_1_X } from '~/openApi/3.1.x';
67import { parseV3_1_X } from '~/openApi/3.1.x';
7888-import type { Config } from '../../types/config';
99import { parseOpenApiSpec } from '..';
10101111vi.mock('../3.0.x', () => ({
+3-2
packages/openapi-ts/src/openApi/index.ts
···11+import type { Logger } from '@hey-api/codegen-core';
22+33+import type { Config } from '~/config/types';
14import { satisfies } from '~/config/utils/package';
25import { Context } from '~/ir/context';
36import { parseV2_0_X } from '~/openApi/2.0.x';
47import { parseV3_0_X } from '~/openApi/3.0.x';
58import { parseV3_1_X } from '~/openApi/3.1.x';
69import type { OpenApi } from '~/openApi/types';
77-import type { Config } from '~/types/config';
88-import type { Logger } from '~/utils/logger';
9101011/**
1112 * @internal
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import type { Graph } from '~/graph';
24import { createOperationKey } from '~/ir/operation';
33-import type { Logger } from '~/utils/logger';
45import { jsonPointerToPath } from '~/utils/ref';
5667import { addNamespace, stringToNamespace } from '../utils/filter';
···11+import type { Config } from '~/config/types';
12import { applyNaming } from '~/utils/naming';
23import { jsonPointerToPath } from '~/utils/ref';
3444-import type { Config } from '../../../types/config';
55import { deepClone } from '../utils/schema';
66import { childSchemaRelationships } from '../utils/schemaChildRelationships';
77import { getSchemasObject } from '../utils/transforms';
···11+import type { Logger } from '@hey-api/codegen-core';
22+33+import type { Config } from '~/config/types';
14import type { Graph } from '~/graph';
22-import type { Logger } from '~/utils/logger';
35import { applyNaming } from '~/utils/naming';
46import { jsonPointerToPath } from '~/utils/ref';
5766-import type { Config } from '../../../types/config';
78import deepEqual from '../utils/deepEqual';
89import { buildGraph, type Scope } from '../utils/graph';
910import { deepClone } from '../utils/schema';
···11+import type { Logger } from '@hey-api/codegen-core';
22+33+import type { Config } from '~/config/types';
14import { createOperationKey } from '~/ir/operation';
25import type { PathItemObject, PathsObject } from '~/openApi/3.1.x/types/spec';
36import type { OpenApi } from '~/openApi/types';
44-import type { Logger } from '~/utils/logger';
5766-import type { Config } from '../../../types/config';
78import type { ResourceMetadata } from '../graph/meta';
89import { httpMethods } from './operation';
910
···11+import type { Logger } from '@hey-api/codegen-core';
22+13import type { Graph, NodeInfo } from '~/graph';
22-import type { Logger } from '~/utils/logger';
34import { normalizeJsonPointer, pathToJsonPointer } from '~/utils/ref';
4556import { childSchemaRelationships } from './schemaChildRelationships';
···11import type { MaybeArray } from '@hey-api/types';
2233-import type { Output, UserOutput } from '~/config/output';
43import type { Plugin } from '~/plugins';
54import type { PluginConfigMap } from '~/plugins/config';
65import type { PluginNames } from '~/plugins/types';
66+import type { Input, UserInput, Watch } from '~/types/input';
77+import type { Logs } from '~/types/logs';
88+import type { Parser, UserParser } from '~/types/parser';
7988-import type { Input, UserInput, Watch } from './input';
99-import type { Logs } from './logs';
1010-import type { Parser, UserParser } from './parser';
1010+import type { Output, UserOutput } from './output';
11111212export interface UserConfig {
1313 /**