run method
Run the piped pipeline.
Implementation
Future<void> run(PipedConfig config) async {
final input = config.inputStream ?? stdin;
final output = config.outputSink ?? stdout;
final encoding = const SystemEncoding();
if (config.lineByLine) {
await for (final chunk in input.transform(encoding.decoder)) {
for (final line in chunk.split('\n')) {
if (line.trim().isEmpty) continue;
final result = await _processChunk(line, config);
output.writeln(result);
}
}
} else {
final buffer = StringBuffer();
await for (final chunk in input.transform(encoding.decoder)) {
buffer.write(chunk);
}
final result = await _processChunk(buffer.toString(), config);
output.writeln(result);
}
await output.flush();
}