diff --git a/.changeset/happy-vans-work.md b/.changeset/happy-vans-work.md new file mode 100644 index 000000000..747334115 --- /dev/null +++ b/.changeset/happy-vans-work.md @@ -0,0 +1,5 @@ +--- +'@gitbook/openapi-parser': patch +--- + +Catch OpenAPI validation errors diff --git a/packages/openapi-parser/src/v3.ts b/packages/openapi-parser/src/v3.ts index a5744c8d4..8050bd8d3 100644 --- a/packages/openapi-parser/src/v3.ts +++ b/packages/openapi-parser/src/v3.ts @@ -10,7 +10,14 @@ import type { ParseOpenAPIInput, ParseOpenAPIResult } from './parse'; */ export async function parseOpenAPIV3(input: ParseOpenAPIInput): Promise { const { value, rootURL, options = {} } = input; - const result = await validate(value); + + const result = await validate(value).catch((error) => { + throw new OpenAPIParseError('Invalid OpenAPI document', { + code: 'invalid', + rootURL, + cause: error, + }); + }); // If there is no version, we consider it invalid instantely. if (!result.version) {