UNPKG

wonka

Version:

A fast push & pull stream library for Reason, loosely following the [callbag spec](https://github.com/callbag/callbag)

96 lines (91 loc) 3.33 kB
'use strict'; var Block = require("bs-platform/lib/js/block.js"); var Curry = require("bs-platform/lib/js/curry.js"); function testWithListenable(operator) { var sink = /* record */[/* contents */(function (param) { return /* () */0; })]; var signals = /* array */[]; var source = function (x) { sink[0] = x; return x(/* Start */Block.__(0, [(function (signal) { signals.push(signal); return /* () */0; })])); }; var talkback = /* record */[/* contents */(function (param) { return /* () */0; })]; var res = /* array */[]; Curry._2(operator, source, (function (signal) { if (typeof signal === "number" || signal.tag) { res.push(signal); return /* () */0; } else { talkback[0] = signal[0]; return /* () */0; } })); return new Promise((function (resolve, param) { sink[0](/* Push */Block.__(1, [1])); setTimeout((function (param) { sink[0](/* Push */Block.__(1, [2])); setTimeout((function (param) { sink[0](/* End */0); setTimeout((function (param) { return resolve(/* tuple */[ signals, res ]); }), 0); return /* () */0; }), 0); return /* () */0; }), 0); return /* () */0; })); } function testTalkbackEnd(operator) { var sink = /* record */[/* contents */(function (param) { return /* () */0; })]; var signals = /* array */[]; var source = function (x) { x(/* Start */Block.__(0, [(function (signal) { signals.push(signal); return /* () */0; })])); sink[0] = x; return /* () */0; }; var talkback = /* record */[/* contents */(function (param) { return /* () */0; })]; var res = /* array */[]; Curry._2(operator, source, (function (signal) { if (typeof signal === "number" || signal.tag) { res.push(signal); return /* () */0; } else { talkback[0] = signal[0]; return /* () */0; } })); return new Promise((function (resolve, param) { sink[0](/* Push */Block.__(1, [1])); setTimeout((function (param) { talkback[0](/* Close */1); setTimeout((function (param) { return resolve(/* tuple */[ signals, res ]); }), 0); return /* () */0; }), 0); return /* () */0; })); } exports.testWithListenable = testWithListenable; exports.testTalkbackEnd = testTalkbackEnd; /* No side effect */