{"version":3,"file":"ngx-socket-io.mjs","sources":["../../src/socket-io.service.ts","../../src/socket-io.module.ts","../../ngx-socket-io.ts"],"sourcesContent":["import { 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 = {};\n eventObservables$: Record> = {};\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(eventName: string): Observable {\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(share());\n }\n return this.eventObservables$[eventName];\n }\n\n fromOneTimeEvent(eventName: string): Promise {\n return new Promise(resolve => this.once(eventName, resolve));\n }\n\n listeners(eventName: string) {\n return this.ioSocket.listeners(eventName);\n }\n\n listenersAny() {\n return this.ioSocket.listenersAny();\n }\n\n listenersAnyOutgoing() {\n return this.ioSocket.listenersAnyOutgoing();\n }\n\n off(eventName?: string, listener?: Function[]) {\n if (!eventName) {\n // Remove all listeners for all events\n return this.ioSocket.offAny();\n }\n\n if (eventName && !listener) {\n // Remove all listeners for that event\n return this.ioSocket.off(eventName);\n }\n\n // Removes the specified listener from the listener array for the event named\n return this.ioSocket.off(eventName, listener);\n }\n\n onAny(callback: (event: string, ...args: any[]) => void) {\n return this.ioSocket.onAny(callback);\n }\n\n onAnyOutgoing(callback: (event: string, ...args: any[]) => void) {\n return this.ioSocket.onAnyOutgoing(callback);\n }\n\n prependAny(callback: (event: string, ...args: any[]) => void) {\n return this.ioSocket.prependAny(callback);\n }\n\n prependAnyOutgoing(\n callback: (event: string | symbol, ...args: any[]) => void\n ) {\n return this.ioSocket.prependAnyOutgoing(callback);\n }\n\n timeout(value: number) {\n return this.ioSocket.timeout(value);\n }\n\n volatile() {\n return this.ioSocket.volatile;\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(\n '__SOCKET_IO_CONFIG__'\n);\n\n@NgModule({})\nexport class SocketIoModule {\n static forRoot(config: SocketIoConfig): ModuleWithProviders {\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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"}