UNPKG

1.38 kBJavaScriptView Raw
1"use strict";
2// Pending: https://stackoverflow.com/questions/68761267/capture-generic-type-of-passed-function-for-overloads-in-typescript
3// TODO: refactor "./value.ts" with this when/if resolved
4exports.__esModule = true;
5exports.overloadWithCurried = exports.curried = void 0;
6var tslib_1 = require("tslib");
7/* eslint-disable @typescript-eslint/no-explicit-any */
8function curried(fn) {
9 return function () {
10 var args = [];
11 for (var _i = 0; _i < arguments.length; _i++) {
12 args[_i] = arguments[_i];
13 }
14 return function (curried) {
15 return fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(args), false), [curried], false)), false));
16 };
17 };
18}
19exports.curried = curried;
20function overloadWithCurried(fn) {
21 return function () {
22 var args = [];
23 for (var _i = 0; _i < arguments.length; _i++) {
24 args[_i] = arguments[_i];
25 }
26 return args.length == fn.length - 1 ? function (curried) { return fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(tslib_1.__spreadArray(tslib_1.__spreadArray([], tslib_1.__read(args), false), [curried], false)), false)); } : fn.apply(void 0, tslib_1.__spreadArray([], tslib_1.__read(args), false));
27 };
28}
29exports.overloadWithCurried = overloadWithCurried;