UNPKG

dts-element-fp

Version:

typescript definition generator for functional programming

40 lines (39 loc) 1.98 kB
"use strict"; exports.__esModule = true; var dts = require("dts-element"); var constants_1 = require("./constants"); function create_selectable_signatures(signatures, options) { // istanbul ignore next var group = options.group, is_placeholder = options.is_placeholder, _a = options.get_selectable_kind_name, get_selectable_kind_name = _a === void 0 ? constants_1.get_function_selectable_kind_name_default : _a, _b = options.get_selectable_selector_name, get_selectable_selector_name = _b === void 0 ? constants_1.get_function_selectable_selector_name_default : _b; return signatures.map(function (signature) { var function_type = signature.owned.type; // istanbul ignore next var _a = function_type.parameters, parameters = _a === void 0 ? [] : _a; var selectable_type = parameters .map(function (parameter) { return (is_placeholder(parameter.type) ? '0' : '1'); }) .join(''); return dts.create_object_member({ owned: dts.create_function_declaration({ name: undefined, type: dts.create_function_type({ parameters: [], generics: [ dts.create_generic_declaration({ name: get_selectable_selector_name(), "extends": dts.create_literal_type({ value: selectable_type }) }) ].concat((group === undefined ? [] : [ dts.create_generic_declaration({ name: get_selectable_kind_name(), "extends": dts.create_literal_type({ value: group }) }), ])), "return": function_type }) }) }); }); } exports.create_selectable_signatures = create_selectable_signatures;