@nestjs/websockets
Advanced tools
Comparing version 4.6.6 to 5.0.0-beta.0
/// <reference types="node" /> | ||
/// <reference types="socket.io" /> | ||
import { Server } from 'http'; | ||
@@ -7,12 +6,8 @@ import { MessageMappingProperties } from '../gateway-metadata-explorer'; | ||
import { Observable } from 'rxjs/Observable'; | ||
import 'rxjs/add/observable/fromEvent'; | ||
import 'rxjs/add/operator/switchMap'; | ||
import 'rxjs/add/operator/filter'; | ||
import 'rxjs/add/operator/do'; | ||
export declare class IoAdapter implements WebSocketAdapter { | ||
private readonly httpServer; | ||
constructor(httpServer?: Server | null); | ||
create(port: number): SocketIO.Server; | ||
create(port: number): any; | ||
createWithNamespace(port: number, namespace: string, server?: any): any; | ||
createIOServer(port: number): SocketIO.Server; | ||
createIOServer(port: number): any; | ||
bindClientConnect(server: any, callback: (...args) => void): void; | ||
@@ -19,0 +14,0 @@ bindClientDisconnect(client: any, callback: (...args) => void): void; |
@@ -5,7 +5,4 @@ "use strict"; | ||
const constants_1 = require("../constants"); | ||
const Observable_1 = require("rxjs/Observable"); | ||
require("rxjs/add/observable/fromEvent"); | ||
require("rxjs/add/operator/switchMap"); | ||
require("rxjs/add/operator/filter"); | ||
require("rxjs/add/operator/do"); | ||
const operators_1 = require("rxjs/operators"); | ||
const fromEvent_1 = require("rxjs/observable/fromEvent"); | ||
class IoAdapter { | ||
@@ -36,5 +33,4 @@ constructor(httpServer = null) { | ||
bindMessageHandlers(client, handlers, process) { | ||
handlers.forEach(({ message, callback }) => Observable_1.Observable.fromEvent(client, message) | ||
.switchMap(data => process(callback(data))) | ||
.filter(result => !!result && result.event) | ||
handlers.forEach(({ message, callback }) => fromEvent_1.fromEvent(client, message) | ||
.pipe(operators_1.switchMap(data => process(callback(data))), operators_1.filter(result => !!result && result.event)) | ||
.subscribe(({ event, data }) => client.emit(event, data))); | ||
@@ -41,0 +37,0 @@ } |
@@ -1,9 +0,9 @@ | ||
export declare const MESSAGE_MAPPING_METADATA = "__isMessageMapping"; | ||
export declare const MESSAGE_METADATA = "message"; | ||
export declare const GATEWAY_SERVER_METADATA = "__isSocketServer"; | ||
export declare const GATEWAY_METADATA = "__isGateway"; | ||
export declare const NAMESPACE_METADATA = "namespace"; | ||
export declare const PORT_METADATA = "port"; | ||
export declare const GATEWAY_MIDDLEWARES = "__gatewayMiddlewares"; | ||
export declare const CONNECTION_EVENT = "connection"; | ||
export declare const DISCONNECT_EVENT = "disconnect"; | ||
export declare const MESSAGE_MAPPING_METADATA = '__isMessageMapping'; | ||
export declare const MESSAGE_METADATA = 'message'; | ||
export declare const GATEWAY_SERVER_METADATA = '__isSocketServer'; | ||
export declare const GATEWAY_METADATA = '__isGateway'; | ||
export declare const NAMESPACE_METADATA = 'namespace'; | ||
export declare const PORT_METADATA = 'port'; | ||
export declare const GATEWAY_MIDDLEWARES = '__gatewayMiddlewares'; | ||
export declare const CONNECTION_EVENT = 'connection'; | ||
export declare const DISCONNECT_EVENT = 'disconnect'; |
import { ObservableSocketServer } from './interfaces'; | ||
export declare class SocketsContainer { | ||
private readonly observableServers; | ||
getAllServers(): Map<string, ObservableSocketServer>; | ||
getServerByPort(port: number): ObservableSocketServer; | ||
addServer(namespace: string, port: number, server: ObservableSocketServer): void; | ||
clear(): void; | ||
private readonly observableServers; | ||
getAllServers(): Map<string, ObservableSocketServer>; | ||
getServerByPort(port: number): ObservableSocketServer; | ||
addServer( | ||
namespace: string, | ||
port: number, | ||
server: ObservableSocketServer, | ||
): void; | ||
clear(): void; | ||
} |
@@ -5,11 +5,14 @@ import { NestGateway } from './interfaces/nest-gateway.interface'; | ||
export declare class GatewayMetadataExplorer { | ||
private readonly metadataScanner; | ||
constructor(metadataScanner: MetadataScanner); | ||
explore(instance: NestGateway): MessageMappingProperties[]; | ||
exploreMethodMetadata(instancePrototype: any, methodName: string): MessageMappingProperties; | ||
scanForServerHooks(instance: NestGateway): IterableIterator<string>; | ||
private readonly metadataScanner; | ||
constructor(metadataScanner: MetadataScanner); | ||
explore(instance: NestGateway): MessageMappingProperties[]; | ||
exploreMethodMetadata( | ||
instancePrototype: any, | ||
methodName: string, | ||
): MessageMappingProperties; | ||
scanForServerHooks(instance: NestGateway): IterableIterator<string>; | ||
} | ||
export interface MessageMappingProperties { | ||
message: string; | ||
callback: (...args) => Observable<any> | Promise<any> | void; | ||
message: string; | ||
callback: (...args) => Observable<any> | Promise<any> | void; | ||
} |
"use strict"; | ||
/* | ||
* Nest @websockets | ||
* Copyright(c) 2017-... Kamil Mysliwiec | ||
* www.nestjs.com || www.kamilmysliwiec.com | ||
* Copyright(c) 2017 - 2018 Kamil Mysliwiec | ||
* https://nestjs.com | ||
* MIT Licensed | ||
@@ -7,0 +7,0 @@ */ |
@@ -1,2 +0,2 @@ | ||
import { Metatype } from '@nestjs/common/interfaces/metatype.interface'; | ||
import { Type } from '@nestjs/common/interfaces/type.interface'; | ||
import { GatewayMiddleware } from './gateway-middleware.interface'; | ||
@@ -6,3 +6,3 @@ export interface GatewayMetadata { | ||
namespace?: string; | ||
middlewares?: Metatype<GatewayMiddleware>[]; | ||
middlewares?: Type<GatewayMiddleware>[]; | ||
} |
import 'reflect-metadata'; | ||
import { NestContainer, InstanceWrapper } from '@nestjs/core/injector/container'; | ||
import { | ||
NestContainer, | ||
InstanceWrapper, | ||
} from '@nestjs/core/injector/container'; | ||
import { NestGateway } from './index'; | ||
@@ -8,10 +11,17 @@ import { Injectable } from '@nestjs/common/interfaces/injectable.interface'; | ||
export declare class MiddlewaresInjector { | ||
private readonly container; | ||
private readonly config; | ||
constructor(container: NestContainer, config: ApplicationConfig); | ||
inject(server: any, instance: NestGateway, module: string): void; | ||
reflectMiddlewaresTokens(instance: NestGateway): any[]; | ||
applyMiddlewares(server: any, components: Map<string, InstanceWrapper<Injectable>>, tokens: any[]): void; | ||
bindMiddleware(token: string, components: Map<string, InstanceWrapper<Injectable>>): any; | ||
isGatewayMiddleware(middleware: object): middleware is GatewayMiddleware; | ||
private readonly container; | ||
private readonly config; | ||
constructor(container: NestContainer, config: ApplicationConfig); | ||
inject(server: any, instance: NestGateway, module: string): void; | ||
reflectMiddlewaresTokens(instance: NestGateway): any[]; | ||
applyMiddlewares( | ||
server: any, | ||
components: Map<string, InstanceWrapper<Injectable>>, | ||
tokens: any[], | ||
): void; | ||
bindMiddleware( | ||
token: string, | ||
components: Map<string, InstanceWrapper<Injectable>>, | ||
): any; | ||
isGatewayMiddleware(middleware: object): middleware is GatewayMiddleware; | ||
} |
import { ObservableSocketServer } from './interfaces/observable-socket-server.interface'; | ||
export declare class ObservableSocket { | ||
static create(server: any): ObservableSocketServer; | ||
static create(server: any): ObservableSocketServer; | ||
} |
{ | ||
"name": "@nestjs/websockets", | ||
"version": "4.6.6", | ||
"description": "Nest - modern, fast, powerful node.js web framework (@websockets)", | ||
"version": "5.0.0-beta.0", | ||
"description": | ||
"Nest - modern, fast, powerful node.js web framework (@websockets)", | ||
"author": "Kamil Mysliwiec", | ||
@@ -12,7 +13,7 @@ "license": "MIT", | ||
"peerDependencies": { | ||
"@nestjs/common": "^4.*", | ||
"@nestjs/core": "^4.*", | ||
"reflect-metadata": "0.1.10", | ||
"rxjs": "^5.4.2" | ||
"@nestjs/common": "^5.*", | ||
"@nestjs/core": "^5.*", | ||
"reflect-metadata": "0.1.12", | ||
"rxjs": "^5.5.6" | ||
} | ||
} |
<p align="center"> | ||
<a href="http://nestjs.com/" target="blank"><img src="http://kamilmysliwiec.com/public/nest-logo.png#1" alt="Nest Logo" /></a> | ||
<a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo_text.svg" width="320" alt="Nest Logo" /></a> | ||
</p> | ||
@@ -9,3 +9,3 @@ | ||
[linux-url]: https://travis-ci.org/nestjs/nest | ||
<p align="center">A progressive <a href="http://nodejs.org" target="blank">Node.js</a> framework for building efficient and scalable server-side applications, heavily inspired by <a href="https://angular.io" target="blank">Angular</a>.</p> | ||
@@ -22,2 +22,5 @@ <p align="center"> | ||
<a href="https://opencollective.com/nest#sponsor"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a> | ||
<a href="https://paypal.me/kamilmysliwiec"><img src="https://img.shields.io/badge/Donate-PayPal-5c5cc3.svg"/></a> | ||
<img src="https://img.shields.io/badge/👌-Production Ready-00ddcc.svg"/> | ||
<a href="https://twitter.com/nestframework"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a> | ||
</p> | ||
@@ -47,9 +50,10 @@ <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer) | ||
<a href="https://valor-software.com/"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="210" /></a> | ||
<a href="https://valor-software.com/"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="300" /></a> | ||
#### Sponsors | ||
<a href="https://scal.io"><img src="https://nestjs.com/img/scalio-logo.svg" width="160" /></a> <a href="https://www.swingdev.io"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="160" /></a> | ||
## Backers | ||
<a href="https://scal.io"><img src="https://nestjs.com/img/scalio-logo.svg" width="150" /></a> <a href="https://www.swingdev.io"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="150" /></a> | ||
## Backers | ||
<a href="https://opencollective.com/nest/backer/0/website" target="_blank"><img src="https://opencollective.com/nest/backer/0/avatar.svg"></a> | ||
@@ -102,10 +106,10 @@ <a href="https://opencollective.com/nest/backer/1/website" target="_blank"><img src="https://opencollective.com/nest/backer/1/avatar.svg"></a> | ||
- Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) | ||
- Website - [https://nestjs.com](https://nestjs.com/) | ||
- Twitter - [@nestframework](https://twitter.com/nestframework) | ||
* Author - [Kamil Myśliwiec](https://kamilmysliwiec.com) | ||
* Website - [https://nestjs.com](https://nestjs.com/) | ||
* Twitter - [@nestframework](https://twitter.com/nestframework) | ||
## License | ||
Nest is [MIT licensed](LICENSE). | ||
Nest is [MIT licensed](LICENSE). | ||
<h4 align="center"> <a href="readme_zh.md">中文说明</a></h4> |
@@ -5,9 +5,15 @@ import 'reflect-metadata'; | ||
export declare class SocketModule { | ||
private socketsContainer; | ||
private webSocketsController; | ||
setup(container: any, config: any): void; | ||
hookGatewaysIntoServers(components: Map<string, InstanceWrapper<Injectable>>, moduleName: string): void; | ||
hookGatewayIntoServer(wrapper: InstanceWrapper<Injectable>, moduleName: string): void; | ||
close(): void; | ||
private getContextCreator(container); | ||
private socketsContainer; | ||
private webSocketsController; | ||
register(container: any, config: any): void; | ||
hookGatewaysIntoServers( | ||
components: Map<string, InstanceWrapper<Injectable>>, | ||
moduleName: string, | ||
): void; | ||
hookGatewayIntoServer( | ||
wrapper: InstanceWrapper<Injectable>, | ||
moduleName: string, | ||
): void; | ||
close(): void; | ||
private getContextCreator(container); | ||
} |
@@ -21,3 +21,3 @@ "use strict"; | ||
} | ||
setup(container, config) { | ||
register(container, config) { | ||
this.webSocketsController = new web_sockets_controller_1.WebSocketsController(new socket_server_provider_1.SocketServerProvider(this.socketsContainer, config), container, config, this.getContextCreator(container)); | ||
@@ -24,0 +24,0 @@ const modules = container.getModules(); |
@@ -5,10 +5,13 @@ import { SocketsContainer } from './container'; | ||
export declare class SocketServerProvider { | ||
private readonly socketsContainer; | ||
private readonly applicationConfig; | ||
constructor(socketsContainer: SocketsContainer, applicationConfig: ApplicationConfig); | ||
scanForSocketServer(namespace: string, port: number): ObservableSocketServer; | ||
private createSocketServer(namespace, port); | ||
private createWithNamespace(namespace, port, observableSocket); | ||
private getServerOfNamespace(namespace, port, server); | ||
private validateNamespace(namespace); | ||
private readonly socketsContainer; | ||
private readonly applicationConfig; | ||
constructor( | ||
socketsContainer: SocketsContainer, | ||
applicationConfig: ApplicationConfig, | ||
); | ||
scanForSocketServer(namespace: string, port: number): ObservableSocketServer; | ||
private createSocketServer(namespace, port); | ||
private createWithNamespace(namespace, port, observableSocket); | ||
private getServerOfNamespace(namespace, port, server); | ||
private validateNamespace(namespace); | ||
} |
import 'reflect-metadata'; | ||
import { NestGateway } from './interfaces/nest-gateway.interface'; | ||
import { Injectable } from '@nestjs/common/interfaces/injectable.interface'; | ||
import { ObservableSocketServer } from './interfaces/observable-socket-server.interface'; | ||
@@ -8,3 +7,3 @@ import { MessageMappingProperties } from './gateway-metadata-explorer'; | ||
import { SocketServerProvider } from './socket-server-provider'; | ||
import { Metatype } from '@nestjs/common/interfaces/metatype.interface'; | ||
import { Type } from '@nestjs/common/interfaces/type.interface'; | ||
import { NestContainer } from '@nestjs/core/injector/container'; | ||
@@ -14,26 +13,57 @@ import { ApplicationConfig } from '@nestjs/core/application-config'; | ||
import { Observable } from 'rxjs/Observable'; | ||
import 'rxjs/add/observable/fromPromise'; | ||
import 'rxjs/add/observable/of'; | ||
import 'rxjs/add/operator/switchMap'; | ||
export declare class WebSocketsController { | ||
private readonly socketServerProvider; | ||
private readonly container; | ||
private readonly config; | ||
private readonly contextCreator; | ||
private readonly metadataExplorer; | ||
private readonly middlewaresInjector; | ||
constructor(socketServerProvider: SocketServerProvider, container: NestContainer, config: ApplicationConfig, contextCreator: WsContextCreator); | ||
hookGatewayIntoServer(instance: NestGateway, metatype: Metatype<Injectable>, module: string): void; | ||
subscribeObservableServer(instance: NestGateway, namespace: string, port: number, module: string): void; | ||
injectMiddlewares({server}: { | ||
server: any; | ||
}, instance: NestGateway, module: string): void; | ||
subscribeEvents(instance: NestGateway, messageHandlers: MessageMappingProperties[], observableServer: ObservableSocketServer): void; | ||
getConnectionHandler(context: WebSocketsController, instance: NestGateway, messageHandlers: MessageMappingProperties[], disconnect: Subject<any>, connection: Subject<any>): (client: any) => void; | ||
subscribeInitEvent(instance: NestGateway, event: Subject<any>): void; | ||
subscribeConnectionEvent(instance: NestGateway, event: Subject<any>): void; | ||
subscribeDisconnectEvent(instance: NestGateway, event: Subject<any>): void; | ||
subscribeMessages(messageHandlers: MessageMappingProperties[], client: any, instance: NestGateway): void; | ||
pickResult(defferedResult: Promise<any>): Promise<Observable<any>>; | ||
private hookServerToProperties(instance, server); | ||
private readonly socketServerProvider; | ||
private readonly container; | ||
private readonly config; | ||
private readonly contextCreator; | ||
private readonly metadataExplorer; | ||
private readonly middlewaresInjector; | ||
constructor( | ||
socketServerProvider: SocketServerProvider, | ||
container: NestContainer, | ||
config: ApplicationConfig, | ||
contextCreator: WsContextCreator, | ||
); | ||
hookGatewayIntoServer( | ||
instance: NestGateway, | ||
metatype: Type<any>, | ||
module: string, | ||
): void; | ||
subscribeObservableServer( | ||
instance: NestGateway, | ||
namespace: string, | ||
port: number, | ||
module: string, | ||
): void; | ||
injectMiddlewares( | ||
{ | ||
server, | ||
}: { | ||
server: any; | ||
}, | ||
instance: NestGateway, | ||
module: string, | ||
): void; | ||
subscribeEvents( | ||
instance: NestGateway, | ||
messageHandlers: MessageMappingProperties[], | ||
observableServer: ObservableSocketServer, | ||
): void; | ||
getConnectionHandler( | ||
context: WebSocketsController, | ||
instance: NestGateway, | ||
messageHandlers: MessageMappingProperties[], | ||
disconnect: Subject<any>, | ||
connection: Subject<any>, | ||
): (client: any) => void; | ||
subscribeInitEvent(instance: NestGateway, event: Subject<any>): void; | ||
subscribeConnectionEvent(instance: NestGateway, event: Subject<any>): void; | ||
subscribeDisconnectEvent(instance: NestGateway, event: Subject<any>): void; | ||
subscribeMessages( | ||
messageHandlers: MessageMappingProperties[], | ||
client: any, | ||
instance: NestGateway, | ||
): void; | ||
pickResult(defferedResult: Promise<any>): Promise<Observable<any>>; | ||
private hookServerToProperties(instance, server); | ||
} |
@@ -17,7 +17,6 @@ "use strict"; | ||
const middlewares_injector_1 = require("./middlewares-injector"); | ||
const Observable_1 = require("rxjs/Observable"); | ||
const shared_utils_1 = require("@nestjs/common/utils/shared.utils"); | ||
require("rxjs/add/observable/fromPromise"); | ||
require("rxjs/add/observable/of"); | ||
require("rxjs/add/operator/switchMap"); | ||
const fromPromise_1 = require("rxjs/observable/fromPromise"); | ||
const of_1 = require("rxjs/observable/of"); | ||
const operators_1 = require("rxjs/operators"); | ||
class WebSocketsController { | ||
@@ -95,3 +94,3 @@ constructor(socketServerProvider, container, config, contextCreator) { | ||
})); | ||
adapter.bindMessageHandlers(client, handlers, data => Observable_1.Observable.fromPromise(this.pickResult(data)).switchMap(stream => stream)); | ||
adapter.bindMessageHandlers(client, handlers, data => fromPromise_1.fromPromise(this.pickResult(data)).pipe(operators_1.switchMap(stream => stream))); | ||
} | ||
@@ -105,5 +104,5 @@ pickResult(defferedResult) { | ||
if (result instanceof Promise) { | ||
return Observable_1.Observable.fromPromise(result); | ||
return fromPromise_1.fromPromise(result); | ||
} | ||
return Observable_1.Observable.of(result); | ||
return of_1.of(result); | ||
}); | ||
@@ -110,0 +109,0 @@ } |
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
950
112
54734
2