From 336a2cc28923e5dcb18774849887fda5c7a3b0b1 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 24 Apr 2026 08:24:22 +0800 Subject: [PATCH 1/2] fix: resolve for external files by using absolute path and passing string path to generator (#1839) --- src/domains/models/SpecificationFile.ts | 7 ++++--- src/domains/services/generator.service.ts | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/domains/models/SpecificationFile.ts b/src/domains/models/SpecificationFile.ts index 5370f6e67..96848bdd8 100644 --- a/src/domains/models/SpecificationFile.ts +++ b/src/domains/models/SpecificationFile.ts @@ -81,12 +81,13 @@ export class Specification { static async fromFile(filepath: string) { let spec; + const absolutePath = path.resolve(process.cwd(), filepath); try { - spec = await readFile(filepath, { encoding: 'utf8' }); + spec = await readFile(absolutePath, { encoding: 'utf8' }); } catch { - throw new ErrorLoadingSpec('file', filepath); + throw new ErrorLoadingSpec('file', absolutePath); } - return new Specification(spec, { filepath }); + return new Specification(spec, { filepath: absolutePath }); } static async fromURL(URLpath: string) { diff --git a/src/domains/services/generator.service.ts b/src/domains/services/generator.service.ts index b24cda8d6..8f9a4669e 100644 --- a/src/domains/services/generator.service.ts +++ b/src/domains/services/generator.service.ts @@ -109,7 +109,7 @@ export class GeneratorService extends BaseService { try { await generator.generateFromString(asyncapi.text(), { ...genOption, - path: asyncapi, + path: asyncapi.getSource(), }); } catch (err: unknown) { s.stop('Generation failed'); From 9adeb77e83612934b345f631e1a59279ad972e6a Mon Sep 17 00:00:00 2001 From: Angelebeats <89266469@qq.com> Date: Fri, 24 Apr 2026 17:34:31 +0800 Subject: [PATCH 2/2] chore: add changeset for ref resolution fix --- .changeset/fix-ref-resolution.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/fix-ref-resolution.md diff --git a/.changeset/fix-ref-resolution.md b/.changeset/fix-ref-resolution.md new file mode 100644 index 000000000..ee4d19e2c --- /dev/null +++ b/.changeset/fix-ref-resolution.md @@ -0,0 +1,5 @@ +--- +"@asyncapi/cli": patch +--- + +Fix bug where external files in the same directory were not correctly resolved via `$ref`.