| var _curry1 = |
| /*#__PURE__*/ |
| require("./internal/_curry1"); |
| |
| var constructN = |
| /*#__PURE__*/ |
| require("./constructN"); |
| /** |
| * Wraps a constructor function inside a curried function that can be called |
| * with the same arguments and returns the same type. |
| * |
| * @func |
| * @memberOf R |
| * @since v0.1.0 |
| * @category Function |
| * @sig (* -> {*}) -> (* -> {*}) |
| * @param {Function} fn The constructor function to wrap. |
| * @return {Function} A wrapped, curried constructor function. |
| * @see R.invoker |
| * @example |
| * |
| * // Constructor function |
| * function Animal(kind) { |
| * this.kind = kind; |
| * }; |
| * Animal.prototype.sighting = function() { |
| * return "It's a " + this.kind + "!"; |
| * } |
| * |
| * const AnimalConstructor = R.construct(Animal) |
| * |
| * // Notice we no longer need the 'new' keyword: |
| * AnimalConstructor('Pig'); //=> {"kind": "Pig", "sighting": function (){...}}; |
| * |
| * const animalTypes = ["Lion", "Tiger", "Bear"]; |
| * const animalSighting = R.invoker(0, 'sighting'); |
| * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor); |
| * R.map(sightNewAnimal, animalTypes); //=> ["It's a Lion!", "It's a Tiger!", "It's a Bear!"] |
| */ |
| |
| |
| var construct = |
| /*#__PURE__*/ |
| _curry1(function construct(Fn) { |
| return constructN(Fn.length, Fn); |
| }); |
| |
| module.exports = construct; |