deadem
Version:
JavaScript (Node.js & Browsers) parser for Deadlock (Valve Source 2 Engine) demo/replay files
45 lines (36 loc) • 977 B
JavaScript
import Stream from 'node:stream';
import WritableNoopStreamNode from '#core/stream/WritableNoopStream.node.js';
import DeferredPromise from '#data/DeferredPromise.js';
class PipelineNode {
/**
* @public
* @constructor
* @param {Stream.Readable} readable
* @param {Array<TransformStream>} transforms
*/
constructor(readable, transforms) {
const deferred = new DeferredPromise();
const writeNoop = new WritableNoopStreamNode();
Stream.pipeline(
readable,
...transforms,
writeNoop,
(error) => {
if (error) {
deferred.reject(error);
} else {
deferred.resolve();
}
}
);
this._deferred = deferred;
}
/**
* @public
* @returns {Promise<*>}
*/
ready() {
return this._deferred.promise;
}
}
export default PipelineNode;