UNPKG

@aimee-blue/ab-service-kit

Version:
1 lines 2.03 kB
{"version":3,"sources":["../../../src/shared/sockets/logWarningIfOutgoingStreamNotComplete.ts"],"names":["logWarningIfOutgoingStreamNotComplete","logger","data","outgoing","timeout","id","name","incomingCompleted","pipe","outgoingCompleted","log","warn","toFixed"],"mappings":";;;;;;;AACA;;AACA;;AAOA;;AAGO,SAASA,qCAAT,CACLC,MADK,EAELC,IAFK,EAGLC,QAHK,EAILC,OAJK,EAKLC,EALK,EAMLC,IANK,EAOL;AACA,QAAMC,iBAAiB,GAAGL,IAAI,CAACM,IAAL,CAAU,mCAAV,CAA1B;AACA,QAAMC,iBAAiB,GAAGN,QAAQ,CAACK,IAAT,CAAc,mCAAd,CAA1B;AAEA,QAAME,GAAG,GAAGH,iBAAiB,CAACC,IAAlB,CACV,qBAAK,CAAL,CADU,EAEV,0BAAU,MACR,iBAAMJ,OAAN,EAAeI,IAAf,CACE,0BAAU,MAAM;AACdP,IAAAA,MAAM,CAACU,IAAP,CACG,aAAYL,IAAK,mCAAkCD,EAAG,qBAAoB,CACzED,OAAO,GAAG,IAD+D,EAEzEQ,OAFyE,CAEjE,CAFiE,CAE9D,wDAHf;AAKA,WAAO,kBAAP;AACD,GAPD,CADF,EASE,0BAAUH,iBAAV,CATF,CADF,CAFU,EAeV,gCAfU,CAAZ;AAkBA,SAAOC,GAAP;AACD","sourcesContent":["import WebSocket from 'ws';\nimport { Observable, empty, timer } from 'rxjs';\nimport {\n concatMap,\n ignoreElements,\n switchMap,\n take,\n takeUntil,\n} from 'rxjs/operators';\nimport { whenCompleted } from '../whenCompleted';\nimport { Logger } from '../logging';\n\nexport function logWarningIfOutgoingStreamNotComplete(\n logger: Logger,\n data: Observable<WebSocket.Data>,\n outgoing: Observable<unknown>,\n timeout: number,\n id: string,\n name: string\n) {\n const incomingCompleted = data.pipe(whenCompleted());\n const outgoingCompleted = outgoing.pipe(whenCompleted());\n\n const log = incomingCompleted.pipe(\n take(1),\n concatMap(() =>\n timer(timeout).pipe(\n switchMap(() => {\n logger.warn(\n `🚨 Epic (${name}) stream for connection with id ${id} did not complete ${(\n timeout / 1000\n ).toFixed(2)} seconds after the socket closure. Is something wrong?`\n );\n return empty();\n }),\n takeUntil(outgoingCompleted)\n )\n ),\n ignoreElements()\n );\n\n return log;\n}\n"],"file":"logWarningIfOutgoingStreamNotComplete.js"}