Skip to content

Commit 9707881

Browse files
committedApr 12, 2023
fix(core): resolve value avoid infinite loop on multi files refs by adding a parents relation
1 parent b2fc79d commit 9707881

File tree

2 files changed

+3
-7
lines changed

2 files changed

+3
-7
lines changed
 

‎packages/core/src/resolvers/value.ts

+2-7
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,15 @@ export const resolveValue = ({
2727

2828
let hasReadonlyProps = false;
2929

30-
const spec = context.specs[context.specKey];
31-
3230
// Avoid infinite loop
33-
if (
34-
name &&
35-
!name.startsWith(resolvedImport.name) &&
36-
!spec?.components?.schemas?.[name]
37-
) {
31+
if (!name || !context.parents?.includes(name)) {
3832
const scalar = getScalar({
3933
item: schemaObject,
4034
name: resolvedImport.name,
4135
context: {
4236
...context,
4337
specKey: importSpecKey || context.specKey,
38+
...(name ? { parents: [...(context.parents || []), name] } : {}),
4439
},
4540
});
4641

‎packages/core/src/types.ts

+1
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,7 @@ export interface ContextSpecs {
383383
override: NormalizedOverrideOutput;
384384
tsconfig?: Tsconfig;
385385
packageJson?: PackageJson;
386+
parents?: string[];
386387
}
387388

388389
export interface GlobalOptions {

1 commit comments

Comments
 (1)

vercel[bot] commented on Apr 12, 2023

@vercel[bot]
Please sign in to comment.