exthos
Version:
stream processing in nodejs using the power of golang
100 lines • 5.46 kB
JavaScript
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _Route_instances, _Route_inputBroker, _Route_outputBroker, _Route_engine, _Route_stream, _Route_processors, _Route_toStreamConfig;
import { Stream } from "../stream/stream.js";
import { proxyPromise } from "../utils/utils.js";
let from = proxyPromise(async function (engine, ...inputs) {
let r = new Route(engine, ...inputs);
return r;
});
class Route {
constructor(engine, ...inputs) {
_Route_instances.add(this);
_Route_inputBroker.set(this, {
broker: {
inputs: [],
},
});
_Route_outputBroker.set(this, {
broker: {
outputs: [],
},
});
_Route_engine.set(this, void 0);
_Route_stream.set(this, void 0);
_Route_processors.set(this, []);
this.batchInput = proxyPromise(async function (batching) {
let self = this;
__classPrivateFieldGet(self, _Route_inputBroker, "f").broker.batching = Object.assign(Object.assign({}, __classPrivateFieldGet(self, _Route_inputBroker, "f").broker.batching), batching);
return self;
});
this.batchOutput = proxyPromise(async function (batching) {
let self = this;
__classPrivateFieldGet(self, _Route_outputBroker, "f").broker.batching = Object.assign(Object.assign({}, __classPrivateFieldGet(self, _Route_outputBroker, "f").broker.batching), batching);
return self;
});
this.to = proxyPromise(async function (...outputs) {
let self = this;
__classPrivateFieldGet(self, _Route_outputBroker, "f").broker.outputs = outputs;
return self;
});
this._via = proxyPromise(async function (...processors) {
let self = this;
__classPrivateFieldGet(self, _Route_processors, "f").push(...processors);
return self;
});
this.start = proxyPromise(async function () {
let self = this;
__classPrivateFieldSet(self, _Route_stream, __classPrivateFieldGet(self, _Route_stream, "f") || new Stream(__classPrivateFieldGet(self, _Route_instances, "m", _Route_toStreamConfig).call(self)), "f");
await __classPrivateFieldGet(self, _Route_engine, "f").start();
await __classPrivateFieldGet(self, _Route_engine, "f").add(__classPrivateFieldGet(self, _Route_stream, "f"));
return self;
});
this.startAfter = proxyPromise(async function (ms) {
let self = this;
await new Promise((r) => {
setTimeout(r, ms);
});
__classPrivateFieldSet(self, _Route_stream, __classPrivateFieldGet(self, _Route_stream, "f") || new Stream(__classPrivateFieldGet(self, _Route_instances, "m", _Route_toStreamConfig).call(self)), "f");
await __classPrivateFieldGet(self, _Route_engine, "f").start();
await __classPrivateFieldGet(self, _Route_engine, "f").add(__classPrivateFieldGet(self, _Route_stream, "f"));
return self;
});
this.stop = proxyPromise(async function () {
let self = this;
await __classPrivateFieldGet(self, _Route_engine, "f").remove.bind(__classPrivateFieldGet(self, _Route_engine, "f"))(__classPrivateFieldGet(self, _Route_stream, "f"));
return self;
});
this.stopAfter = proxyPromise(async function (ms) {
let self = this;
await new Promise((r) => {
setTimeout(r, ms);
});
await self.stop();
return self;
});
__classPrivateFieldSet(this, _Route_engine, engine, "f");
__classPrivateFieldGet(this, _Route_inputBroker, "f").broker.inputs = inputs;
}
}
_Route_inputBroker = new WeakMap(), _Route_outputBroker = new WeakMap(), _Route_engine = new WeakMap(), _Route_stream = new WeakMap(), _Route_processors = new WeakMap(), _Route_instances = new WeakSet(), _Route_toStreamConfig = function _Route_toStreamConfig() {
let self = this;
return {
input: __classPrivateFieldGet(self, _Route_inputBroker, "f"),
pipeline: {
processors: __classPrivateFieldGet(self, _Route_processors, "f"),
},
output: __classPrivateFieldGet(self, _Route_outputBroker, "f"),
};
};
export { from, Route };
//# sourceMappingURL=route.js.map