@azure-rest/iot-device-update
Version:
Device Update for IoT Hub is an Azure service that enables customers to publish update for their IoT devices to the cloud, and then deploy that update to their devices (approve updates to groups of devices managed and provisioned in IoT Hub). It leverages
46 lines • 2.49 kB
JavaScript
;
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = createClient;
const tslib_1 = require("tslib");
const core_client_1 = require("@azure-rest/core-client");
const logger_js_1 = require("./logger.js");
/**
* Initialize a new instance of `DeviceUpdateClient`
* @param endpoint - The Device Update for IoT Hub account endpoint (hostname only, no protocol).
* @param credentials - uniquely identify client credential
* @param options - the parameter for all optional parameters
*/
function createClient(endpoint, credentials, _a = {}) {
var _b, _c, _d, _e, _f, _g;
var { apiVersion = "2022-10-01" } = _a, options = tslib_1.__rest(_a, ["apiVersion"]);
const endpointUrl = (_c = (_b = options.endpoint) !== null && _b !== void 0 ? _b : options.baseUrl) !== null && _c !== void 0 ? _c : `https://${endpoint}`;
const userAgentInfo = `azsdk-js-iot-device-update-rest/1.1.0`;
const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`
: `${userAgentInfo}`;
options = Object.assign(Object.assign({}, options), { userAgentOptions: {
userAgentPrefix,
}, loggingOptions: {
logger: (_e = (_d = options.loggingOptions) === null || _d === void 0 ? void 0 : _d.logger) !== null && _e !== void 0 ? _e : logger_js_1.logger.info,
}, credentials: {
scopes: (_g = (_f = options.credentials) === null || _f === void 0 ? void 0 : _f.scopes) !== null && _g !== void 0 ? _g : ["https://api.adu.microsoft.com/.default"],
} });
const client = (0, core_client_1.getClient)(endpointUrl, credentials, options);
client.pipeline.removePolicy({ name: "ApiVersionPolicy" });
client.pipeline.addPolicy({
name: "ClientApiVersionPolicy",
sendRequest: (req, next) => {
// Use the apiVersion defined in request url directly
// Append one if there is no apiVersion and we have one at client options
const url = new URL(req.url);
if (!url.searchParams.get("api-version") && apiVersion) {
req.url = `${req.url}${Array.from(url.searchParams.keys()).length > 0 ? "&" : "?"}api-version=${apiVersion}`;
}
return next(req);
},
});
return client;
}
//# sourceMappingURL=deviceUpdate.js.map