From b6f4ddc0d8ba9a5d6d04ae4baf6766312d658ee9 Mon Sep 17 00:00:00 2001 From: useye <129636877+useye@users.noreply.github.com> Date: Wed, 22 Apr 2026 13:04:02 +0800 Subject: [PATCH] feat: support reading AsyncAPI documents from stdin using "-" (#2011) --- src/domains/models/SpecificationFile.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/domains/models/SpecificationFile.ts b/src/domains/models/SpecificationFile.ts index 5370f6e6..c859f928 100644 --- a/src/domains/models/SpecificationFile.ts +++ b/src/domains/models/SpecificationFile.ts @@ -134,7 +134,16 @@ export class Specification { fileURL: targetUrl, }); } -} + + static async fromStdin(): Promise { + let spec = ''; + process.stdin.setEncoding('utf8'); + for await (const chunk of process.stdin) { + spec += chunk; + } + return new Specification(spec); + } + export default class SpecificationFile { private readonly pathToFile: string; @@ -166,6 +175,10 @@ export async function load( // NOSONAR try { if (filePathOrContextName) { + // Handle stdin input + if (filePathOrContextName === '-') { + return Specification.fromStdin(); + } if (loadType?.file) { return Specification.fromFile(filePathOrContextName); }