88import { Context , Middleware } from '@microsoft/microsoft-graph-client' ;
99import { getRequestHeader , setRequestHeader } from '@microsoft/microsoft-graph-client/lib/es/middleware/MiddlewareUtil' ;
1010import { ComponentMiddlewareOptions } from './ComponentMiddlewareOptions' ;
11+ import { validateBaseURL } from './GraphHelpers' ;
1112
1213/**
1314 * Implements Middleware for the Graph sdk to inject
@@ -33,33 +34,39 @@ export class SdkVersionMiddleware implements Middleware {
3334 // tslint:disable-next-line: completed-docs
3435 public async execute ( context : Context ) : Promise < void > {
3536 try {
36- // Header parts must follow the format: 'name/version'
37- const headerParts : string [ ] = [ ] ;
37+ if ( typeof context . request === 'string' ) {
38+ if ( validateBaseURL ( context . request ) ) {
39+ // Header parts must follow the format: 'name/version'
40+ const headerParts : string [ ] = [ ] ;
3841
39- const componentOptions = context . middlewareControl . getMiddlewareOptions (
40- ComponentMiddlewareOptions
41- ) as ComponentMiddlewareOptions ;
42+ const componentOptions = context . middlewareControl . getMiddlewareOptions (
43+ ComponentMiddlewareOptions
44+ ) as ComponentMiddlewareOptions ;
4245
43- if ( componentOptions ) {
44- const componentVersion : string = `${ componentOptions . componentName } /${ this . _packageVersion } ` ;
45- headerParts . push ( componentVersion ) ;
46- }
46+ if ( componentOptions ) {
47+ const componentVersion : string = `${ componentOptions . componentName } /${ this . _packageVersion } ` ;
48+ headerParts . push ( componentVersion ) ;
49+ }
4750
48- if ( this . _providerName ) {
49- const providerVersion : string = `${ this . _providerName } /${ this . _packageVersion } ` ;
50- headerParts . push ( providerVersion ) ;
51- }
51+ if ( this . _providerName ) {
52+ const providerVersion : string = `${ this . _providerName } /${ this . _packageVersion } ` ;
53+ headerParts . push ( providerVersion ) ;
54+ }
5255
53- // Package version
54- const packageVersion : string = `mgt/${ this . _packageVersion } ` ;
55- headerParts . push ( packageVersion ) ;
56+ // Package version
57+ const packageVersion : string = `mgt/${ this . _packageVersion } ` ;
58+ headerParts . push ( packageVersion ) ;
5659
57- // Existing SdkVersion header value
58- headerParts . push ( getRequestHeader ( context . request , context . options , 'SdkVersion' ) ) ;
60+ // Existing SdkVersion header value
61+ headerParts . push ( getRequestHeader ( context . request , context . options , 'SdkVersion' ) ) ;
5962
60- // Join the header parts together and update the SdkVersion request header value
61- const sdkVersionHeaderValue = headerParts . join ( ', ' ) ;
62- setRequestHeader ( context . request , context . options , 'SdkVersion' , sdkVersionHeaderValue ) ;
63+ // Join the header parts together and update the SdkVersion request header value
64+ const sdkVersionHeaderValue = headerParts . join ( ', ' ) ;
65+ setRequestHeader ( context . request , context . options , 'SdkVersion' , sdkVersionHeaderValue ) ;
66+ } else {
67+ delete context ?. options ?. headers [ 'SdkVersion' ] ;
68+ }
69+ }
6370 } catch ( error ) {
6471 // ignore error
6572 }
0 commit comments