dts-element-fp
Version:
typescript definition generator for functional programming
25 lines (24 loc) • 1.22 kB
JavaScript
;
exports.__esModule = true;
var R = require("ramda");
function push_signatures(is_placeholder, rest_parameters, rest_placeholders, callback,
// for internal recursive
used_parameters, return_parameters) {
if (used_parameters === void 0) {
// for internal recursive
used_parameters = []; }
if (return_parameters === void 0) { return_parameters = rest_parameters; }
if (rest_parameters.length > 0) {
var next_rest_parameters = rest_parameters.slice(1);
var next_rest_placeholders = rest_placeholders.slice(1);
push_signatures(is_placeholder, next_rest_parameters, next_rest_placeholders, callback, R.append(R.head(rest_parameters), used_parameters), return_parameters.filter(R.complement(R.equals(R.head(rest_parameters)))));
if (rest_placeholders.length > 0) {
push_signatures(is_placeholder, next_rest_parameters, next_rest_placeholders, callback, R.append(R.head(rest_placeholders), used_parameters), return_parameters);
}
}
if (used_parameters.length > 0 &&
!is_placeholder(R.last(used_parameters).type)) {
callback(used_parameters, return_parameters);
}
}
exports.push_signatures = push_signatures;