I am using a library, ya-csv, that expects either a file or a stream as input, but I have a string.
How do I convert that string into a stream in Node?
As @substack corrected me in #node, the new streams API in Node v10 makes this easier:
var s = new stream.Readable();
s._read = function noop() {}; // redundant? see update below
s.push('your text here');
s.push(null);
… after which you can freely pipe it or otherwise pass it to your intended consumer.
It's not as clean as the resumer one-liner, but it does avoid the extra dependency.
(Update: in v0.10.26, a call to push
directly from the REPL prompt will crash with a not implemented
exception if you didn't set _read
. It won't crash inside a function or a script. If inconsistency makes you nervous, include the noop
.)