@microsoft/mgt-proxy-provider
Version:
The Microsoft Graph Toolkit Proxy Provider
47 lines (43 loc) • 1.49 kB
text/typescript
/**
* -------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License.
* See License in the project root for license information.
* -------------------------------------------------------------------------------------------
*/
import {
Client,
HTTPMessageHandler,
Middleware,
RetryHandler,
RetryHandlerOptions,
TelemetryHandler
} from '@microsoft/microsoft-graph-client';
import { Graph, chainMiddleware } from '@microsoft/mgt-element';
import { SdkVersionMiddleware } from '@microsoft/mgt-element/dist/es6/utils/SdkVersionMiddleware';
import { PACKAGE_VERSION } from '@microsoft/mgt-element/dist/es6/utils/version';
import { CustomHeaderMiddleware } from './CustomHeaderMiddleware';
/**
* ProxyGraph Instance
*
* @export
* @class ProxyGraph
* @extends {Graph}
*/
export class ProxyGraph extends Graph {
constructor(baseUrl: string, getCustomHeaders?: () => Promise<object>) {
const middleware: Middleware[] = [
new RetryHandler(new RetryHandlerOptions()),
new TelemetryHandler(),
new SdkVersionMiddleware(PACKAGE_VERSION),
new CustomHeaderMiddleware(getCustomHeaders),
new HTTPMessageHandler()
];
super(
Client.initWithMiddleware({
baseUrl,
middleware: chainMiddleware(...middleware),
customHosts: new Set<string>([new URL(baseUrl).hostname])
})
);
}
}