You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
3 years ago
|
"use strict";
|
||
|
|
||
|
const Promise = require("bluebird");
|
||
|
const fs = require("fs");
|
||
|
const through2 = require("through2");
|
||
|
const fromNodeStream = require("./");
|
||
|
const pipe = require("@ppstreams/pipe");
|
||
|
const collect = require("@ppstreams/collect");
|
||
|
const rangeNumbers = require("@ppstreams/range-numbers");
|
||
|
const bufferedMap = require("@ppstreams/buffered-map");
|
||
|
const map = require("@ppstreams/map");
|
||
|
|
||
|
let transform = through2.obj((chunk, encoding, callback) => {
|
||
|
callback(null, chunk + 5);
|
||
|
});
|
||
|
|
||
|
return Promise.try(() => {
|
||
|
return pipe([
|
||
|
rangeNumbers(0, 10),
|
||
|
fromNodeStream(transform),
|
||
|
collect()
|
||
|
]).read();
|
||
|
}).then((result) => {
|
||
|
console.log("transform result:", result);
|
||
|
|
||
|
return pipe([
|
||
|
fromNodeStream(fs.createReadStream("example.js", { encoding: "utf8" })),
|
||
|
bufferedMap((line) => line.split("\n")),
|
||
|
collect()
|
||
|
]).read();
|
||
|
}).then((result) => {
|
||
|
console.log("read result:", result);
|
||
|
|
||
|
return pipe([
|
||
|
rangeNumbers(0, 10),
|
||
|
map((line) => String(line) + "\n"),
|
||
|
fromNodeStream(fs.createWriteStream("numbers.txt", { encoding: "utf8" }))
|
||
|
]).read();
|
||
|
}).then((result) => {
|
||
|
console.log("write result:", result);
|
||
|
console.log("numbers.txt contents:");
|
||
|
console.log(fs.readFileSync("numbers.txt", { encoding: "utf8" }));
|
||
|
});
|