UNPKG

serverless-spy

Version:

CDK-based library for writing elegant integration tests on AWS serverless architecture and an additional web console to monitor events in real time.

54 lines (52 loc) 1.75 kB
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js'); let __aws_sdk_credential_providers = require("@aws-sdk/credential-providers"); __aws_sdk_credential_providers = require_rolldown_runtime.__toESM(__aws_sdk_credential_providers); let aws_iot_device_sdk = require("aws-iot-device-sdk"); aws_iot_device_sdk = require_rolldown_runtime.__toESM(aws_iot_device_sdk); //#region listener/iot-connection.ts function createLog(debugMode) { return (message, ...optionalParams) => { if (debugMode) console.debug("SSPY", message, ...optionalParams); }; } function createErrorLog() { return (message, ...optionalParams) => { console.error("SSPY", message, ...optionalParams); }; } async function getConnection(debugMode, iotEndpoint) { const log = createLog(debugMode); const logError = createErrorLog(); log("Using IoT endpoint:", iotEndpoint); if (!iotEndpoint) { logError("No IoT endpoint could be found"); throw new Error("IoT Endpoint address not found"); } const region = iotEndpoint.split(".")[2]; const credentials = await (0, __aws_sdk_credential_providers.fromNodeProviderChain)()(); const connection = new aws_iot_device_sdk.device({ protocol: "wss", host: iotEndpoint, region, reconnectPeriod: 1, accessKeyId: credentials.accessKeyId, secretKey: credentials.secretAccessKey, sessionToken: credentials.sessionToken }); connection.on("connect", () => { log("IoT connected"); }); connection.on("error", (err) => { logError("IoT error", err); }); connection.on("close", () => { log("IoT closed"); }); connection.on("reconnect", () => { log("IoT reconnected"); }); return connection; } //#endregion exports.getConnection = getConnection; //# sourceMappingURL=iot-connection.js.map