https://github.com/serapath/mitm-stream
creates a connected replacement for an original duplex stream and gives access to two transforms to intercept messages
https://github.com/serapath/mitm-stream
Last synced: about 1 year ago
JSON representation
creates a connected replacement for an original duplex stream and gives access to two transforms to intercept messages
- Host: GitHub
- URL: https://github.com/serapath/mitm-stream
- Owner: serapath
- License: mit
- Created: 2017-01-26T16:43:52.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-27T13:07:00.000Z (over 9 years ago)
- Last Synced: 2024-11-25T09:18:13.043Z (over 1 year ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/mitm-stream
- Size: 3.91 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mitm-stream
creates a connected replacement for an original duplex stream and gives access to two transforms to intercept messages
# usage
`npm install mitm-stream`
```js
var through2 = require('through2')
var duplexify = require('duplexify')
var opts = { objectMode: true }
var in$ = through2(opts, function (chunk, encoding, next) { this.push(chunk); next() })
var out$ = through2(opts, function (chunk, encoding, next) { this.push(chunk); next() })
var remoteOriginal = duplexify(in$, out$, opts)
remoteOriginal.write('ping')
remoteOriginal.on('data', function (data) { console.log('O',data) })
//----------------------------------------------------------
// GIVEN:
var original = duplexify(out$, in$, opts)
var mitm = require('./')
var replacement = mitm(original, function (original2replacement, replacement2original) {
original2replacement._transform = function (chunk, encoding, next) {
next(null, chunk.toUpperCase())
}
original2replacement.on('data', function (data) { // data from original
console.log(`[MITM] ${data} [from original]`)
})
original2replacement.write('pingpong [BY MITM]') // data to replacement
replacement2original._transform = function (chunk, encoding, next) {
next(null, chunk.toUpperCase())
}
replacement2original.on('data', function (data) { // data from replacement
console.log(`[MITM] ${data} [from replacement]`)
})
replacement2original.write('pongping [BY MITM]') // data to original
})
replacement.write('pong')
replacement.on('data', function (data) { console.log('R',data) })
```