I guess you could make pipe variadic:
function pipe(val, ...funcs) {
for (let f of funcs) val = f(val);
}
EDIT: seems like I got ninja'd by an edit :)