0

stdinこの関数のパラメーターを使用したいと思います: http://graspjs.com/docs/lib/

このgrasp関数は、このパラメーターが と同じインターフェイスを持つオブジェクトであると想定していますprocess.stdin。そして、私が持っているのは、文字列型のメモリ内の単純な変数です。

この変数をこの関数の stdin 入力に与えるにはどうすればよいですか?

var grasp = require('grasp');
var sourceCode = 'if (condititon) { console.log("In the condition"); }';

grasp({
    args: '--equery condititon --replace true',
    stdin: SomethingLikeStringToStdin(sourceCode),
    callback: console.log 
});

予想されるログ:

if (true) { console.log("In the condition"); }
4

2 に答える 2

2

Grasp 0.2.0 では、Grasp をinputライブラリとして使用するときに新しいオプションを使用するか、2 つの新しいヘルパー関数のいずれかを使用できるようになりました:grasp.searchgrasp.replace. これにより、偽の StdIn を作成しなくても、やりたいことを実行できます。

ドキュメント: http://graspjs.com/docs/lib/

于 2013-12-18T00:33:25.907 に答える
1

process.stdinですReadable Streamgrasp期待されるのは、データを読み取ることができるストリームです。この動作をシミュレートするには、ストリームを使用できますPassThrough。これは、読み取り可能なストリームと同様に、バッファの文字列を書き込むことができ、このデータを出力するストリームです。

使用例を次に示します。

var stream = require('stream');
var passthrough = new stream.PassThrough();

grasp({ stdin: passthrough });
passthrough.push('some data');
passthrough.push('some other data');
passthrough.end();
于 2013-11-09T16:19:34.470 に答える