@salutejs/jazz-sdk-electron
Version:
Jazz SDK Electron
2 lines (1 loc) • 6.93 kB
JavaScript
"use strict";var e=require("@salutejs/jazz-sdk-web"),a=require("ditox"),t=require("nrgy/mvc"),n=require("rxjs"),r=require("nrgy/rxjs");function o(e,a,t,n){return new(t||(t=Promise))((function(r,o){function i(e){try{d(n.next(e))}catch(e){o(e)}}function p(e){try{d(n.throw(e))}catch(e){o(e)}}function d(e){var a;e.done?r(e.value):(a=e.value,a instanceof t?a:new t((function(e){e(a)}))).then(i,p)}d((n=n.apply(e,a||[])).next())}))}function i(){const e=window.JAZZ_SDK_ELECTRON_BRIDGE;if(void 0===e)throw new Error("Failed connect to the preload layer. Please setup createJazzSdkElectronPreload from @salutejs/jazz-sdk-electron/preload to preload layer of electron");return e}const p=a.token({key:"JAZZ_SDK_ELECTRON_CONTEXT_TOKEN"}),d={Transport:a.token({key:"JAZZ_SDK_ELECTRON_TOKENS_TRANSPORT_TOKEN"})},s=a.token({key:"JAZZ_SDK_ELECTRON_ENDPOINT_CONTEXT_TOKEN"}),c={Transport:a.token({key:"JAZZ_SDK_ELECTRON_ENDPOINT_TOKENS_TRANSPORT_TOKEN"})},l=t.declareController().params().apply((({params:a,scope:t})=>{const{jazzActivity:r,transport:o,event$:i,participants:p,jazzRoomContext:d,jazzSdkContext:s}=a;t.add(r.event$.pipe(e.filterByType("reaction","raiseHand","releaseHand"),n.tap((e=>{o.send(e)}))).subscribe()),t.add(i.pipe(e.filterByType("participantLeft","participantJoined","participantUpdate","participants","localParticipantChanged","participantUpdate","localParticipantId","disconnecting"),n.tap(o.send)).subscribe()),t.add(d.roomTrackManager.event$.pipe(e.filterByType("addTrack","trackMuteChanged"),n.tap((e=>{o.send({type:`roomTrackManager:${e.type}`,payload:{isLocal:e.payload.isLocal,isMuted:e.payload.isMuted,mediaType:e.payload.mediaType,participantId:e.payload.participantId,streamId:e.payload.stream.id}})}))).subscribe()),t.add(d.roomTrackManager.event$.pipe(e.filterByType("trackUpdated"),n.tap((e=>{o.send({type:`roomTrackManager:${e.type}`,payload:{isMuted:e.payload.isMuted,mediaType:e.payload.mediaType,streamId:e.payload.stream.id,isLocal:e.payload.isLocal,participantId:e.payload.participantId}})}))).subscribe()),t.add(d.roomTrackManager.event$.pipe(e.filterByType("removeTrack"),n.tap((e=>{o.send({type:`roomTrackManager:${e.type}`,payload:{isLocal:e.payload.isLocal,mediaType:e.payload.mediaType,participantId:e.payload.participantId,streamId:e.payload.stream.id,isMuted:e.payload.isMuted}})}))).subscribe()),t.add(d.roomTrackManager.event$.pipe(e.filterByType("remoteTrackInfo"),n.tap((e=>{o.send({type:`roomTrackManager:${e.type}`,payload:{mediaType:e.payload.mediaType,participantId:e.payload.participantId,isMuted:e.payload.isMuted}})}))).subscribe()),t.add(s.localTrackManager.event$.pipe(e.filterByType("addTrack","muteTrackChanged","localTrackUpdated"),n.tap((e=>{o.send({type:`localTrackManager:${e.type}`,payload:{mediaType:e.payload.mediaType,isMuted:e.payload.isMuted,streamId:e.payload.stream.id}})}))).subscribe()),t.add(s.localTrackManager.event$.pipe(e.filterByType("removeTrack"),n.tap((e=>{o.send({type:`localTrackManager:${e.type}`,payload:{mediaType:e.payload.mediaType,streamId:e.payload.stream.id}})}))).subscribe()),t.add(s.localTrackManager.event$.pipe(e.filterByType("disposeTrack"),n.tap((e=>{o.send({type:`localTrackManager:${e.type}`,payload:{mediaType:e.payload.mediaType,streamId:e.payload.stream.id}})}))).subscribe()),t.onDestroy(o.on("registerEndpoint",(({endpointName:e})=>{const a=p.localParticipantId();a&&o.send({type:"localParticipantId",payload:{participantId:a},to:e}),o.send({type:"participants",payload:{participants:[...p.participantIds()].map((e=>{const a=p.getParticipant(e);return Object.assign(Object.assign({},a),{name:a.name()})}))},to:e}),o.send({type:"handsRaised",payload:{handsRaised:[...r.handsRaised()]},to:e});const t=p.$localParticipant.get();t&&o.send({type:"localParticipantChanged",payload:{participant:t},to:e})})))})),y=e.declareRuntimeModule({factory:a.injectable((({jazzActivity:e,jazzRoom:a,transport:t,participants:n,jazzSdkContext:r,jazzRoomContext:o})=>new l({event$:a.event$,jazzActivity:e,participants:n,transport:t,jazzSdkContext:r,jazzRoomContext:o})),{transport:d.Transport,jazzActivity:e.JAZZ_ACTIVITY_TOKEN,jazzRoom:e.JazzRoomTokens.Room,participants:e.JazzRoomTokens.Participants,jazzRoomContext:e.JAZZ_ROOM_CONTEXT_TOKEN,jazzSdkContext:e.JAZZ_SDK_CONTEXT_TOKEN})});const T=[function(){return o(this,void 0,void 0,(function*(){return e.createModule({name:"TransportEndpointSenderPlugin",imports:{jazzSdkContext:e.JAZZ_SDK_CONTEXT_TOKEN},factory:e=>{const{deps:{jazzSdkContext:a}}=e;return a.moduleManager.registerModule("addRoom",y),{}}})}))}()];const u="JAZZ_SDK_ELECTRON_IPC_CHANNEL",m=t.declareController().params().apply((({scope:e,params:a})=>{const{ipcRenderer:t}=a,i=e.signal(),p=(e,a)=>{i(a)};t.on(u,p),e.onDestroy((()=>{t.off(u,p)}));const d=new Map,s=(e,a)=>{const t=d.get(e);if(!t)return;const n=t.get(a);n&&(n.unsubscribe(),t.delete(a),0===t.size&&d.delete(e))},c=(e,a,t)=>{var n;const r=d.get(e);if(!r)return d.set(e,new Map([[a,t]])),()=>s(e,a);return r.get(a)||null===(n=d.get(e))||void 0===n||n.set(a,t),()=>s(e,a)};e.onDestroy((()=>{d.forEach((e=>{e.forEach((e=>{e.unsubscribe()})),e.clear()})),d.clear()}));const l=(e,a)=>{const t=r.observe(i).pipe(n.filter((a=>a.type===e))).subscribe((e=>{"payload"in e?a(e.payload):a()}));return c(e,a,t)},y={send:e=>{t.send(u,e)},once:(e,a)=>{const t=r.observe(i).pipe(n.filter((a=>a.type===e)),n.take(1)).subscribe((t=>{s(e,a),"payload"in t?a(t.payload):a()}));return c(e,a,t)},on:l,subscribe:l,addListener:(...e)=>{l(...e)},off:s,removeListener:s,__invoke:e=>o(void 0,void 0,void 0,(function*(){return t.invoke(u,e).then((e=>e.payload))})),withType:()=>y};return y}));exports.JAZZ_SDK_ELECTRON_CONTEXT_TOKEN=p,exports.JAZZ_SDK_ELECTRON_ENDPOINT_CONTEXT_TOKEN=s,exports.JazzSdkElectronEndpointTokens=c,exports.JazzSdkElectronTokens=d,exports.TransportController=m,exports.createJazzSdkElectron=function(){return o(this,arguments,void 0,(function*(t={}){const{container:n,plugins:r=[]}=t,o=null!=n?n:a.createContainer();o.bindValue(e.JAZZ_SDK_PLATFORM_TOKEN,"desktop");const{transport:s}=i(),c={transport:s};o.bindValue(p,c),o.bindValue(d.Transport,s);const l=[...T,...r],y=yield e.createJazzSdk(Object.assign(Object.assign({},t),{plugins:l,container:o}));return{container:y.container,event$:y.event$,destroy:()=>{y.destroy()}}}))},exports.createJazzSdkElectronEndpoint=function(t){return o(this,void 0,void 0,(function*(){const{container:n,endpointName:r,plugins:o=[],bridge:p}=t,d=null!=n?n:a.createContainer();d.bindValue(e.JAZZ_SDK_PLATFORM_TOKEN,"desktop");const{transport:l}=p?p():i(),y={transport:l};d.bindValue(s,y),d.bindValue(c.Transport,l);const T=yield e.createJazzSdk(Object.assign(Object.assign({},t),{plugins:o,container:d})),{logger:u}=T.container.resolve(e.JAZZ_SDK_CONTEXT_TOKEN);return u.log(`=== Started the JazzSdkElectronEndpoint:${r} ===`),l.send({type:"registerEndpoint",payload:{endpointName:r}}),{container:T.container,destroy:()=>{T.destroy()}}}))};