UNPKG

dts-element-fp

Version:

typescript definition generator for functional programming

25 lines (24 loc) 1.22 kB
"use strict"; 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;