UNPKG

@aimee-blue/ab-service-kit

Version:
1 lines 3.25 kB
{"version":3,"sources":["../src/hitSocket.ts"],"names":["url","start","logger","ws","WebSocket","socket","Object","assign","id","closingByKit","process","stdin","setEncoding","data","allData","actions","Joi","object","jobs","pipe","action","log","subscriptions","Subscription","add","text","type","replace","unsubscribe","toPromise","catch","err","error"],"mappings":";;AAAA;;AACA;;AACA;;AAKA;;AACA;;AAQA;;;;AAEA,MAAMA,GAAG,GAAG,8BAAZ;;AAEA,eAAeC,KAAf,GAAuB;AACrB,QAAMC,MAAM,GAAG,iCAAf;AAEA,QAAMC,EAAE,GAAG,IAAIC,WAAJ,CAAcJ,GAAd,CAAX;AACA,QAAMK,MAAM,GAAGC,MAAM,CAACC,MAAP,CAAcJ,EAAd,EAAkB;AAAEK,IAAAA,EAAE,EAAE,aAAN;AAAqBC,IAAAA,YAAY,EAAE;AAAnC,GAAlB,CAAf;AAEAC,EAAAA,OAAO,CAACC,KAAR,CAAcC,WAAd,CAA0B,MAA1B;AAEA,QAAMC,IAAI,GAAG,qBAAkBH,OAAO,CAACC,KAA1B,EAAiC,MAAjC,CAAb;AAEA,QAAMG,OAAO,GAAG,mCAAqBT,MAArB,CAAhB;AAEA,QAAMU,OAAO,GAAG,qCAAuBD,OAAvB,EAAgC,MAAME,aAAIC,MAAJ,EAAtC,CAAhB;AAEA,QAAMC,IAAI,GAAG,iBACXH,OAAO,CAACI,IAAR,CACE,0BAAWC,MAAD,IAAY;AACpBlB,IAAAA,MAAM,CAACmB,GAAP,CAAW,eAAX,EAA4BD,MAA5B;AACA,WAAO,kBAAP;AACD,GAHD,CADF,CADW,CAAb;AASA,QAAME,aAAa,GAAG,IAAIC,kBAAJ,EAAtB;AAEAD,EAAAA,aAAa,CAACE,GAAd,CACE,mCACEX,IAAI,CAACM,IAAL,CACE,oBAAKM,IAAD,KAAW;AACbC,IAAAA,IAAI,EAAE,MADO;AAEbD,IAAAA,IAAI,EAAEA,IAAI,CAACE,OAAL,CAAa,IAAb,EAAmB,EAAnB;AAFO,GAAX,CAAJ,CADF,EAKE,oBAAKP,MAAD,IAAY;AACdlB,IAAAA,MAAM,CAACmB,GAAP,CAAW,cAAX,EAA2BD,MAA3B;AACD,GAFD,CALF,CADF,EAUEf,MAVF,CADF;AAeA,SAAOa,IAAI,CACRC,IADI,CAEH,yBAAS,MAAM;AACbG,IAAAA,aAAa,CAACM,WAAd;AACD,GAFD,CAFG,EAKH,gCALG,EAMH,yBANG,EAQJC,SARI,EAAP;AASD;;AAED5B,KAAK,GAAG6B,KAAR,CAAeC,GAAD,IAAS;AACrB,oCAAqBC,KAArB,CAA2B,EAA3B,EAA+BD,GAA/B;AACD,CAFD","sourcesContent":["import WebSocket from 'ws';\nimport { fromEvent, merge, empty, Subscription } from 'rxjs';\nimport {\n actionStreamFromSocket,\n dataStreamFromSocket,\n pipeStreamIntoSocket,\n} from './shared/sockets';\nimport Joi from 'joi';\nimport {\n concatMap,\n map,\n finalize,\n ignoreElements,\n endWith,\n tap,\n} from 'rxjs/operators';\nimport { defaultBasicLogger } from './shared';\n\nconst url = 'http://localhost:4010/events';\n\nasync function start() {\n const logger = defaultBasicLogger();\n\n const ws = new WebSocket(url);\n const socket = Object.assign(ws, { id: 'test-socket', closingByKit: false });\n\n process.stdin.setEncoding('utf8');\n\n const data = fromEvent<string>(process.stdin, 'data');\n\n const allData = dataStreamFromSocket(socket);\n\n const actions = actionStreamFromSocket(allData, () => Joi.object());\n\n const jobs = merge(\n actions.pipe(\n concatMap((action) => {\n logger.log(' -> Received', action);\n return empty();\n })\n )\n );\n\n const subscriptions = new Subscription();\n\n subscriptions.add(\n pipeStreamIntoSocket(\n data.pipe(\n map((text) => ({\n type: 'TEST',\n text: text.replace('\\n', ''),\n })),\n tap((action) => {\n logger.log(' <- Sending', action);\n })\n ),\n socket\n )\n );\n\n return jobs\n .pipe(\n finalize(() => {\n subscriptions.unsubscribe();\n }),\n ignoreElements(),\n endWith()\n )\n .toPromise();\n}\n\nstart().catch((err) => {\n defaultBasicLogger().error('', err);\n});\n"],"file":"hitSocket.js"}