New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ndn/ws-transport

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ndn/ws-transport - npm Package Compare versions

Comparing version 0.0.20210203 to 0.0.20210930

0

lib/mod.d.ts
export * from "./ws-transport";

1

lib/ws_browser.d.ts

@@ -0,1 +1,2 @@

/// <reference types="web" />
export declare function makeWebSocket(uri: string): WebSocket;

@@ -0,1 +1,2 @@

/// <reference types="web" />
export declare function makeWebSocket(uri: string): WebSocket;

3

lib/ws_node.js

@@ -1,5 +0,4 @@

import { __importDefault, __importStar } from "tslib";
import _cjsDefaultImport0 from "ws"; const WsWebSocket = __importDefault(_cjsDefaultImport0).default;
import WsWebSocket from "ws";
export function makeWebSocket(uri) {
return new WsWebSocket(uri, [], { perMessageDeflate: false });
}
import { __importDefault, __importStar } from "tslib";
import { L3Face, rxFromPacketIterable, Transport } from "@ndn/l3face";
import _cjsDefaultImport0 from "event-iterator"; const EventIterator = __importDefault(_cjsDefaultImport0).default;
import _cjsDefaultImport0 from "p-event"; const pEvent = __importDefault(_cjsDefaultImport0).default;
import { map } from "streaming-iterables";
import { makeWebSocket } from "./ws_browser.js";

@@ -8,32 +9,25 @@ /** WebSocket transport. */

constructor(sock, opts) {
var _a, _b;
super({
describe: `WebSocket(${sock.url})`,
});
super({ describe: `WebSocket(${sock.url})` });
this.sock = sock;
this.opts = opts;
this.tx = async (iterable) => {
for await (const pkt of iterable) {
if (this.sock.readyState !== this.sock.OPEN) {
throw new Error(`unexpected WebSocket.readState ${this.sock.readyState}`);
try {
for await (const pkt of iterable) {
if (this.sock.readyState !== this.sock.OPEN) {
throw new Error(`unexpected WebSocket.readyState ${this.sock.readyState}`);
}
this.sock.send(pkt);
if (this.sock.bufferedAmount > this.highWaterMark) {
await this.waitForTxBuffer();
}
}
this.sock.send(pkt);
if (this.sock.bufferedAmount > this.highWaterMark) {
await this.waitForTxBuffer();
}
}
this.close();
finally {
this.close();
}
};
sock.binaryType = "arraybuffer";
this.rx = rxFromPacketIterable(new EventIterator(({ push, stop }) => {
const pushHandler = (evt) => push(new Uint8Array(evt.data));
sock.addEventListener("message", pushHandler);
sock.addEventListener("close", stop);
return () => {
sock.removeEventListener("message", pushHandler);
sock.removeEventListener("close", stop);
};
}));
this.highWaterMark = (_a = opts.highWaterMark) !== null && _a !== void 0 ? _a : 1024 * 1024;
this.lowWaterMark = (_b = opts.lowWaterMark) !== null && _b !== void 0 ? _b : 16 * 1024;
this.rx = rxFromPacketIterable(map((evt) => new Uint8Array(evt instanceof ArrayBuffer ? evt : evt.data), pEvent.iterator(sock, "message", { resolutionEvents: ["close"] })));
this.highWaterMark = opts.highWaterMark ?? 1024 * 1024;
this.lowWaterMark = opts.lowWaterMark ?? 16 * 1024;
}

@@ -60,3 +54,3 @@ close() {

* Create a transport and connect to remote endpoint.
* @param uri server URI.
* @param uri server URI or WebSocket object.
* @param opts other options.

@@ -67,4 +61,7 @@ */

return new Promise((resolve, reject) => {
var _a;
const sock = makeWebSocket(uri);
const sock = typeof uri === "string" ? makeWebSocket(uri) : uri;
if (sock.readyState === sock.OPEN) {
resolve(new WsTransport(sock, opts));
return;
}
const fail = (err) => {

@@ -76,3 +73,3 @@ sock.close();

const onabort = () => fail(new Error("abort"));
(_a = signal) === null || _a === void 0 ? void 0 : _a.addEventListener("abort", () => onabort);
signal?.addEventListener("abort", onabort);
const onerror = (evt) => {

@@ -84,6 +81,5 @@ sock.close();

sock.addEventListener("open", () => {
var _a;
clearTimeout(timeout);
sock.removeEventListener("error", onerror);
(_a = signal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", onabort);
signal?.removeEventListener("abort", onabort);
resolve(new WsTransport(sock, opts));

@@ -95,3 +91,3 @@ });

/** Create a transport and add to forwarder. */
WsTransport.createFace = L3Face.makeCreateFace(WsTransport.connect);
WsTransport.createFace = L3Face.makeCreateFace(connect);
})(WsTransport || (WsTransport = {}));
import { __importDefault, __importStar } from "tslib";
import { L3Face, rxFromPacketIterable, Transport } from "@ndn/l3face";
import _cjsDefaultImport0 from "event-iterator"; const EventIterator = __importDefault(_cjsDefaultImport0).default;
import _cjsDefaultImport0 from "p-event"; const pEvent = __importDefault(_cjsDefaultImport0).default;
import { map } from "streaming-iterables";
import { makeWebSocket } from "./ws_node.js";

@@ -8,32 +9,25 @@ /** WebSocket transport. */

constructor(sock, opts) {
var _a, _b;
super({
describe: `WebSocket(${sock.url})`,
});
super({ describe: `WebSocket(${sock.url})` });
this.sock = sock;
this.opts = opts;
this.tx = async (iterable) => {
for await (const pkt of iterable) {
if (this.sock.readyState !== this.sock.OPEN) {
throw new Error(`unexpected WebSocket.readState ${this.sock.readyState}`);
try {
for await (const pkt of iterable) {
if (this.sock.readyState !== this.sock.OPEN) {
throw new Error(`unexpected WebSocket.readyState ${this.sock.readyState}`);
}
this.sock.send(pkt);
if (this.sock.bufferedAmount > this.highWaterMark) {
await this.waitForTxBuffer();
}
}
this.sock.send(pkt);
if (this.sock.bufferedAmount > this.highWaterMark) {
await this.waitForTxBuffer();
}
}
this.close();
finally {
this.close();
}
};
sock.binaryType = "arraybuffer";
this.rx = rxFromPacketIterable(new EventIterator(({ push, stop }) => {
const pushHandler = (evt) => push(new Uint8Array(evt.data));
sock.addEventListener("message", pushHandler);
sock.addEventListener("close", stop);
return () => {
sock.removeEventListener("message", pushHandler);
sock.removeEventListener("close", stop);
};
}));
this.highWaterMark = (_a = opts.highWaterMark) !== null && _a !== void 0 ? _a : 1024 * 1024;
this.lowWaterMark = (_b = opts.lowWaterMark) !== null && _b !== void 0 ? _b : 16 * 1024;
this.rx = rxFromPacketIterable(map((evt) => new Uint8Array(evt instanceof ArrayBuffer ? evt : evt.data), pEvent.iterator(sock, "message", { resolutionEvents: ["close"] })));
this.highWaterMark = opts.highWaterMark ?? 1024 * 1024;
this.lowWaterMark = opts.lowWaterMark ?? 16 * 1024;
}

@@ -60,3 +54,3 @@ close() {

* Create a transport and connect to remote endpoint.
* @param uri server URI.
* @param uri server URI or WebSocket object.
* @param opts other options.

@@ -67,4 +61,7 @@ */

return new Promise((resolve, reject) => {
var _a;
const sock = makeWebSocket(uri);
const sock = typeof uri === "string" ? makeWebSocket(uri) : uri;
if (sock.readyState === sock.OPEN) {
resolve(new WsTransport(sock, opts));
return;
}
const fail = (err) => {

@@ -76,3 +73,3 @@ sock.close();

const onabort = () => fail(new Error("abort"));
(_a = signal) === null || _a === void 0 ? void 0 : _a.addEventListener("abort", () => onabort);
signal?.addEventListener("abort", onabort);
const onerror = (evt) => {

@@ -84,6 +81,5 @@ sock.close();

sock.addEventListener("open", () => {
var _a;
clearTimeout(timeout);
sock.removeEventListener("error", onerror);
(_a = signal) === null || _a === void 0 ? void 0 : _a.removeEventListener("abort", onabort);
signal?.removeEventListener("abort", onabort);
resolve(new WsTransport(sock, opts));

@@ -95,3 +91,3 @@ });

/** Create a transport and add to forwarder. */
WsTransport.createFace = L3Face.makeCreateFace(WsTransport.connect);
WsTransport.createFace = L3Face.makeCreateFace(connect);
})(WsTransport || (WsTransport = {}));

@@ -0,3 +1,6 @@

/// <reference types="web" />
/// <reference types="node" />
import { L3Face, Transport } from "@ndn/l3face";
import type { AbortSignal } from "abort-controller";
import type WsWebSocket from "ws";
/** WebSocket transport. */

@@ -12,3 +15,3 @@ export declare class WsTransport extends Transport {

close(): void;
tx: (iterable: AsyncIterable<Uint8Array>) => Promise<void>;
readonly tx: (iterable: AsyncIterable<Uint8Array>) => Promise<void>;
private waitForTxBuffer;

@@ -30,8 +33,8 @@ reopen(): Promise<WsTransport>;

* Create a transport and connect to remote endpoint.
* @param uri server URI.
* @param uri server URI or WebSocket object.
* @param opts other options.
*/
function connect(uri: string, opts?: WsTransport.Options): Promise<WsTransport>;
function connect(uri: string | WebSocket | WsWebSocket, opts?: WsTransport.Options): Promise<WsTransport>;
/** Create a transport and add to forwarder. */
const createFace: L3Face.CreateFaceFunc<typeof connect>;
const createFace: L3Face.CreateFaceFunc<WsTransport, [uri: string | WsWebSocket | WebSocket, opts?: Options | undefined]>;
}
{
"name": "@ndn/ws-transport",
"version": "0.0.20210203",
"version": "0.0.20210930",
"description": "NDNts: WebSocket Transport",

@@ -25,9 +25,11 @@ "keywords": [

"dependencies": {
"@ndn/l3face": "0.0.20210203",
"@ndn/l3face": "0.0.20210930",
"@types/ws": "^8.2.0",
"abort-controller": "^3.0.0",
"event-iterator": "^2.0.0",
"tslib": "^2.1.0",
"ws": "^7.4.3"
"p-event": "^4.2.0",
"streaming-iterables": "^6.0.0",
"tslib": "^2.3.1",
"ws": "^8.2.2"
},
"types": "lib/mod.d.ts"
}

@@ -17,2 +17,3 @@ # @ndn/ws-transport

import { Data, Interest, Name } from "@ndn/packet";
(async () => {

@@ -19,0 +20,0 @@ if (process.env.CI) { return; }

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc