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.

1 lines 2.51 kB
{"version":3,"file":"iot-connection.mjs","names":[],"sources":["../../listener/iot-connection.ts"],"sourcesContent":["import { fromNodeProviderChain } from '@aws-sdk/credential-providers';\nimport { device } from 'aws-iot-device-sdk';\n\nexport type fragment = { id: string; index: number; count: number; data: any };\n\nfunction createLog(debugMode: boolean) {\n return (message: string, ...optionalParams: any[]) => {\n if (debugMode) {\n console.debug('SSPY', message, ...optionalParams);\n }\n };\n}\n\nfunction createErrorLog() {\n return (message: string, ...optionalParams: any[]) => {\n console.error('SSPY', message, ...optionalParams);\n };\n}\n\nexport async function getConnection(\n debugMode: boolean,\n iotEndpoint: string\n): Promise<device> {\n const log = createLog(debugMode);\n const logError = createErrorLog();\n log('Using IoT endpoint:', iotEndpoint);\n\n if (!iotEndpoint) {\n logError('No IoT endpoint could be found');\n throw new Error('IoT Endpoint address not found');\n }\n const region = iotEndpoint.split('.')[2];\n\n const provider = fromNodeProviderChain();\n const credentials = await provider();\n const connection = new device({\n protocol: 'wss',\n host: iotEndpoint,\n region,\n reconnectPeriod: 1,\n accessKeyId: credentials.accessKeyId,\n secretKey: credentials.secretAccessKey,\n sessionToken: credentials.sessionToken,\n });\n\n connection.on('connect', () => {\n log('IoT connected');\n });\n\n connection.on('error', (err) => {\n logError('IoT error', err);\n });\n\n connection.on('close', () => {\n log('IoT closed');\n });\n\n connection.on('reconnect', () => {\n log('IoT reconnected');\n });\n\n return connection;\n}\n"],"mappings":";;;;;AAKA,SAAS,UAAU,WAAoB;AACrC,SAAQ,SAAiB,GAAG,mBAA0B;AACpD,MAAI,UACF,SAAQ,MAAM,QAAQ,SAAS,GAAG,eAAe;;;AAKvD,SAAS,iBAAiB;AACxB,SAAQ,SAAiB,GAAG,mBAA0B;AACpD,UAAQ,MAAM,QAAQ,SAAS,GAAG,eAAe;;;AAIrD,eAAsB,cACpB,WACA,aACiB;CACjB,MAAM,MAAM,UAAU,UAAU;CAChC,MAAM,WAAW,gBAAgB;AACjC,KAAI,uBAAuB,YAAY;AAEvC,KAAI,CAAC,aAAa;AAChB,WAAS,iCAAiC;AAC1C,QAAM,IAAI,MAAM,iCAAiC;;CAEnD,MAAM,SAAS,YAAY,MAAM,IAAI,CAAC;CAGtC,MAAM,cAAc,MADH,uBAAuB,EACJ;CACpC,MAAM,aAAa,IAAI,OAAO;EAC5B,UAAU;EACV,MAAM;EACN;EACA,iBAAiB;EACjB,aAAa,YAAY;EACzB,WAAW,YAAY;EACvB,cAAc,YAAY;EAC3B,CAAC;AAEF,YAAW,GAAG,iBAAiB;AAC7B,MAAI,gBAAgB;GACpB;AAEF,YAAW,GAAG,UAAU,QAAQ;AAC9B,WAAS,aAAa,IAAI;GAC1B;AAEF,YAAW,GAAG,eAAe;AAC3B,MAAI,aAAa;GACjB;AAEF,YAAW,GAAG,mBAAmB;AAC/B,MAAI,kBAAkB;GACtB;AAEF,QAAO"}