Comparing version 0.20.3 to 0.20.4-dev.0
@@ -8,4 +8,4 @@ exports.rethrowError=(r=>{console.warn(r) | ||
exports.catchSync=((r,...t)=>{let e,o | ||
try{e=r(...t)}catch(r){o=r}return{result:e,error:o}}) | ||
try{e=r(...t)}catch(r){o=r||new Error}return{result:e,error:o}}) | ||
exports.catchAsync=(async(r,...t)=>{let e,o | ||
try{e=await r(...t)}catch(r){o=r}return{result:e,error:o}}) | ||
try{e=await r(...t)}catch(r){o=r||new Error}return{result:e,error:o}}) |
@@ -1,13 +0,13 @@ | ||
exports.createHub=(()=>{let e=new Set | ||
exports.createHub=(()=>{const e=new Set | ||
return{clear:()=>e.clear(),subscribe:t=>{e.add(t)},unsubscribe:t=>{e.delete(t)},send:t=>e.forEach(e=>e(t))}}) | ||
const e=()=>{const e=new Map | ||
return{setMap:e,clear:()=>e.clear(),addListener:(t,r)=>{const n=e.get(t) | ||
n?n.add(r):e.set(t,new Set([r]))},removeListener:(t,r)=>{const n=e.get(t) | ||
return{setMap:e,clear:()=>e.clear(),on:(t,r)=>{const n=e.get(t) | ||
n?n.add(r):e.set(t,new Set([r]))},off:(t,r)=>{const n=e.get(t) | ||
n&&n.delete(r) | ||
n&&0===n.size&&e.delete(t)}}} | ||
exports.createEventTarget=(()=>{const{setMap:t,clear:r,addListener:n,removeListener:s}=e() | ||
return{clear:r,addEventListener:n,removeEventListener:s,dispatchEvent:e=>{const r=t.get(e.type) | ||
r&&r.forEach(t=>t(e))}}}) | ||
exports.createEventEmitter=(()=>{const{setMap:t,clear:r,addListener:n,removeListener:s}=e() | ||
return{clear:r,addListener:n,removeListener:s,removeAllListeners:(...e)=>{e.length?e.forEach(e=>t.delete(e)):t.clear()},emit:(e,...r)=>{const n=t.get(e) | ||
n&&n.forEach(e=>e(...r))},on:n,off:s}}) | ||
exports.createEventTarget=(()=>{const{setMap:t,clear:r,on:n,off:s}=e() | ||
return{clear:r,dispatchEvent:e=>{const r=t.get(e.type) | ||
r&&r.forEach(t=>t(e))},addEventListener:n,removeEventListener:s}}) | ||
exports.createEventEmitter=(()=>{const{setMap:t,clear:r,on:n,off:s}=e() | ||
return{clear:r,emit:(e,...r)=>{const n=t.get(e) | ||
n&&n.forEach(e=>e(...r))},on:n,off:s,addListener:n,removeListener:s,removeAllListeners:(...e)=>{e.length?e.forEach(e=>t.delete(e)):t.clear()}}}) |
@@ -1,11 +0,11 @@ | ||
exports.receiveBufferAsync=(e=>new Promise((r,n)=>{const t=[] | ||
exports.receiveBufferAsync=(e=>new Promise((r,o)=>{const n=[] | ||
e.on("error",o) | ||
e.on("data",e=>n.push(e)) | ||
e.on("end",()=>{e.off("error",o) | ||
r(Buffer.concat(n))})})) | ||
exports.sendBufferAsync=((e,r)=>new Promise((o,n)=>{if(0===r.length)return o() | ||
e.on("error",n) | ||
e.on("data",e=>t.push(e)) | ||
e.on("end",()=>{e.removeListener("error",n) | ||
r(Buffer.concat(t))})})) | ||
exports.sendBufferAsync=((e,r)=>new Promise((n,t)=>{if(0===r.length)return n() | ||
e.on("error",t) | ||
e.write(r,()=>{e.removeListener("error",t) | ||
n()})})) | ||
exports.toArrayBuffer=(e=>{const{buffer:r,byteOffset:n,byteLength:t}=e | ||
return r.byteLength===t?r:r.slice(n,n+t)}) | ||
e.write(r,()=>{e.off("error",n) | ||
o()})})) | ||
exports.toArrayBuffer=(e=>{const{buffer:r,byteOffset:o,byteLength:n}=e | ||
return r.byteLength===n?r:r.slice(o,o+n)}) |
var e=require("stream") | ||
exports.pipeStreamAsync=((e,r)=>new Promise((n,o)=>{r.on("error",o) | ||
r.on("end",()=>{r.removeListener("error",o) | ||
n()}) | ||
exports.pipeStreamAsync=((e,r)=>new Promise((o,n)=>{r.on("error",n) | ||
r.on("end",()=>{r.off("error",n) | ||
o()}) | ||
r.pipe(e)})) | ||
exports.bufferToStream=(r=>{const n=new e.Duplex | ||
n.push(r) | ||
n.push(null) | ||
return n}) | ||
exports.bufferToStream=(r=>{const o=new e.Duplex | ||
o.push(r) | ||
o.push(null) | ||
return o}) |
@@ -24,3 +24,3 @@ var e=require("crypto") | ||
return{server:a,option:s,start:async()=>!a.listening&&new Promise((e,r)=>{a.on("error",r) | ||
a.listen(s.port,s.hostname,()=>{a.removeListener("error",r) | ||
a.listen(s.port,s.hostname,()=>{a.off("error",r) | ||
e()})}),stop:async()=>a.listening&&new Promise(e=>a.close(e))}}) | ||
@@ -27,0 +27,0 @@ const p=(e,r)=>e.setState({error:r}) |
@@ -1,27 +0,27 @@ | ||
var e=require("net") | ||
exports.createTCPProxyServer=(({hostname:t="localhost",port:o,targetHostname:r="localhost",targetPort:n,getTargetOption:s=(e=>({hostname:r,port:n}))})=>{const a=(0,e.createServer)() | ||
const c={hostname:t,port:o,getTargetOption:s} | ||
var t=require("net") | ||
exports.createTCPProxyServer=(({hostname:o="localhost",port:e,targetHostname:r="localhost",targetPort:n,getTargetOption:s=(t=>({hostname:r,port:n}))})=>{const a=(0,t.createServer)() | ||
const c={hostname:o,port:e,getTargetOption:s} | ||
const i=new Set | ||
a.on("connection",async t=>{let o=[] | ||
const r=e=>o.push(e) | ||
const n=()=>{i.delete(t) | ||
a.on("connection",async o=>{let e=[] | ||
const r=t=>e.push(t) | ||
const n=()=>{i.delete(o) | ||
a.destroy()} | ||
t.on("error",n) | ||
t.on("close",n) | ||
t.on("data",r) | ||
i.add(t) | ||
const a=new e.Socket | ||
const c=()=>t.destroy() | ||
o.on("error",n) | ||
o.on("close",n) | ||
o.on("data",r) | ||
i.add(o) | ||
const a=new t.Socket | ||
const c=()=>o.destroy() | ||
a.on("error",c) | ||
a.on("close",c) | ||
a.on("data",e=>t.write(e)) | ||
const l=await s(t) | ||
a.connect(l.port,l.hostname,()=>{for(const e of o)a.write(e) | ||
o=null | ||
t.removeListener("data",r) | ||
t.on("data",e=>a.write(e))})}) | ||
return{server:a,option:c,socketSet:i,start:async()=>!a.listening&&new Promise((e,r)=>{a.on("error",r) | ||
a.listen(o,t,()=>{a.removeListener("error",r) | ||
e()})}),stop:async()=>a.listening&&new Promise(e=>{i.forEach(e=>e.destroy()) | ||
a.on("data",t=>o.write(t)) | ||
const l=await s(o) | ||
a.connect(l.port,l.hostname,()=>{for(const t of e)a.write(t) | ||
e=null | ||
o.off("data",r) | ||
o.on("data",t=>a.write(t))})}) | ||
return{server:a,option:c,socketSet:i,start:async()=>!a.listening&&new Promise((t,r)=>{a.on("error",r) | ||
a.listen(e,o,()=>{a.off("error",r) | ||
t()})}),stop:async()=>a.listening&&new Promise(t=>{i.forEach(t=>t.destroy()) | ||
i.clear() | ||
a.close(e)})}}) | ||
a.close(t)})}}) |
@@ -10,10 +10,10 @@ var e=require("crypto") | ||
let c | ||
const u=()=>{o=Promise.resolve("HEAD") | ||
const f=()=>{o=Promise.resolve("HEAD") | ||
s=null | ||
c=null} | ||
u() | ||
const f=(e,t)=>o=o.then(e,t) | ||
const i=(o,u,f,i)=>{const{FINQuadBit:E,opcodeQuadBitMask:d}=o | ||
const{length:_}=f | ||
const A=E<<4|u&d | ||
f() | ||
const u=(e,t)=>o=o.then(e,t) | ||
const E=(o,f,u,E)=>{const{FINQuadBit:i,opcodeQuadBitMask:d}=o | ||
const{length:_}=u | ||
const A=i<<4|f&d | ||
let h,F | ||
@@ -25,3 +25,3 @@ if(_<=125){h=_ | ||
F=8}if(_>t)throw new Error(`[encodeFrame] dataBuffer length ${_} exceeds limit: ${t}`) | ||
const P=i===r.DO_MASK_DATA | ||
const P=E===r.DO_MASK_DATA | ||
const M=P?4:0 | ||
@@ -34,13 +34,13 @@ const B=P&&_?(0,e.randomBytes)(4):l | ||
P&&B.copy(s,2+F) | ||
c=f | ||
c=u | ||
P&&_&&a(c,B)} | ||
return{clear:u,setFrameLengthLimit:e=>{t=e},queuePromise:f,encodeFrame:i,encodeCloseFrame:(e=1e3,t="",n)=>{const o=Buffer.byteLength(t) | ||
return{clear:f,setFrameLengthLimit:e=>{t=e},queuePromise:u,encodeFrame:E,encodeCloseFrame:(e=1e3,t="",n)=>{const o=Buffer.byteLength(t) | ||
const l=Buffer.allocUnsafe(2+o) | ||
l.writeUInt16BE(e,0,!0) | ||
l.write(t,2,o) | ||
i(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_CLOSE,l,n)},encodePingFrame:(e,t)=>i(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PING,e,t),encodePongFrame:(e,t)=>i(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PONG,e,t),sendEncodedFrame:e=>{const t=s | ||
E(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_CLOSE,l,n)},encodePingFrame:(e,t)=>E(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PING,e,t),encodePongFrame:(e,t)=>E(r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,r.DATA_TYPE_MAP.OPCODE_PONG,e,t),sendEncodedFrame:e=>{const t=s | ||
const r=c | ||
s=null | ||
c=null | ||
return f(()=>new Promise((n,o)=>{const l=()=>{e.removeListener("error",o) | ||
return u(()=>new Promise((n,o)=>{const l=()=>{e.off("error",o) | ||
n()} | ||
@@ -58,14 +58,14 @@ e.on("error",o) | ||
const o=(e,r)=>t=t.then(e,r) | ||
return{clear:n,setFrameLengthLimit:t=>{e=t},queuePromise:o,listenAndReceiveFrame:(t,l,a=n)=>{const{pushChunkDataBuffer:c,decode:u,resetDecode:f,getDecodeFrame:i}=s(e) | ||
let E=null | ||
return{clear:n,setFrameLengthLimit:t=>{e=t},queuePromise:o,listenAndReceiveFrame:(t,l,a=n)=>{const{pushChunkDataBuffer:c,decode:f,resetDecode:u,getDecodeFrame:E}=s(e) | ||
let i=null | ||
let d=null | ||
const _=()=>{d&&t.removeListener("error",d) | ||
E=null | ||
const _=()=>{d&&t.off("error",d) | ||
i=null | ||
d=null | ||
f()} | ||
u()} | ||
const A=e=>{_() | ||
a(e)} | ||
const h=()=>{if(E)return | ||
const h=()=>{if(i)return | ||
const e=new Promise((e,r)=>{t.on("error",r) | ||
E=e | ||
i=e | ||
d=r}) | ||
@@ -75,4 +75,4 @@ o(()=>e.then(l),A)} | ||
c(e) | ||
for(;u();){const e=i() | ||
if(null!==e){E(e) | ||
for(;f();){const e=E() | ||
if(null!==e){i(e) | ||
_() | ||
@@ -83,3 +83,3 @@ h()}}} | ||
r=(()=>{_() | ||
t.removeListener("data",F)})}}}) | ||
t.off("data",F)})}}}) | ||
const s=e=>{const{pushChunkDataBuffer:t,hasChunkDataBuffer:l,getMergedChunkDataBuffer:s}=(()=>{let e=[] | ||
@@ -102,6 +102,6 @@ let t=0 | ||
let c=0 | ||
let f=null | ||
let u=null | ||
let f=null | ||
let i=!1 | ||
let E=null | ||
let E=!1 | ||
let i=null | ||
let d=null | ||
@@ -112,12 +112,12 @@ let _=0 | ||
const o=127&t | ||
u=8==(t>>>12&8)?n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_LAST:r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE:n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_MORE:r.FRAME_TYPE_CONFIG_MAP.FRAME_FIRST | ||
f=n | ||
i=0!=(128&t) | ||
f=8==(t>>>12&8)?n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_LAST:r.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE:n===r.DATA_TYPE_MAP.OPCODE_CONTINUATION?r.FRAME_TYPE_CONFIG_MAP.FRAME_MORE:r.FRAME_TYPE_CONFIG_MAP.FRAME_FIRST | ||
u=n | ||
E=0!=(128&t) | ||
if(0===o){_=0 | ||
c=i?3:5}else if(o<=125){if((_=o)>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`) | ||
c=i?3:4}else c=126===o?1:2 | ||
c=E?3:5}else if(o<=125){if((_=o)>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`) | ||
c=E?3:4}else c=126===o?1:2 | ||
return!0}break | ||
case 1:if(l(2)){const t=s(2) | ||
if((_=t.readUInt16BE(0,!0))>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`) | ||
c=i?3:4 | ||
c=E?3:4 | ||
return!0}break | ||
@@ -127,17 +127,17 @@ case 2:if(l(8)){const t=s(8) | ||
if(_>e)throw new Error(`[decode] dataBuffer length ${_} exceeds limit: ${e}`) | ||
c=i?3:4 | ||
c=E?3:4 | ||
return!0}break | ||
case 3:if(l(4)){E=s(4) | ||
case 3:if(l(4)){i=s(4) | ||
c=_?4:5 | ||
return!0}break | ||
case 4:if(l(_)){d=s(_) | ||
i&&a(d,E) | ||
E&&a(d,i) | ||
c=5 | ||
return!0}}return!1},resetDecode:()=>{c=0 | ||
f=null | ||
u=null | ||
f=null | ||
i=!1 | ||
E=null | ||
E=!1 | ||
i=null | ||
d=null | ||
_=0},getDecodeFrame:()=>5!==c?null:{isFIN:8===u.FINQuadBit,dataType:f,dataBuffer:d,dataBufferLength:_}}} | ||
_=0},getDecodeFrame:()=>5!==c?null:{isFIN:8===f.FINQuadBit,dataType:u,dataBuffer:d,dataBufferLength:_}}} | ||
const a=(e,t)=>{for(let r=0,n=e.length;r<n;r++)e[r]^=t[3&r]} |
@@ -9,14 +9,14 @@ var e=require("../../../common/module/Event") | ||
const l=(0,r.createFrameReceiver)(s) | ||
let f=null | ||
let m=null | ||
let E=null | ||
let f=null | ||
let T=0 | ||
const P=e=>{if(3!==T){0===T&&a.writable&&a.write("HTTP/1.1 400 Bad Request\r\nconnection: close\r\n\r\n") | ||
T=3 | ||
f&&clearTimeout(f) | ||
m&&clearTimeout(m) | ||
E&&clearTimeout(E) | ||
f&&clearTimeout(f) | ||
f=null | ||
m=null | ||
E=null | ||
f=null | ||
u.queuePromise(n,n) | ||
@@ -26,4 +26,4 @@ l.queuePromise(n,n) | ||
l.clear() | ||
a.removeListener("error",g) | ||
a.removeListener("end",g) | ||
a.off("error",g) | ||
a.off("end",g) | ||
a.on("error",n) | ||
@@ -37,3 +37,3 @@ a.destroyed||a.destroy() | ||
const r=e.dataBufferLength>=3&&e.dataBuffer.slice(2,e.dataBufferLength).toString()||"" | ||
return g(t,r)}case t.DATA_TYPE_MAP.OPCODE_PING:return C(e.dataBuffer) | ||
return g(t,r)}case t.DATA_TYPE_MAP.OPCODE_PING:return L(e.dataBuffer) | ||
case t.DATA_TYPE_MAP.OPCODE_PONG:return M()}const r=(e=>{F||(F=e.dataType) | ||
@@ -50,23 +50,23 @@ _.push(e.dataBuffer) | ||
r&&i.emit(t.WEB_SOCKET_EVENT_MAP.FRAME,r) | ||
d&&L()} | ||
d&&B()} | ||
const g=(e=1e3,t="")=>{if(3!==T){if(2===T)return P() | ||
if(1!==T&&2!==T)throw new Error(`[close] error readyState = ${T}`) | ||
T=2 | ||
m=setTimeout(P,5e3) | ||
f=setTimeout(P,5e3) | ||
u.encodeCloseFrame(e,t,c) | ||
1e3===e?u.sendEncodedFrame(a).catch(P):u.sendEncodedFrame(a).then(P,P)}} | ||
const L=()=>{E&&clearTimeout(E) | ||
E=setTimeout(h,6e4)} | ||
const B=()=>{f&&clearTimeout(f) | ||
f=setTimeout(()=>g(1006,"pong timeout"),6e4)} | ||
const h=(e=o)=>{if(1===T){B() | ||
const B=()=>{m&&clearTimeout(m) | ||
m=setTimeout(C,6e4)} | ||
const h=()=>{E&&clearTimeout(E) | ||
E=setTimeout(()=>g(1006,"pong timeout"),6e4)} | ||
const C=(e=o)=>{if(1===T){h() | ||
u.encodePingFrame(e,c) | ||
return u.sendEncodedFrame(a)}} | ||
const C=(e=o)=>{if(1===T){u.encodePongFrame(e,c) | ||
const L=(e=o)=>{if(1===T){u.encodePongFrame(e,c) | ||
return u.sendEncodedFrame(a)}} | ||
const M=()=>{f&&clearTimeout(f) | ||
f=null | ||
if(d)L() | ||
else{E&&clearTimeout(E) | ||
E=null}} | ||
const M=()=>{E&&clearTimeout(E) | ||
E=null | ||
if(d)B() | ||
else{m&&clearTimeout(m) | ||
m=null}} | ||
return Object.assign({CONNECTING:0,OPEN:1,CLOSING:2,CLOSED:3},i,{socket:a,frameLengthLimit:s,sendFrameMaskType:c,getReadyState:()=>T,setReadyState:e=>{T=e},setFrameLengthLimit:e=>{u.setFrameLengthLimit(e) | ||
@@ -78,2 +78,2 @@ l.setFrameLengthLimit(e) | ||
u.encodeFrame(t.FRAME_TYPE_CONFIG_MAP.FRAME_COMPLETE,t.DATA_TYPE_MAP.OPCODE_BINARY,e,c) | ||
return u.sendEncodedFrame(a)},setNextPing:L,setNextPong:B,sendPing:h,sendPong:C})}) | ||
return u.sendEncodedFrame(a)},setNextPing:B,setNextPong:h,sendPing:C,sendPong:L})}) |
@@ -6,3 +6,3 @@ var e=require("../../common/error") | ||
const o=t=>{for(const r of Array.from(n))(0,e.catchSync)(r,t)} | ||
const c=async t=>{a() | ||
const c=async t=>{i() | ||
for(const n of Array.from(r))await(0,e.catchAsync)(n,t) | ||
@@ -12,14 +12,14 @@ o(t) | ||
let s=!1 | ||
const i=()=>{s=!0 | ||
const a=()=>{s=!0 | ||
t.forEach(({event:e,listener:t})=>process.on(e,t))} | ||
const a=()=>{s=!1 | ||
t.forEach(({event:e,listener:t})=>process.removeListener(e,t))} | ||
const i=()=>{s=!1 | ||
t.forEach(({event:e,listener:t})=>process.off(e,t))} | ||
exports.clearExitListener=(()=>{n.clear() | ||
r.clear() | ||
a()}) | ||
i()}) | ||
exports.addExitListenerSync=((...e)=>{e.forEach(e=>n.add(e)) | ||
!s&&i()}) | ||
!s&&a()}) | ||
exports.addExitListenerAsync=((...e)=>{e.forEach(e=>r.add(e)) | ||
!s&&i()}) | ||
!s&&a()}) | ||
exports.deleteExitListenerSync=((...e)=>{e.forEach(e=>n.delete(e))}) | ||
exports.deleteExitListenerAsync=((...e)=>{e.forEach(e=>r.delete(e))}) |
@@ -20,3 +20,3 @@ const rethrowError = error => { | ||
} catch (error) { | ||
resultError = error; | ||
resultError = error || new Error(); | ||
} | ||
@@ -33,3 +33,3 @@ return { | ||
} catch (error) { | ||
resultError = error; | ||
resultError = error || new Error(); | ||
} | ||
@@ -36,0 +36,0 @@ return { |
const createHub = () => { | ||
let set = new Set(); | ||
const set = new Set(); | ||
return { | ||
@@ -19,7 +19,7 @@ clear: () => set.clear(), | ||
clear: () => setMap.clear(), | ||
addListener: (type, listener) => { | ||
on: (type, listener) => { | ||
const listenerSet = setMap.get(type); | ||
listenerSet ? listenerSet.add(listener) : setMap.set(type, new Set([ listener ])); | ||
}, | ||
removeListener: (type, listener) => { | ||
off: (type, listener) => { | ||
const listenerSet = setMap.get(type); | ||
@@ -32,22 +32,17 @@ listenerSet && listenerSet.delete(listener); | ||
const createEventTarget = () => { | ||
const {setMap, clear, addListener: addEventListener, removeListener: removeEventListener} = createEventBase(); | ||
const {setMap, clear, on, off} = createEventBase(); | ||
return { | ||
clear, | ||
addEventListener, | ||
removeEventListener, | ||
dispatchEvent: event => { | ||
const listenerSet = setMap.get(event.type); | ||
listenerSet && listenerSet.forEach(listener => listener(event)); | ||
} | ||
}, | ||
addEventListener: on, | ||
removeEventListener: off | ||
}; | ||
}; | ||
const createEventEmitter = () => { | ||
const {setMap, clear, addListener, removeListener} = createEventBase(); | ||
const {setMap, clear, on, off} = createEventBase(); | ||
return { | ||
clear, | ||
addListener, | ||
removeListener, | ||
removeAllListeners: (...eventNameList) => { | ||
eventNameList.length ? eventNameList.forEach(eventName => setMap.delete(eventName)) : setMap.clear(); | ||
}, | ||
emit: (eventName, ...args) => { | ||
@@ -57,6 +52,11 @@ const listenerSet = setMap.get(eventName); | ||
}, | ||
on: addListener, | ||
off: removeListener | ||
on, | ||
off, | ||
addListener: on, | ||
removeListener: off, | ||
removeAllListeners: (...eventNameList) => { | ||
eventNameList.length ? eventNameList.forEach(eventName => setMap.delete(eventName)) : setMap.clear(); | ||
} | ||
}; | ||
}; | ||
export { createHub, createEventTarget, createEventEmitter }; |
@@ -6,3 +6,3 @@ const receiveBufferAsync = readableStream => new Promise((resolve, reject) => { | ||
readableStream.on("end", () => { | ||
readableStream.removeListener("error", reject); | ||
readableStream.off("error", reject); | ||
resolve(Buffer.concat(data)); | ||
@@ -15,3 +15,3 @@ }); | ||
writableStream.write(buffer, () => { | ||
writableStream.removeListener("error", reject); | ||
writableStream.off("error", reject); | ||
resolve(); | ||
@@ -18,0 +18,0 @@ }); |
@@ -5,3 +5,3 @@ import { Duplex } from "stream"; | ||
readableStream.on("end", () => { | ||
readableStream.removeListener("error", reject); | ||
readableStream.off("error", reject); | ||
resolve(); | ||
@@ -8,0 +8,0 @@ }); |
@@ -48,3 +48,3 @@ import { constants } from "crypto"; | ||
server.listen(option.port, option.hostname, () => { | ||
server.removeListener("error", reject); | ||
server.off("error", reject); | ||
resolve(); | ||
@@ -51,0 +51,0 @@ }); |
@@ -33,3 +33,3 @@ import { createServer, Socket } from "net"; | ||
preConnectDataList = null; | ||
socket.removeListener("data", preConnectListener); | ||
socket.off("data", preConnectListener); | ||
socket.on("data", data => targetSocket.write(data)); | ||
@@ -45,3 +45,3 @@ }); | ||
server.listen(port, hostname, () => { | ||
server.removeListener("error", reject); | ||
server.off("error", reject); | ||
resolve(); | ||
@@ -48,0 +48,0 @@ }); |
@@ -70,3 +70,3 @@ import { randomBytes } from "crypto"; | ||
const onDataSend = () => { | ||
socket.removeListener("error", reject); | ||
socket.off("error", reject); | ||
resolve(); | ||
@@ -104,3 +104,3 @@ }; | ||
const resetReceive = () => { | ||
receiveReject && socket.removeListener("error", receiveReject); | ||
receiveReject && socket.off("error", receiveReject); | ||
receiveResolve = null; | ||
@@ -139,3 +139,3 @@ receiveReject = null; | ||
resetReceive(); | ||
socket.removeListener("data", onSocketData); | ||
socket.off("data", onSocketData); | ||
}); | ||
@@ -142,0 +142,0 @@ } |
@@ -28,4 +28,4 @@ import { createEventEmitter } from "../../../common/module/Event"; | ||
frameReceiver.clear(); | ||
socket.removeListener("error", close); | ||
socket.removeListener("end", close); | ||
socket.off("error", close); | ||
socket.off("end", close); | ||
socket.on("error", NULL_ERROR_LISTENER); | ||
@@ -32,0 +32,0 @@ socket.destroyed || socket.destroy(); |
@@ -46,3 +46,3 @@ import { catchAsync, catchSync } from "../../common/error"; | ||
isBind = !1; | ||
EXIT_LISTENER_LIST.forEach(({event, listener}) => process.removeListener(event, listener)); | ||
EXIT_LISTENER_LIST.forEach(({event, listener}) => process.off(event, listener)); | ||
}; | ||
@@ -49,0 +49,0 @@ const clearExitListener = () => { |
@@ -1,1 +0,1 @@ | ||
{"name":"dr-js","version":"0.20.3","description":"A collection of strange functions","author":"dr-js","license":"MIT","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dr-js","bin":"bin/index.js","browser":"library/Dr.browser.js","engines":{"node":">=8.12","npm":">=6"},"sideEffects":false} | ||
{"name":"dr-js","version":"0.20.4-dev.0","description":"A collection of strange functions","author":"dr-js","license":"MIT","keywords":["Dr","Dr-js","JavaScript"],"repository":"github:dr-js/dr-js","bin":"bin/index.js","browser":"library/Dr.browser.js","engines":{"node":">=10.15","npm":">=6"},"sideEffects":false} |
Sorry, the diff of this file is too big to display
Deprecated
MaintenanceThe maintainer of the package marked it as deprecated. This could indicate that a single version should not be used, or that the package is no longer maintained and any new vulnerabilities will not be fixed.
Found 1 instance in 1 package
454105
1