mirror of
https://github.com/swc-project/swc.git
synced 2024-12-26 15:12:08 +03:00
bbaf619f63
swc_bundler: - [x] Fix wrapped esms. (denoland/deno#9307) - [x] Make test secure.
53 lines
1.8 KiB
TypeScript
53 lines
1.8 KiB
TypeScript
// Loaded from https://deno.land/x/ramda@v0.27.2/source/internal/_curry3.js
|
|
|
|
|
|
import _curry1 from './_curry1.js';
|
|
import _curry2 from './_curry2.js';
|
|
import _isPlaceholder from './_isPlaceholder.js';
|
|
|
|
|
|
/**
|
|
* Optimized internal three-arity curry function.
|
|
*
|
|
* @private
|
|
* @category Function
|
|
* @param {Function} fn The function to curry.
|
|
* @return {Function} The curried function.
|
|
*/
|
|
export default function _curry3(fn) {
|
|
return function f3(a, b, c) {
|
|
switch (arguments.length) {
|
|
case 0:
|
|
return f3;
|
|
case 1:
|
|
return _isPlaceholder(a)
|
|
? f3
|
|
: _curry2(function(_b, _c) { return fn(a, _b, _c); });
|
|
case 2:
|
|
return _isPlaceholder(a) && _isPlaceholder(b)
|
|
? f3
|
|
: _isPlaceholder(a)
|
|
? _curry2(function(_a, _c) { return fn(_a, b, _c); })
|
|
: _isPlaceholder(b)
|
|
? _curry2(function(_b, _c) { return fn(a, _b, _c); })
|
|
: _curry1(function(_c) { return fn(a, b, _c); });
|
|
default:
|
|
return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c)
|
|
? f3
|
|
: _isPlaceholder(a) && _isPlaceholder(b)
|
|
? _curry2(function(_a, _b) { return fn(_a, _b, c); })
|
|
: _isPlaceholder(a) && _isPlaceholder(c)
|
|
? _curry2(function(_a, _c) { return fn(_a, b, _c); })
|
|
: _isPlaceholder(b) && _isPlaceholder(c)
|
|
? _curry2(function(_b, _c) { return fn(a, _b, _c); })
|
|
: _isPlaceholder(a)
|
|
? _curry1(function(_a) { return fn(_a, b, c); })
|
|
: _isPlaceholder(b)
|
|
? _curry1(function(_b) { return fn(a, _b, c); })
|
|
: _isPlaceholder(c)
|
|
? _curry1(function(_c) { return fn(a, b, _c); })
|
|
: fn(a, b, c);
|
|
}
|
|
};
|
|
}
|