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

undici-thread-interceptor

Package Overview
Dependencies
Maintainers
0
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

undici-thread-interceptor - npm Package Compare versions

Comparing version 0.11.1 to 0.11.2

16

index.js

@@ -202,2 +202,6 @@ 'use strict'

port.postMessage({ type: 'route', url: key, port: port1, threadId: otherPort.threadId }, [port1])
// If we have a real address for the other port, we need to forward it
if (otherPort[kAddress]) {
port.postMessage({ type: 'address', url: key, address: otherPort[kAddress], threadId: otherPort.threadId })
}
}

@@ -221,5 +225,12 @@ }

roundRobin.remove(port)
for (const f of forwarded.get(port)) {
f.close()
if (forwarded.has(port)) {
for (const f of forwarded.get(port)) {
f.close()
}
// delete all the array of forwarded ports,
// to avoid a memory leak
forwarded.delete(port)
}
for (const cb of portInflights.get(port).values()) {

@@ -363,3 +374,2 @@ cb(new Error('Worker exited'))

const body = await collectBody(res.stream())
newRes = {

@@ -366,0 +376,0 @@ headers: res.headers,

2

package.json
{
"name": "undici-thread-interceptor",
"version": "0.11.1",
"version": "0.11.2",
"description": "An Undici interceptor that routes requests over a worker thread",

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

@@ -155,1 +155,69 @@ 'use strict'

})
test('service restart with network / 3', async (t) => {
const worker1 = new Worker(join(__dirname, 'fixtures', 'network-crash.js'), {
workerData: { name: 'worker1' },
})
t.after(() => worker1.terminate())
const worker2 = new Worker(join(__dirname, 'fixtures', 'network-crash.js'), {
workerData: { name: 'worker2' },
})
t.after(() => worker2.terminate())
const interceptor = createThreadInterceptor({
domain: '.local',
})
interceptor.route('myserver', worker1)
interceptor.route('myserver2', worker2)
const agent = new Agent().compose(interceptor)
await sleep(1000)
{
const res = await request('http://myserver2.local/example', {
dispatcher: agent,
})
strictEqual(res.statusCode, 200)
await res.body.dump()
}
await rejects(request('http://myserver2.local/crash', {
dispatcher: agent,
}))
const worker2bis = new Worker(join(__dirname, 'fixtures', 'network-crash.js'), {
workerData: { name: 'worker2bis' },
})
t.after(() => worker2bis.terminate())
interceptor.route('myserver2', worker2bis)
const composer = new Worker(join(__dirname, 'fixtures', 'composer.js'), {
workerData: { name: 'composer' },
})
t.after(() => composer.terminate())
interceptor.route('composer', composer)
await sleep(2000)
{
const res = await request('http://composer.local/s1/example', {
dispatcher: agent,
})
strictEqual(res.statusCode, 200)
await res.body.dump()
}
{
const res = await request('http://composer.local/s2/example', {
dispatcher: agent,
})
strictEqual(res.statusCode, 200)
await res.body.dump()
}
})
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