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.

52 lines 6.11 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getConnection = getConnection; const credential_providers_1 = require("@aws-sdk/credential-providers"); const aws_iot_device_sdk_1 = require("aws-iot-device-sdk"); 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 provider = (0, credential_providers_1.fromNodeProviderChain)(); const credentials = await provider(); const connection = new aws_iot_device_sdk_1.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; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW90LWNvbm5lY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saXN0ZW5lci9pb3QtY29ubmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSxzQ0EyQ0M7QUE5REQsd0VBQXNFO0FBQ3RFLDJEQUE0QztBQUk1QyxTQUFTLFNBQVMsQ0FBQyxTQUFrQjtJQUNuQyxPQUFPLENBQUMsT0FBZSxFQUFFLEdBQUcsY0FBcUIsRUFBRSxFQUFFO1FBQ25ELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxjQUFjLENBQUMsQ0FBQztRQUNwRCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsY0FBYztJQUNyQixPQUFPLENBQUMsT0FBZSxFQUFFLEdBQUcsY0FBcUIsRUFBRSxFQUFFO1FBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLGNBQWMsQ0FBQyxDQUFDO0lBQ3BELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUNqQyxTQUFrQixFQUNsQixXQUFtQjtJQUVuQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakMsTUFBTSxRQUFRLEdBQUcsY0FBYyxFQUFFLENBQUM7SUFDbEMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXhDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixRQUFRLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekMsTUFBTSxRQUFRLEdBQUcsSUFBQSw0Q0FBcUIsR0FBRSxDQUFDO0lBQ3pDLE1BQU0sV0FBVyxHQUFHLE1BQU0sUUFBUSxFQUFFLENBQUM7SUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSwyQkFBTSxDQUFDO1FBQzVCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsSUFBSSxFQUFFLFdBQVc7UUFDakIsTUFBTTtRQUNOLGVBQWUsRUFBRSxDQUFDO1FBQ2xCLFdBQVcsRUFBRSxXQUFXLENBQUMsV0FBVztRQUNwQyxTQUFTLEVBQUUsV0FBVyxDQUFDLGVBQWU7UUFDdEMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxZQUFZO0tBQ3ZDLENBQUMsQ0FBQztJQUVILFVBQVUsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtRQUM1QixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQzdCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxVQUFVLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDMUIsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsVUFBVSxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQzlCLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZyb21Ob2RlUHJvdmlkZXJDaGFpbiB9IGZyb20gJ0Bhd3Mtc2RrL2NyZWRlbnRpYWwtcHJvdmlkZXJzJztcbmltcG9ydCB7IGRldmljZSB9IGZyb20gJ2F3cy1pb3QtZGV2aWNlLXNkayc7XG5cbmV4cG9ydCB0eXBlIGZyYWdtZW50ID0geyBpZDogc3RyaW5nOyBpbmRleDogbnVtYmVyOyBjb3VudDogbnVtYmVyOyBkYXRhOiBhbnkgfTtcblxuZnVuY3Rpb24gY3JlYXRlTG9nKGRlYnVnTW9kZTogYm9vbGVhbikge1xuICByZXR1cm4gKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PiB7XG4gICAgaWYgKGRlYnVnTW9kZSkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnU1NQWScsIG1lc3NhZ2UsIC4uLm9wdGlvbmFsUGFyYW1zKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUVycm9yTG9nKCkge1xuICByZXR1cm4gKG1lc3NhZ2U6IHN0cmluZywgLi4ub3B0aW9uYWxQYXJhbXM6IGFueVtdKSA9PiB7XG4gICAgY29uc29sZS5lcnJvcignU1NQWScsIG1lc3NhZ2UsIC4uLm9wdGlvbmFsUGFyYW1zKTtcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENvbm5lY3Rpb24oXG4gIGRlYnVnTW9kZTogYm9vbGVhbixcbiAgaW90RW5kcG9pbnQ6IHN0cmluZ1xuKTogUHJvbWlzZTxkZXZpY2U+IHtcbiAgY29uc3QgbG9nID0gY3JlYXRlTG9nKGRlYnVnTW9kZSk7XG4gIGNvbnN0IGxvZ0Vycm9yID0gY3JlYXRlRXJyb3JMb2coKTtcbiAgbG9nKCdVc2luZyBJb1QgZW5kcG9pbnQ6JywgaW90RW5kcG9pbnQpO1xuXG4gIGlmICghaW90RW5kcG9pbnQpIHtcbiAgICBsb2dFcnJvcignTm8gSW9UIGVuZHBvaW50IGNvdWxkIGJlIGZvdW5kJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJb1QgRW5kcG9pbnQgYWRkcmVzcyBub3QgZm91bmQnKTtcbiAgfVxuICBjb25zdCByZWdpb24gPSBpb3RFbmRwb2ludC5zcGxpdCgnLicpWzJdO1xuXG4gIGNvbnN0IHByb3ZpZGVyID0gZnJvbU5vZGVQcm92aWRlckNoYWluKCk7XG4gIGNvbnN0IGNyZWRlbnRpYWxzID0gYXdhaXQgcHJvdmlkZXIoKTtcbiAgY29uc3QgY29ubmVjdGlvbiA9IG5ldyBkZXZpY2Uoe1xuICAgIHByb3RvY29sOiAnd3NzJyxcbiAgICBob3N0OiBpb3RFbmRwb2ludCxcbiAgICByZWdpb24sXG4gICAgcmVjb25uZWN0UGVyaW9kOiAxLFxuICAgIGFjY2Vzc0tleUlkOiBjcmVkZW50aWFscy5hY2Nlc3NLZXlJZCxcbiAgICBzZWNyZXRLZXk6IGNyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleSxcbiAgICBzZXNzaW9uVG9rZW46IGNyZWRlbnRpYWxzLnNlc3Npb25Ub2tlbixcbiAgfSk7XG5cbiAgY29ubmVjdGlvbi5vbignY29ubmVjdCcsICgpID0+IHtcbiAgICBsb2coJ0lvVCBjb25uZWN0ZWQnKTtcbiAgfSk7XG5cbiAgY29ubmVjdGlvbi5vbignZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgbG9nRXJyb3IoJ0lvVCBlcnJvcicsIGVycik7XG4gIH0pO1xuXG4gIGNvbm5lY3Rpb24ub24oJ2Nsb3NlJywgKCkgPT4ge1xuICAgIGxvZygnSW9UIGNsb3NlZCcpO1xuICB9KTtcblxuICBjb25uZWN0aW9uLm9uKCdyZWNvbm5lY3QnLCAoKSA9PiB7XG4gICAgbG9nKCdJb1QgcmVjb25uZWN0ZWQnKTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbm5lY3Rpb247XG59XG4iXX0=