Skip to content

Commit 67351ad

Browse files
authored
Merge pull request #3615 from hey-api/fix/resolve-module-name-ctx
fix: pass context to resolvemodulename
2 parents 5f3a5a0 + b6a65d6 commit 67351ad

5 files changed

Lines changed: 25 additions & 11 deletions

File tree

.changeset/dark-areas-give.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"@hey-api/openapi-ts": patch
3+
"@hey-api/shared": patch
4+
---
5+
6+
**output**: pass context as second argument in `resolveModuleName()` function

packages/openapi-python/src/py-dsl/utils/render.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { RenderContext, Renderer } from '@hey-api/codegen-core';
2+
import type { ResolveModuleName } from '@hey-api/shared';
23
import type { MaybeArray, MaybeFunc } from '@hey-api/types';
34

45
import { py } from '../../py-compiler';
@@ -51,14 +52,14 @@ export class PythonRenderer implements Renderer {
5152
*
5253
* @private
5354
*/
54-
private _resolveModuleName?: (moduleName: string) => string | undefined;
55+
private _resolveModuleName?: ResolveModuleName;
5556

5657
constructor(
5758
args: {
5859
header?: HeaderArg;
5960
preferExportAll?: boolean;
6061
preferFileExtension?: string;
61-
resolveModuleName?: (moduleName: string) => string | undefined;
62+
resolveModuleName?: ResolveModuleName;
6263
} = {},
6364
) {
6465
this._header = args.header;
@@ -202,7 +203,7 @@ export class PythonRenderer implements Renderer {
202203
preferFileExtension: this._preferFileExtension,
203204
root: ctx.project.root,
204205
});
205-
const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2];
206+
const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2];
206207
const [groupIndex] = sortKey;
207208

208209
if (!groups.has(groupIndex)) groups.set(groupIndex, new Map());
@@ -268,7 +269,7 @@ export class PythonRenderer implements Renderer {
268269
preferFileExtension: this._preferFileExtension,
269270
root: ctx.project.root,
270271
});
271-
const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2];
272+
const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2];
272273
const [groupIndex] = sortKey;
273274

274275
if (!groups.has(groupIndex)) groups.set(groupIndex, new Map());

packages/openapi-ts/src/ts-dsl/utils/render.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { RenderContext, Renderer } from '@hey-api/codegen-core';
2+
import type { ResolveModuleName } from '@hey-api/shared';
23
import type { MaybeArray, MaybeFunc } from '@hey-api/types';
34
import ts from 'typescript';
45

@@ -52,14 +53,14 @@ export class TypeScriptRenderer implements Renderer {
5253
*
5354
* @private
5455
*/
55-
private _resolveModuleName?: (moduleName: string) => string | undefined;
56+
private _resolveModuleName?: ResolveModuleName;
5657

5758
constructor(
5859
args: {
5960
header?: HeaderArg;
6061
preferExportAll?: boolean;
6162
preferFileExtension?: string;
62-
resolveModuleName?: (moduleName: string) => string | undefined;
63+
resolveModuleName?: ResolveModuleName;
6364
} = {},
6465
) {
6566
this._header = args.header;
@@ -197,7 +198,7 @@ export class TypeScriptRenderer implements Renderer {
197198
preferFileExtension: this._preferFileExtension,
198199
root: ctx.project.root,
199200
});
200-
const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2];
201+
const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2];
201202
const [groupIndex] = sortKey;
202203

203204
if (!groups.has(groupIndex)) groups.set(groupIndex, new Map());
@@ -263,7 +264,7 @@ export class TypeScriptRenderer implements Renderer {
263264
preferFileExtension: this._preferFileExtension,
264265
root: ctx.project.root,
265266
});
266-
const modulePath = this._resolveModuleName?.(sortKey[2]) ?? sortKey[2];
267+
const modulePath = this._resolveModuleName?.(sortKey[2], ctx) ?? sortKey[2];
267268
const [groupIndex] = sortKey;
268269

269270
if (!groups.has(groupIndex)) groups.set(groupIndex, new Map());

packages/shared/src/config/shared.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { NameConflictResolver, Symbol } from '@hey-api/codegen-core';
1+
import type { NameConflictResolver, RenderContext, Symbol } from '@hey-api/codegen-core';
22
import type { MaybeArray } from '@hey-api/types';
33

44
import type { Plugin } from '../plugins/types';
@@ -169,7 +169,7 @@ export interface BaseUserOutput {
169169
*
170170
* @default undefined
171171
*/
172-
resolveModuleName?: (moduleName: string) => string | undefined;
172+
resolveModuleName?: ResolveModuleName;
173173
/**
174174
* Configuration for generating a copy of the input source used to produce this output.
175175
*
@@ -247,7 +247,7 @@ export interface BaseOutput {
247247
/**
248248
* Optional function to transform module specifiers.
249249
*/
250-
resolveModuleName: ((moduleName: string) => string | undefined) | undefined;
250+
resolveModuleName: ResolveModuleName | undefined;
251251
/**
252252
* Configuration for generating a copy of the input source used to produce this output.
253253
*/
@@ -346,3 +346,8 @@ export type BaseConfig<TUserConfig extends object, TOutput extends BaseOutput> =
346346
* For shared utilities that operate on any config.
347347
*/
348348
export type AnyConfig = BaseConfig<Record<string, unknown>, BaseOutput>;
349+
350+
/**
351+
* Function to transform module specifiers.
352+
*/
353+
export type ResolveModuleName = (moduleName: string, ctx: RenderContext) => string | undefined;

packages/shared/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ export type {
2323
FeatureToggle,
2424
IndexExportOption,
2525
NamingOptions,
26+
ResolveModuleName,
2627
UserCommentsOption,
2728
UserIndexExportOption,
2829
} from './config/shared';

0 commit comments

Comments
 (0)