UNPKG

@basic-streams/take-until

Version:
44 lines (43 loc) 1.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function noop() { } function takeUntil(controller, stream) { return function (cb) { var state = { cb: cb }; function stop() { if (state !== null) { var controllerDisposer_1 = state.controllerDisposer, sourceDisposer = state.sourceDisposer; state = null; if (controllerDisposer_1) { controllerDisposer_1(); } if (sourceDisposer) { sourceDisposer(); } } } function onEvent(x) { if (state !== null) { var cb_1 = state.cb; cb_1(x); } } var controllerDisposer = controller(stop); if (state === null) { controllerDisposer(); stream(noop)(); } else { state.controllerDisposer = controllerDisposer; var sourceDisposer = stream(onEvent); if (state === null) { sourceDisposer(); } else { state.sourceDisposer = sourceDisposer; } } return stop; }; } exports.default = takeUntil;