-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
40 lines (40 loc) · 1.13 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
var flyd, ref$, isPostiveNumber, inform, wait, main, validateInput, curriedValidateInput;
flyd = require("flyd");
ref$ = require("./utils.js"), isPostiveNumber = ref$.isPostiveNumber, inform = ref$.inform;
wait = function(t, f){
return setTimeout(f, t);
};
main = function(time, input){
var x$, local;
x$ = local = {};
x$.vals = [];
x$.waiting = false;
return flyd.combine(function(input, self){
local.vals.push(input());
if (!local.waiting) {
local.waiting = true;
wait(time, function(){
local.waiting = false;
self(local.vals);
return local.vals = [];
});
}
}, [input]);
};
validateInput = function(time, stream){
var ref$, isCorrect, data;
if (!flyd.isStream(stream)) {
inform.notFlydStream();
return null;
}
ref$ = isPostiveNumber(time), isCorrect = ref$[0], data = ref$[1];
if (!isCorrect) {
inform.invalidValueForTime(data);
return null;
}
return main(time, stream);
};
curriedValidateInput = flyd.curryN(2, validateInput);
curriedValidateInput['default'] = curriedValidateInput;
curriedValidateInput.esModule = true;
module.exports = curriedValidateInput;