node-nlp
Version:
Library for NLU (Natural Language Understanding) done in Node.js
29 lines (24 loc) • 1.23 kB
text/typescript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
import { HttpOperationResponse } from "../httpOperationResponse";
import * as utils from "../util/utils";
import { WebResource } from "../webResource";
import { BaseRequestPolicy, RequestPolicy, RequestPolicyFactory, RequestPolicyOptions } from "./requestPolicy";
export function generateClientRequestIdPolicy(requestIdHeaderName = "x-ms-client-request-id"): RequestPolicyFactory {
return {
create: (nextPolicy: RequestPolicy, options: RequestPolicyOptions) => {
return new GenerateClientRequestIdPolicy(nextPolicy, options, requestIdHeaderName);
}
};
}
export class GenerateClientRequestIdPolicy extends BaseRequestPolicy {
constructor(nextPolicy: RequestPolicy, options: RequestPolicyOptions, private _requestIdHeaderName: string) {
super(nextPolicy, options);
}
public sendRequest(request: WebResource): Promise<HttpOperationResponse> {
if (!request.headers.contains(this._requestIdHeaderName)) {
request.headers.set(this._requestIdHeaderName, utils.generateUuid());
}
return this._nextPolicy.sendRequest(request);
}
}