diff --git a/.changeset/four-jobs-reply.md b/.changeset/four-jobs-reply.md new file mode 100644 index 000000000..714b8deef --- /dev/null +++ b/.changeset/four-jobs-reply.md @@ -0,0 +1,5 @@ +--- +'@gitbook/openapi-parser': patch +--- + +Pass scalar's errors through OpenAPIParseError diff --git a/packages/openapi-parser/src/error.ts b/packages/openapi-parser/src/error.ts index e0d25d3e2..a7c5398bc 100644 --- a/packages/openapi-parser/src/error.ts +++ b/packages/openapi-parser/src/error.ts @@ -1,3 +1,5 @@ +import type { ErrorObject } from '@scalar/openapi-parser'; + type OpenAPIParseErrorCode = | 'invalid' | 'parse-v2-in-v3' @@ -12,17 +14,19 @@ export class OpenAPIParseError extends Error { public override name = 'OpenAPIParseError'; public code: OpenAPIParseErrorCode; public rootURL: string | null; - + public errors: ErrorObject[] | undefined; constructor( message: string, options: { code: OpenAPIParseErrorCode; rootURL?: string | null; cause?: Error; + errors?: ErrorObject[] | undefined; } ) { super(message, { cause: options.cause }); this.code = options.code; this.rootURL = options.rootURL ?? null; + this.errors = options.errors; } } diff --git a/packages/openapi-parser/src/v3.ts b/packages/openapi-parser/src/v3.ts index 14a890769..3b54819cf 100644 --- a/packages/openapi-parser/src/v3.ts +++ b/packages/openapi-parser/src/v3.ts @@ -40,6 +40,7 @@ async function untrustedValidate(input: ValidateOpenAPIV3Input) { throw new OpenAPIParseError('Invalid OpenAPI document', { code: 'invalid', rootURL, + errors: result.errors, }); }