|
'use strict'; |
|
|
|
|
|
|
|
|
|
const knownProperties = [ |
|
'aborted', |
|
'complete', |
|
'destroy', |
|
'headers', |
|
'httpVersion', |
|
'httpVersionMinor', |
|
'httpVersionMajor', |
|
'method', |
|
'rawHeaders', |
|
'rawTrailers', |
|
'setTimeout', |
|
'socket', |
|
'statusCode', |
|
'statusMessage', |
|
'trailers', |
|
'url' |
|
]; |
|
|
|
module.exports = (fromStream, toStream) => { |
|
const fromProperties = new Set(Object.keys(fromStream).concat(knownProperties)); |
|
|
|
for (const property of fromProperties) { |
|
|
|
if (property in toStream) { |
|
continue; |
|
} |
|
|
|
toStream[property] = typeof fromStream[property] === 'function' ? fromStream[property].bind(fromStream) : fromStream[property]; |
|
} |
|
|
|
return toStream; |
|
}; |
|
|