UNPKG

@azure/ms-rest-js

Version:

Isomorphic client Runtime for Typescript/node.js/browser javascript client libraries generated using AutoRest

43 lines (37 loc) 1.35 kB
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. See License.txt in the project root for license information. import { ServiceClientCredentials } from "../credentials/serviceClientCredentials"; import { HttpOperationResponse } from "../httpOperationResponse"; import { WebResourceLike } from "../webResource"; import { BaseRequestPolicy, RequestPolicyFactory, RequestPolicy, RequestPolicyOptionsLike, } from "./requestPolicy"; export function signingPolicy( authenticationProvider: ServiceClientCredentials ): RequestPolicyFactory { return { create: (nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike) => { return new SigningPolicy(nextPolicy, options, authenticationProvider); }, }; } export class SigningPolicy extends BaseRequestPolicy { constructor( nextPolicy: RequestPolicy, options: RequestPolicyOptionsLike, public authenticationProvider: ServiceClientCredentials ) { super(nextPolicy, options); } signRequest(request: WebResourceLike): Promise<WebResourceLike> { return this.authenticationProvider.signRequest(request); } public sendRequest(request: WebResourceLike): Promise<HttpOperationResponse> { return this.signRequest(request).then((nextRequest) => this._nextPolicy.sendRequest(nextRequest) ); } }