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

it-ws

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

it-ws - npm Package Compare versions

Comparing version 2.0.0 to 2.1.0

7

duplex.js

@@ -13,6 +13,9 @@ const source = require('./source')

return {
const duplex = {
sink: sink(socket, options),
source: source(socket, options)
source: source(socket, options),
connected: () => duplex.source.connected()
}
return duplex
}
{
"name": "it-ws",
"version": "2.0.0",
"version": "2.1.0",
"description": "Simple async iterables for websocket client connections",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -25,2 +25,4 @@ # it-ws

await stream.connected() // Wait for websocket to be connected (optional)
pipeline(() => source, stream.sink)

@@ -27,0 +29,0 @@ pipeline(() => stream.source, sink)

@@ -13,3 +13,5 @@ const { Buffer } = require('safe-buffer')

module.exports = socket => {
return (async function * () {
const removeListener = socket.removeEventListener || socket.removeListener
const source = (async function * () {
const messages = new EventIterator(

@@ -22,6 +24,5 @@ (push, stop, fail) => {

(push, stop, fail) => {
const remove = socket.removeEventListener || socket.removeListener
remove.call(socket, 'message', push)
remove.call(socket, 'error', fail)
remove.call(socket, 'close', stop)
removeListener.call(socket, 'message', push)
removeListener.call(socket, 'error', fail)
removeListener.call(socket, 'close', stop)
},

@@ -35,2 +36,38 @@ { highWaterMark: Infinity }

})()
let connected = socket.readyState === 1
let connError
socket.addEventListener('open', () => {
connected = true
connError = null
})
socket.addEventListener('close', () => {
connected = false
connError = null
})
socket.addEventListener('error', err => {
if (!connected) connError = err
})
source.connected = () => new Promise((resolve, reject) => {
if (connected) return resolve()
if (connError) return reject(connError)
const cleanUp = cont => {
removeListener.call(socket, 'open', onOpen)
removeListener.call(socket, 'error', onError)
cont()
}
const onOpen = () => cleanUp(resolve)
const onError = err => cleanUp(() => reject(err))
socket.addEventListener('open', onOpen)
socket.addEventListener('error', onError)
})
return source
}

@@ -53,4 +53,13 @@ var test = require('tape')

test('test error', async function (t) {
test('test connection error awaiting connected', async function (t) {
try {
await ws(new WebSocket('ws://localhost:34897/' + Math.random())).connected()
} catch (err) {
t.ok(err.message.includes('ECONNREFUSED'))
t.end()
}
})
test('test connection error in stream', async function (t) {
try {
await pipeline(

@@ -57,0 +66,0 @@ () => ws(new WebSocket('ws://localhost:34897/' + Math.random())).source,

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