From b6a65d6bb3ff1895f2189af858e3424733154bdf Mon Sep 17 00:00:00 2001 From: Lubos Date: Wed, 18 Mar 2026 03:03:43 +0100 Subject: [PATCH] fix: pass context to resolvemodulename --- .changeset/dark-areas-give.md | 6 ++++++ packages/openapi-python/src/py-dsl/utils/render.ts | 9 +++++---- packages/openapi-ts/src/ts-dsl/utils/render.ts | 9 +++++---- packages/shared/src/config/shared.ts | 11 ++++++++--- packages/shared/src/index.ts | 1 + 5 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 .changeset/dark-areas-give.md diff --git a/.changeset/dark-areas-give.md b/.changeset/dark-areas-give.md new file mode 100644 index 000000000..992f1655e --- /dev/null +++ b/.changeset/dark-areas-give.md @@ -0,0 +1,6 @@ +--- +"@hey-api/openapi-ts": patch +"@hey-api/shared": patch +--- + +**output**: pass context as second argument in `resolveModuleName()` function diff --git a/packages/openapi-python/src/py-dsl/utils/render.ts b/packages/openapi-python/src/py-dsl/utils/render.ts index 943c54d9d..275bd0910 100644 --- a/packages/openapi-python/src/py-dsl/utils/render.ts +++ b/packages/openapi-python/src/py-dsl/utils/render.ts @@ -1,4 +1,5 @@ import type { RenderContext, Renderer } from '@hey-api/codegen-core'; +import type { ResolveModuleName } from '@hey-api/shared'; import type { MaybeArray, MaybeFunc } from '@hey-api/types'; import { py } from '../../py-compiler'; @@ -51,14 +52,14 @@ export class PythonRenderer implements Renderer { * * @private */ - private _resolveModuleName?: (moduleName: string) => string | undefined; + private _resolveModuleName?: ResolveModuleName; constructor( args: { header?: HeaderArg; preferExportAll?: boolean; preferFileExtension?: string; - resolveModuleName?: (moduleName: string) => string | undefined; + resolveModuleName?: ResolveModuleName; } = {}, ) { this._header = args.header; @@ -202,7 +203,7 @@ export class PythonRenderer implements Renderer { preferFileExtension: this._preferFileExtension, root: ctx.project.root, }); - const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2]; + const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2]; const [groupIndex] = sortKey; if (!groups.has(groupIndex)) groups.set(groupIndex, new Map()); @@ -268,7 +269,7 @@ export class PythonRenderer implements Renderer { preferFileExtension: this._preferFileExtension, root: ctx.project.root, }); - const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2]; + const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2]; const [groupIndex] = sortKey; if (!groups.has(groupIndex)) groups.set(groupIndex, new Map()); diff --git a/packages/openapi-ts/src/ts-dsl/utils/render.ts b/packages/openapi-ts/src/ts-dsl/utils/render.ts index a1712587a..cbc59b9ed 100644 --- a/packages/openapi-ts/src/ts-dsl/utils/render.ts +++ b/packages/openapi-ts/src/ts-dsl/utils/render.ts @@ -1,4 +1,5 @@ import type { RenderContext, Renderer } from '@hey-api/codegen-core'; +import type { ResolveModuleName } from '@hey-api/shared'; import type { MaybeArray, MaybeFunc } from '@hey-api/types'; import ts from 'typescript'; @@ -52,14 +53,14 @@ export class TypeScriptRenderer implements Renderer { * * @private */ - private _resolveModuleName?: (moduleName: string) => string | undefined; + private _resolveModuleName?: ResolveModuleName; constructor( args: { header?: HeaderArg; preferExportAll?: boolean; preferFileExtension?: string; - resolveModuleName?: (moduleName: string) => string | undefined; + resolveModuleName?: ResolveModuleName; } = {}, ) { this._header = args.header; @@ -197,7 +198,7 @@ export class TypeScriptRenderer implements Renderer { preferFileExtension: this._preferFileExtension, root: ctx.project.root, }); - const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2]; + const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2]; const [groupIndex] = sortKey; if (!groups.has(groupIndex)) groups.set(groupIndex, new Map()); @@ -263,7 +264,7 @@ export class TypeScriptRenderer implements Renderer { preferFileExtension: this._preferFileExtension, root: ctx.project.root, }); - const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2]; + const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2]; const [groupIndex] = sortKey; if (!groups.has(groupIndex)) groups.set(groupIndex, new Map()); diff --git a/packages/shared/src/config/shared.ts b/packages/shared/src/config/shared.ts index 3d42a174a..945139bfb 100644 --- a/packages/shared/src/config/shared.ts +++ b/packages/shared/src/config/shared.ts @@ -1,4 +1,4 @@ -import type { NameConflictResolver, Symbol } from '@hey-api/codegen-core'; +import type { NameConflictResolver, RenderContext, Symbol } from '@hey-api/codegen-core'; import type { MaybeArray } from '@hey-api/types'; import type { Plugin } from '../plugins/types'; @@ -169,7 +169,7 @@ export interface BaseUserOutput { * * @default undefined */ - resolveModuleName?: (moduleName: string) => string | undefined; + resolveModuleName?: ResolveModuleName; /** * Configuration for generating a copy of the input source used to produce this output. * @@ -247,7 +247,7 @@ export interface BaseOutput { /** * Optional function to transform module specifiers. */ - resolveModuleName: ((moduleName: string) => string | undefined) | undefined; + resolveModuleName: ResolveModuleName | undefined; /** * Configuration for generating a copy of the input source used to produce this output. */ @@ -346,3 +346,8 @@ export type BaseConfig = * For shared utilities that operate on any config. */ export type AnyConfig = BaseConfig, BaseOutput>; + +/** + * Function to transform module specifiers. + */ +export type ResolveModuleName = (moduleName: string, ctx: RenderContext) => string | undefined; diff --git a/packages/shared/src/index.ts b/packages/shared/src/index.ts index 539126559..3656961ed 100644 --- a/packages/shared/src/index.ts +++ b/packages/shared/src/index.ts @@ -23,6 +23,7 @@ export type { FeatureToggle, IndexExportOption, NamingOptions, + ResolveModuleName, UserCommentsOption, UserIndexExportOption, } from './config/shared'; -- 2.51.2