字符串变量到stdin接口

时间:2013-11-09 16:08:23

标签: node.js

我想使用此功能的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"); }

2 个答案:

答案 0 :(得分:2)

使用Grasp 0.2.0,您现在可以在将Grasp用作库时使用新的input选项,或使用两个新辅助函数之一:grasp.searchgrasp.replace。这将允许您在不必创建假StdIn的情况下执行您想要的操作。

文档:http://graspjs.com/docs/lib/

答案 1 :(得分:1)

process.stdinReadable 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();