psi-socket-io
Version:
Socket.IO module for Angular
1 lines • 7.25 kB
Source Map (JSON)
{"version":3,"file":"psi-socket-io.mjs","sources":["../../src/socket-io.service.ts","../../src/socket-io.module.ts","../../psi-socket-io.ts"],"sourcesContent":["import { Inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\nimport * as io from 'socket.io-client';\n\nimport { SocketIoConfig } from './config/socket-io.config';\n\nexport class WrappedSocket {\n subscribersCounter: Record<string, number> = {};\n eventObservables$: Record<string, Observable<any>> = {};\n ioSocket: any;\n emptyConfig: SocketIoConfig = {\n url: '',\n options: {}\n };\n\n constructor(private config: SocketIoConfig) {\n if (config === undefined) {\n config = this.emptyConfig;\n }\n const url: string = config.url;\n const options: any = config.options;\n const ioFunc = (io as any).default ? (io as any).default : io;\n this.ioSocket = ioFunc(url, options);\n }\n\n of(namespace: string) {\n this.ioSocket.of(namespace);\n }\n\n on(eventName: string, callback: Function) {\n this.ioSocket.on(eventName, callback);\n }\n\n once(eventName: string, callback: Function) {\n this.ioSocket.once(eventName, callback);\n }\n\n connect() {\n return this.ioSocket.connect();\n }\n\n disconnect(close?: any) {\n return this.ioSocket.disconnect.apply(this.ioSocket, arguments);\n }\n\n emit(eventName: string, ...args: any[]) {\n return this.ioSocket.emit.apply(this.ioSocket, arguments);\n }\n\n removeListener(eventName: string, callback?: Function) {\n return this.ioSocket.removeListener.apply(this.ioSocket, arguments);\n }\n\n removeAllListeners(eventName?: string) {\n return this.ioSocket.removeAllListeners.apply(this.ioSocket, arguments);\n }\n\n fromEvent<T>(eventName: string): Observable<T> {\n if (!this.subscribersCounter[eventName]) {\n this.subscribersCounter[eventName] = 0;\n }\n this.subscribersCounter[eventName]++;\n\n if (!this.eventObservables$[eventName]) {\n this.eventObservables$[eventName] = new Observable((observer: any) => {\n const listener = (data: T) => {\n observer.next(data);\n };\n this.ioSocket.on(eventName, listener);\n return () => {\n this.subscribersCounter[eventName]--;\n if (this.subscribersCounter[eventName] === 0) {\n this.ioSocket.removeListener(eventName, listener);\n delete this.eventObservables$[eventName];\n }\n };\n }).pipe(\n share()\n );\n }\n return this.eventObservables$[eventName];\n }\n\n fromOneTimeEvent<T>(eventName: string): Promise<T> {\n return new Promise<T>(resolve => this.once(eventName, resolve));\n }\n\n}\n","import { NgModule, ModuleWithProviders, InjectionToken } from '@angular/core';\nimport { SocketIoConfig } from './config/socket-io.config';\nimport { WrappedSocket } from './socket-io.service';\n\n/** Socket factory */\nexport function SocketFactory(config: SocketIoConfig) {\n return new WrappedSocket(config);\n}\n\nexport const SOCKET_CONFIG_TOKEN = new InjectionToken<SocketIoConfig>('__SOCKET_IO_CONFIG__');\n\n@NgModule({})\nexport class SocketIoModule {\n static forRoot(config: SocketIoConfig): ModuleWithProviders<SocketIoModule> {\n return {\n ngModule: SocketIoModule,\n providers: [\n { provide: SOCKET_CONFIG_TOKEN, useValue: config },\n {\n provide: WrappedSocket,\n useFactory: SocketFactory,\n deps : [SOCKET_CONFIG_TOKEN]\n }\n ]\n };\n }\n }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}