UNPKG

@aimee-blue/ab-service-kit

Version:
1 lines 2.14 kB
{"version":3,"sources":["../../../src/shared/sockets/buildOnConnectionListener.ts"],"names":["buildOnConnectionListener","epicsByPath","closeSocket","attachToSocket","logger","socket","message","url","pathname","parse","epic","get","id","subscription","waitForCompletion","watchModeDetachBehaviour"],"mappings":";;;;;;;AAAA;;AAIA;;;;AAGO,MAAMA,yBAAyB,GAAG,CACvCC,WADuC,EAEvCC,WAFuC,EAGvCC,cAHuC,EAIvCC,MAJuC,KAKrB,CAACC,MAAD,EAASC,OAAT,KAAqB;AACvC,MAAI,CAACA,OAAO,CAACC,GAAb,EAAkB;AAChB;AACD;;AAED,QAAMC,QAAQ,GAAGD,aAAIE,KAAJ,CAAUH,OAAO,CAACC,GAAlB,EAAuBC,QAAxC;;AACA,MAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;AAChC;AACD;;AAED,QAAME,IAAI,GAAGT,WAAW,GAAGU,GAAd,CAAkBH,QAAlB,CAAb;;AACA,MAAI,CAACE,IAAL,EAAW;AACTR,IAAAA,WAAW,CAACG,MAAM,CAACO,EAAR,EAAY,IAAZ,CAAX;AACA;AACD;;AAED,QAAM;AAAEC,IAAAA,YAAF;AAAgBC,IAAAA;AAAhB,MAAsC,wCAC1CT,MAD0C,EAE1CC,OAF0C,EAG1CI,IAH0C,EAI1CR,WAJ0C,EAK1CE,MAL0C,CAA5C;AAQAD,EAAAA,cAAc,CACZE,MAAM,CAACO,EADK,EAEZC,YAFY,EAGZC,iBAHY,EAIZJ,IAAI,CAACK,wBAAL,IAAiC,YAJrB,CAAd;AAMD,CAnCM","sourcesContent":["import url from 'url';\nimport { SocketHandler } from './types';\nimport { AnySocketEpic } from '../kit';\nimport { RegistryStateApi } from './socketRegistryState';\nimport { spinUpSocketEpic } from './spinUpSocketEpic';\nimport { BasicLogger } from '../logging';\n\nexport const buildOnConnectionListener = (\n epicsByPath: () => Map<string, AnySocketEpic>,\n closeSocket: RegistryStateApi['closeSocket'],\n attachToSocket: RegistryStateApi['attachToSocket'],\n logger: BasicLogger\n): SocketHandler => (socket, message) => {\n if (!message.url) {\n return;\n }\n\n const pathname = url.parse(message.url).pathname;\n if (typeof pathname !== 'string') {\n return;\n }\n\n const epic = epicsByPath().get(pathname);\n if (!epic) {\n closeSocket(socket.id, 1000);\n return;\n }\n\n const { subscription, waitForCompletion } = spinUpSocketEpic(\n socket,\n message,\n epic,\n closeSocket,\n logger\n );\n\n attachToSocket(\n socket.id,\n subscription,\n waitForCompletion,\n epic.watchModeDetachBehaviour || 'disconnect'\n );\n};\n"],"file":"buildOnConnectionListener.js"}