-
Notifications
You must be signed in to change notification settings - Fork 445
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(docs): async await version of examples/chat (#482)
* 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
- Loading branch information
Showing
4 changed files
with
96 additions
and
153 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
'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 | ||
} |