From 8c824d52394ad46006f9045d34af3629ab15455d Mon Sep 17 00:00:00 2001 From: Vishesh 'ironeagle' Bangotra Date: Thu, 18 Jun 2026 23:57:32 +0530 Subject: [PATCH] passing specConfiguration to validator --- react-openapi/src/context/AppProvider.tsx | 2 +- react-openapi/src/spec-validator.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/react-openapi/src/context/AppProvider.tsx b/react-openapi/src/context/AppProvider.tsx index fffbf88..b2d19c3 100644 --- a/react-openapi/src/context/AppProvider.tsx +++ b/react-openapi/src/context/AppProvider.tsx @@ -27,7 +27,7 @@ export function AppProvider({ specConfiguration, children }: AppProviderProps) { const spec = await loadSpec(specConfiguration.specUrl); - const allMessages = validateSpec(spec); + const allMessages = validateSpec(spec, specConfiguration); const errs = allMessages.filter((m) => m.type === "error"); const warns = allMessages.filter((m) => m.type === "warning"); diff --git a/react-openapi/src/spec-validator.ts b/react-openapi/src/spec-validator.ts index 510c92f..741ac85 100644 --- a/react-openapi/src/spec-validator.ts +++ b/react-openapi/src/spec-validator.ts @@ -1,6 +1,6 @@ -import type { OpenApiSpec, ValidationMessage } from "./types"; +import type { OpenApiSpec, ValidationMessage, SpecConfiguration } from "./types"; -export function validateSpec(spec: OpenApiSpec): ValidationMessage[] { +export function validateSpec(spec: OpenApiSpec, specConfig?: SpecConfiguration): ValidationMessage[] { const messages: ValidationMessage[] = []; const schemas = (spec.components?.schemas ?? {}) as Record; const paths = spec.paths ?? {}; @@ -13,7 +13,7 @@ export function validateSpec(spec: OpenApiSpec): ValidationMessage[] { messages.push({ type: "error", message: "Missing 'info.title'" }); } - if (!spec.servers?.[0]?.url) { + if (!spec.servers?.[0]?.url && !specConfig?.baseApiUrl) { messages.push({ type: "warning", message: "No 'servers[0].url' defined — provide 'baseApiUrl' in specConfiguration" }); }