mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-05-20 22:31:18 +00:00
* fix: performance bottleneck in stat.js (#463) Array.shift seems to be very slow, perhaps linear, on some engines, resulting in _update consuming a lot of CPU. * docs(fix): correct docs and example for pnet (#464) * docs(fix): correct docs and example for pnet * docs(fix): correct pnet docs * docs(fix): update README.md language (#468) * docs: reciprocate (#474) * docs(example): fix ipfs cat (#475) `ipfs.files.cat` is incorrect. the correct function is `ipfs.cat` * fix: async-await example chat * fix: move handler before start * fix: examples readme typos (#481) * fix: simplify libp2p bundle for echo example * chore: remove unused vars
41 lines
906 B
JavaScript
41 lines
906 B
JavaScript
'use strict'
|
|
/* eslint-disable no-console */
|
|
|
|
const pipe = require('it-pipe')
|
|
const lp = require('it-length-prefixed')
|
|
|
|
function stdinToStream(stream) {
|
|
// Read utf-8 from stdin
|
|
process.stdin.setEncoding('utf8')
|
|
pipe(
|
|
// Read from stdin (the source)
|
|
process.stdin,
|
|
// Encode with length prefix (so receiving side knows how much data is coming)
|
|
lp.encode(),
|
|
// Write to the stream (the sink)
|
|
stream.sink
|
|
)
|
|
}
|
|
|
|
function streamToConsole(stream) {
|
|
pipe(
|
|
// Read from the stream (the source)
|
|
stream.source,
|
|
// Decode length-prefixed data
|
|
lp.decode(),
|
|
// Sink function
|
|
async function (source) {
|
|
// For each chunk of data
|
|
for await (const msg of source) {
|
|
// Output the data as a utf8 string
|
|
console.log('> ' + msg.toString('utf8').replace('\n', ''))
|
|
}
|
|
}
|
|
)
|
|
}
|
|
|
|
module.exports = {
|
|
stdinToStream,
|
|
streamToConsole
|
|
}
|