@@ -237,6 +237,7 @@ export class DefaultValidationService implements ValidationService {
237237 : 'https://smartbear.com/' ;
238238 const apiReference = new Reference ( { uri : baseURI , value : cloneDeep ( result ) ! } ) ;
239239 const cachedParsers = options . parse . parsers . map ( DefaultValidationService . createCachedParser ) ;
240+ const { referenceOptions } = this . settings || { } ;
240241
241242 for ( const [ fragmentId , refEl ] of refElements . entries ( ) ) {
242243 const referenceElementReference = new Reference ( {
@@ -248,14 +249,17 @@ export class DefaultValidationService implements ValidationService {
248249 try {
249250 const promise = dereferenceApiDOM ( refEl , {
250251 resolve : {
252+ ...( referenceOptions ?. resolve ?? { } ) ,
251253 baseURI : `${ baseURI } #reference${ fragmentId } ` ,
252254 external : ! toValue ( ( refEl as ObjectElement ) . get ( '$ref' ) ) . startsWith ( '#' ) ,
253255 } ,
254256 parse : {
257+ ...( referenceOptions ?. parse ?? { } ) ,
255258 parsers : cachedParsers ,
256259 mediaType : nameSpace . mediaType ,
257260 } ,
258261 dereference : {
262+ ...( referenceOptions ?. dereference ?? { } ) ,
259263 refSet,
260264 immutable : false ,
261265 } ,
@@ -339,6 +343,7 @@ export class DefaultValidationService implements ValidationService {
339343 : 'https://smartbear.com/' ;
340344 const apiReference = new Reference ( { uri : baseURI , value : cloneDeep ( result ) } ) ;
341345 const cachedParsers = options . parse . parsers . map ( DefaultValidationService . createCachedParser ) ;
346+ const { referenceOptions } = this . settings || { } ;
342347
343348 for ( const [ fragmentId , refEl ] of refElements . entries ( ) ) {
344349 const referenceElementReference = new Reference ( {
@@ -351,14 +356,17 @@ export class DefaultValidationService implements ValidationService {
351356 // eslint-disable-next-line no-await-in-loop
352357 await dereferenceApiDOM ( refEl , {
353358 resolve : {
359+ ...( referenceOptions ?. resolve ?? { } ) ,
354360 baseURI : `${ baseURI } #reference${ fragmentId } ` ,
355361 external : ! toValue ( ( refEl as ObjectElement ) . get ( '$ref' ) ) . startsWith ( '#' ) ,
356362 } ,
357363 parse : {
364+ ...( referenceOptions ?. parse ?? { } ) ,
358365 mediaType : nameSpace . mediaType ,
359366 parsers : cachedParsers ,
360367 } ,
361368 dereference : {
369+ ...( referenceOptions ?. dereference ?? { } ) ,
362370 refSet,
363371 immutable : false ,
364372 } ,
0 commit comments