classy-pay-core
Version:
Shared tools used in ClassyPay-related projects
42 lines • 1.35 kB
JavaScript
;
// tslint:disable no-console
Object.defineProperty(exports, "__esModule", { value: true });
exports.writableStream = exports.readableStream = exports.parallelTransform = void 0;
const ParallelTransform = require("parallel-transform");
const stream = require("stream");
const utils_1 = require("./utils");
const parallelTransform = (concurrency, handler) => new ParallelTransform(concurrency, {
objectMode: true,
}, async (data, callback) => {
(0, utils_1.unpromisify)(async () => await handler(data), callback);
});
exports.parallelTransform = parallelTransform;
const readableStream = (handler) => new stream.Readable({
objectMode: true,
async read() {
let value;
try {
value = await handler();
}
catch (error) {
console.error(`Error reading from stream: ${error}`);
}
if (value) {
this.push(value);
}
else {
this.destroy();
}
},
});
exports.readableStream = readableStream;
const writableStream = (handler) => new stream.Writable({
objectMode: true,
async write(chunk, encoding, callback) {
(0, utils_1.unpromisify)(async () => {
await handler(chunk);
}, callback);
},
});
exports.writableStream = writableStream;
//# sourceMappingURL=PipeHelpers.js.map