@@ -31,11 +31,12 @@ static OpenApiModelFactory()
3131        /// </summary> 
3232        /// <param name="url">The path to the OpenAPI file</param> 
3333        /// <param name="settings"> The OpenApi reader settings.</param> 
34+         /// <param name="cancellationToken"></param> 
3435        /// <returns></returns> 
35-         public  static   async  Task < ReadResult >  LoadAsync ( string  url ,  OpenApiReaderSettings  settings  =  null ) 
36+         public  static   async  Task < ReadResult >  LoadAsync ( string  url ,  OpenApiReaderSettings  settings  =  null ,   CancellationToken   cancellationToken   =   default ) 
3637        { 
3738            var  format  =  await  GetFormatAsync ( url ) ; 
38-             var  stream  =  await  GetStreamAsync ( url ) ; 
39+             var  stream  =  await  GetStreamAsync ( url ,   cancellationToken ) ; 
3940            return  await  LoadAsync ( stream ,  format ,  settings ) ; 
4041        } 
4142
@@ -132,13 +133,17 @@ public static async Task<ReadFragmentResult> ParseAsync<T>(string input,
132133        /// <param name="url">The path to the OpenAPI file</param> 
133134        /// <param name="version">Version of the OpenAPI specification that the fragment conforms to.</param> 
134135        /// <param name="settings">The OpenApiReader settings.</param> 
136+         /// <param name="cancellationToken"></param> 
135137        /// <returns>Instance of newly created IOpenApiElement.</returns> 
136138        /// <returns>The OpenAPI element.</returns> 
137-         public  static   async  Task < ReadFragmentResult >  LoadAsync < T > ( string  url ,  OpenApiSpecVersion  version ,  OpenApiReaderSettings  settings  =  null )  where  T  :  IOpenApiElement 
139+         public  static   async  Task < ReadFragmentResult >  LoadAsync < T > ( string  url , 
140+                                                                   OpenApiSpecVersion  version , 
141+                                                                   OpenApiReaderSettings  settings  =  null , 
142+                                                                   CancellationToken  cancellationToken  =  default )  where  T  :  IOpenApiElement 
138143        { 
139144            var  format  =  await  GetFormatAsync ( url ) ; 
140145            settings  ??=  new  OpenApiReaderSettings ( ) ; 
141-             var  stream  =  await    GetStreamAsync ( url ) ; 
146+             var  stream  =  await  GetStreamAsync ( url ,   cancellationToken ) ; 
142147            return  await  LoadAsync < T > ( stream ,  version ,  format ,  settings ) ; 
143148        } 
144149
@@ -278,7 +283,7 @@ private static string InspectTextReaderFormat(TextReader reader)
278283            return  input . StartsWith ( "{" )  ||  input . StartsWith ( "[" )  ?  OpenApiConstants . Json  :  OpenApiConstants . Yaml ; 
279284        } 
280285
281-         private  static   async  Task < Stream >  GetStreamAsync ( string  url ) 
286+         private  static   async  Task < Stream >  GetStreamAsync ( string  url ,   CancellationToken   cancellationToken   =   default ) 
282287        { 
283288            Stream  stream ; 
284289            if  ( url . StartsWith ( "http" ,  StringComparison . OrdinalIgnoreCase )  ||  url . StartsWith ( "https" ,  StringComparison . OrdinalIgnoreCase ) ) 
0 commit comments