55 BaseResolver ,
66 bundle ,
77 type Document ,
8+ isPlainObject ,
89 lintDocument ,
910 makeDocumentFromString ,
1011 type NormalizedProblem ,
@@ -123,19 +124,17 @@ export async function validateAndBundle(
123124 debug ( "Parsed schema" , "redoc" , performance . now ( ) - redocParseT ) ;
124125
125126 // 1. check for OpenAPI 3 or greater
126- const openapiVersion = Number . parseFloat ( document . parsed . openapi ) ;
127- if (
128- document . parsed . swagger ||
129- ! document . parsed . openapi ||
130- Number . isNaN ( openapiVersion ) ||
131- openapiVersion < 3 ||
132- openapiVersion >= 4
133- ) {
134- if ( document . parsed . swagger ) {
127+ if ( ! isPlainObject ( document . parsed ) ) {
128+ throw new Error ( "Unsupported schema format, expected `openapi: 3.x`" ) ;
129+ }
130+ const parsed = document . parsed ;
131+ const openapiVersion = Number . parseFloat ( String ( parsed . openapi ?? "" ) ) ;
132+ if ( parsed . swagger || ! parsed . openapi || Number . isNaN ( openapiVersion ) || openapiVersion < 3 || openapiVersion >= 4 ) {
133+ if ( parsed . swagger ) {
135134 throw new Error ( "Unsupported Swagger version: 2.x. Use OpenAPI 3.x instead." ) ;
136135 }
137- if ( document . parsed . openapi || openapiVersion < 3 || openapiVersion >= 4 ) {
138- throw new Error ( `Unsupported OpenAPI version: ${ document . parsed . openapi } ` ) ;
136+ if ( parsed . openapi || openapiVersion < 3 || openapiVersion >= 4 ) {
137+ throw new Error ( `Unsupported OpenAPI version: ${ parsed . openapi } ` ) ;
139138 }
140139 throw new Error ( "Unsupported schema format, expected `openapi: 3.x`" ) ;
141140 }
@@ -144,7 +143,7 @@ export async function validateAndBundle(
144143 const redocLintT = performance . now ( ) ;
145144 const problems = await lintDocument ( {
146145 document,
147- config : options . redoc . styleguide ,
146+ config : options . redoc ,
148147 externalRefResolver : resolver ,
149148 } ) ;
150149 _processProblems ( problems , options ) ;
@@ -160,5 +159,5 @@ export async function validateAndBundle(
160159 _processProblems ( bundled . problems , options ) ;
161160 debug ( "Bundled schema" , "bundle" , performance . now ( ) - redocBundleT ) ;
162161
163- return bundled . bundle . parsed ;
162+ return bundled . bundle . parsed as OpenAPI3 ;
164163}
0 commit comments