@n1k1t/mock-server
Version:
The ultimate toolkit to intercept, transform, and simulate HTTP/WS traffic with type-safe expectations
43 lines • 1.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.RxConverter = void 0;
class RxConverter {
constructor(source) {
this.source = source;
}
iterate() {
const state = { isCompleted: false };
const errors = [];
const buffer = [];
this.source.subscribe({
complete: () => state.isCompleted = true,
error: (error) => errors.push(error),
next: (payload) => buffer.push(payload),
});
const next = async () => {
if (errors.length) {
throw errors.shift();
}
if (buffer.length) {
return { value: buffer.shift(), done: false };
}
if (state.isCompleted) {
return { value: null, done: true };
}
await new Promise((resolve, reject) => this.source.subscribe({
complete: () => resolve(),
error: (error) => reject(error),
next: () => resolve(),
}));
return next();
};
return {
[Symbol.asyncIterator]: () => ({ next })
};
}
static build(source) {
return new RxConverter(source);
}
}
exports.RxConverter = RxConverter;
//# sourceMappingURL=rx.js.map