mirror of
https://github.com/xibyte/jsketcher
synced 2025-12-12 03:13:24 +01:00
32 lines
679 B
JavaScript
32 lines
679 B
JavaScript
export class StreamBase {
|
|
|
|
attach(observer) {}
|
|
|
|
map(fn) {
|
|
return new MapStream(this, fn);
|
|
}
|
|
|
|
filter(predicate) {
|
|
return new FilterStream(this, predicate);
|
|
}
|
|
|
|
pairwise(first) {
|
|
return new PairwiseStream(this, first);
|
|
}
|
|
|
|
scan(initAccumulator) {
|
|
return new ScanStream(this, initAccumulator);
|
|
}
|
|
|
|
remember() {
|
|
let stateStream = new StateStream(undefined);
|
|
this.attach(v => stateStream.next(v));
|
|
return stateStream;
|
|
}
|
|
}
|
|
|
|
const {MapStream} = require('./map');
|
|
const {FilterStream} = require('./filter');
|
|
const {StateStream} = require('./state');
|
|
const {PairwiseStream} = require('./pairwise');
|
|
const {ScanStream} = require('./scan');
|