Socket
Socket
Sign inDemoInstall

@nestjs/websockets

Package Overview
Dependencies
2
Maintainers
1
Versions
322
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 4.6.6 to 5.0.0-beta.0

9

adapters/io-adapter.d.ts
/// <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> &nbsp; <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> &nbsp; <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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc