@azure/search-documents
Version:
Azure client library to use Cognitive Search for node.js and browser.
78 lines • 3.25 kB
JavaScript
/*
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*
* Code generated by Microsoft (R) AutoRest Code Generator.
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
*/
import * as coreHttpCompat from "@azure/core-http-compat";
import { DocumentsImpl } from "./operations";
/** @internal */
export class SearchClient extends coreHttpCompat.ExtendedServiceClient {
/**
* Initializes a new instance of the SearchClient class.
* @param endpoint The endpoint URL of the search service.
* @param indexName The name of the index.
* @param apiVersion Api Version
* @param options The parameter options
*/
constructor(endpoint, indexName, apiVersion, options) {
var _a, _b;
if (endpoint === undefined) {
throw new Error("'endpoint' cannot be null");
}
if (indexName === undefined) {
throw new Error("'indexName' cannot be null");
}
if (apiVersion === undefined) {
throw new Error("'apiVersion' cannot be null");
}
// Initializing default values for options
if (!options) {
options = {};
}
const defaults = {
requestContentType: "application/json; charset=utf-8",
};
const packageDetails = `azsdk-js-search-documents/12.1.0`;
const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
: `${packageDetails}`;
const optionsWithDefaults = Object.assign(Object.assign(Object.assign({}, defaults), options), { userAgentOptions: {
userAgentPrefix,
}, endpoint: (_b = (_a = options.endpoint) !== null && _a !== void 0 ? _a : options.baseUri) !== null && _b !== void 0 ? _b : "{endpoint}/indexes('{indexName}')" });
super(optionsWithDefaults);
// Parameter assignments
this.endpoint = endpoint;
this.indexName = indexName;
this.apiVersion = apiVersion;
this.documents = new DocumentsImpl(this);
this.addCustomApiVersionPolicy(apiVersion);
}
/** A function that adds a policy that sets the api-version (or equivalent) to reflect the library version. */
addCustomApiVersionPolicy(apiVersion) {
if (!apiVersion) {
return;
}
const apiVersionPolicy = {
name: "CustomApiVersionPolicy",
async sendRequest(request, next) {
const param = request.url.split("?");
if (param.length > 1) {
const newParams = param[1].split("&").map((item) => {
if (item.indexOf("api-version") > -1) {
return "api-version=" + apiVersion;
}
else {
return item;
}
});
request.url = param[0] + "?" + newParams.join("&");
}
return next(request);
},
};
this.pipeline.addPolicy(apiVersionPolicy);
}
}
//# sourceMappingURL=searchClient.js.map