rubico 2.8.0 → 2.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +5 -17
- package/README.md +1 -1
- package/_internal/curryArity.js +21 -1
- package/_internal/funcApply2.js +18 -0
- package/curry.js +38 -11
- package/dist/Transducer.es.js +1 -1
- package/dist/Transducer.es.min.js +1 -1
- package/dist/Transducer.js +1 -1
- package/dist/Transducer.min.js +1 -1
- package/dist/Transducer.mjs +1 -1
- package/dist/__.es.js +1 -1
- package/dist/__.es.min.js +1 -1
- package/dist/__.js +1 -1
- package/dist/__.min.js +1 -1
- package/dist/__.mjs +1 -1
- package/dist/all.es.js +1 -1
- package/dist/all.es.min.js +1 -1
- package/dist/all.js +1 -1
- package/dist/all.min.js +1 -1
- package/dist/all.mjs +1 -1
- package/dist/always.es.js +1 -1
- package/dist/always.es.min.js +1 -1
- package/dist/always.js +1 -1
- package/dist/always.min.js +1 -1
- package/dist/always.mjs +1 -1
- package/dist/and.es.js +1 -1
- package/dist/and.es.min.js +1 -1
- package/dist/and.js +1 -1
- package/dist/and.min.js +1 -1
- package/dist/and.mjs +1 -1
- package/dist/assign.es.js +1 -1
- package/dist/assign.es.min.js +1 -1
- package/dist/assign.js +1 -1
- package/dist/assign.min.js +1 -1
- package/dist/assign.mjs +1 -1
- package/dist/compose.es.js +1 -1
- package/dist/compose.es.min.js +1 -1
- package/dist/compose.js +1 -1
- package/dist/compose.min.js +1 -1
- package/dist/compose.mjs +1 -1
- package/dist/curry.es.js +132 -3
- package/dist/curry.es.min.js +2 -2
- package/dist/curry.js +132 -3
- package/dist/curry.min.js +2 -2
- package/dist/curry.mjs +132 -3
- package/dist/eq.es.js +1 -1
- package/dist/eq.es.min.js +1 -1
- package/dist/eq.js +1 -1
- package/dist/eq.min.js +1 -1
- package/dist/eq.mjs +1 -1
- package/dist/every.es.js +1 -1
- package/dist/every.es.min.js +1 -1
- package/dist/every.js +1 -1
- package/dist/every.min.js +1 -1
- package/dist/every.mjs +1 -1
- package/dist/filter.es.js +1 -1
- package/dist/filter.es.min.js +1 -1
- package/dist/filter.js +1 -1
- package/dist/filter.min.js +1 -1
- package/dist/filter.mjs +1 -1
- package/dist/flatMap.es.js +1 -1
- package/dist/flatMap.es.min.js +1 -1
- package/dist/flatMap.js +1 -1
- package/dist/flatMap.min.js +1 -1
- package/dist/flatMap.mjs +1 -1
- package/dist/forEach.es.js +1 -1
- package/dist/forEach.es.min.js +1 -1
- package/dist/forEach.js +1 -1
- package/dist/forEach.min.js +1 -1
- package/dist/forEach.mjs +1 -1
- package/dist/get.es.js +1 -1
- package/dist/get.es.min.js +1 -1
- package/dist/get.js +1 -1
- package/dist/get.min.js +1 -1
- package/dist/get.mjs +1 -1
- package/dist/gt.es.js +1 -1
- package/dist/gt.es.min.js +1 -1
- package/dist/gt.js +1 -1
- package/dist/gt.min.js +1 -1
- package/dist/gt.mjs +1 -1
- package/dist/gte.es.js +1 -1
- package/dist/gte.es.min.js +1 -1
- package/dist/gte.js +1 -1
- package/dist/gte.min.js +1 -1
- package/dist/gte.mjs +1 -1
- package/dist/lt.es.js +1 -1
- package/dist/lt.es.min.js +1 -1
- package/dist/lt.js +1 -1
- package/dist/lt.min.js +1 -1
- package/dist/lt.mjs +1 -1
- package/dist/lte.es.js +1 -1
- package/dist/lte.es.min.js +1 -1
- package/dist/lte.js +1 -1
- package/dist/lte.min.js +1 -1
- package/dist/lte.mjs +1 -1
- package/dist/map.es.js +41 -2
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +41 -2
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +41 -2
- package/dist/not.es.js +1 -1
- package/dist/not.es.min.js +1 -1
- package/dist/not.js +1 -1
- package/dist/not.min.js +1 -1
- package/dist/not.mjs +1 -1
- package/dist/omit.es.js +1 -1
- package/dist/omit.es.min.js +1 -1
- package/dist/omit.js +1 -1
- package/dist/omit.min.js +1 -1
- package/dist/omit.mjs +1 -1
- package/dist/or.es.js +1 -1
- package/dist/or.es.min.js +1 -1
- package/dist/or.js +1 -1
- package/dist/or.min.js +1 -1
- package/dist/or.mjs +1 -1
- package/dist/pick.es.js +1 -1
- package/dist/pick.es.min.js +1 -1
- package/dist/pick.js +1 -1
- package/dist/pick.min.js +1 -1
- package/dist/pick.mjs +1 -1
- package/dist/pipe.es.js +1 -1
- package/dist/pipe.es.min.js +1 -1
- package/dist/pipe.js +1 -1
- package/dist/pipe.min.js +1 -1
- package/dist/pipe.mjs +1 -1
- package/dist/reduce.es.js +1 -1
- package/dist/reduce.es.min.js +1 -1
- package/dist/reduce.js +1 -1
- package/dist/reduce.min.js +1 -1
- package/dist/reduce.mjs +1 -1
- package/dist/rubico.es.js +47 -6
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +47 -6
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +47 -6
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +47 -6
- package/dist/set.es.js +1 -1
- package/dist/set.es.min.js +1 -1
- package/dist/set.js +1 -1
- package/dist/set.min.js +1 -1
- package/dist/set.mjs +1 -1
- package/dist/some.es.js +1 -1
- package/dist/some.es.min.js +1 -1
- package/dist/some.js +1 -1
- package/dist/some.min.js +1 -1
- package/dist/some.mjs +1 -1
- package/dist/switchCase.es.js +1 -1
- package/dist/switchCase.es.min.js +1 -1
- package/dist/switchCase.js +1 -1
- package/dist/switchCase.min.js +1 -1
- package/dist/switchCase.mjs +1 -1
- package/dist/tap.es.js +1 -1
- package/dist/tap.es.min.js +1 -1
- package/dist/tap.js +1 -1
- package/dist/tap.min.js +1 -1
- package/dist/tap.mjs +1 -1
- package/dist/thunkify.es.js +41 -17
- package/dist/thunkify.es.min.js +2 -2
- package/dist/thunkify.js +41 -17
- package/dist/thunkify.min.js +2 -2
- package/dist/thunkify.mjs +41 -17
- package/dist/transform.es.js +1 -1
- package/dist/transform.es.min.js +1 -1
- package/dist/transform.js +1 -1
- package/dist/transform.min.js +1 -1
- package/dist/transform.mjs +1 -1
- package/dist/tryCatch.es.js +1 -1
- package/dist/tryCatch.es.min.js +1 -1
- package/dist/tryCatch.js +1 -1
- package/dist/tryCatch.min.js +1 -1
- package/dist/tryCatch.mjs +1 -1
- package/dist/x/append.es.js +1 -1
- package/dist/x/append.es.min.js +1 -1
- package/dist/x/append.js +1 -1
- package/dist/x/append.min.js +1 -1
- package/dist/x/append.mjs +1 -1
- package/dist/x/callProp.es.js +1 -1
- package/dist/x/callProp.es.min.js +1 -1
- package/dist/x/callProp.js +1 -1
- package/dist/x/callProp.min.js +1 -1
- package/dist/x/callProp.mjs +1 -1
- package/dist/x/defaultsDeep.es.js +1 -1
- package/dist/x/defaultsDeep.es.min.js +1 -1
- package/dist/x/defaultsDeep.js +1 -1
- package/dist/x/defaultsDeep.min.js +1 -1
- package/dist/x/defaultsDeep.mjs +1 -1
- package/dist/x/differenceWith.es.js +1 -1
- package/dist/x/differenceWith.es.min.js +1 -1
- package/dist/x/differenceWith.js +1 -1
- package/dist/x/differenceWith.min.js +1 -1
- package/dist/x/differenceWith.mjs +1 -1
- package/dist/x/filterOut.es.js +1 -1
- package/dist/x/filterOut.es.min.js +1 -1
- package/dist/x/filterOut.js +1 -1
- package/dist/x/filterOut.min.js +1 -1
- package/dist/x/filterOut.mjs +1 -1
- package/dist/x/find.es.js +1 -1
- package/dist/x/find.es.min.js +1 -1
- package/dist/x/find.js +1 -1
- package/dist/x/find.min.js +1 -1
- package/dist/x/find.mjs +1 -1
- package/dist/x/findIndex.es.js +1 -1
- package/dist/x/findIndex.es.min.js +1 -1
- package/dist/x/findIndex.js +1 -1
- package/dist/x/findIndex.min.js +1 -1
- package/dist/x/findIndex.mjs +1 -1
- package/dist/x/first.es.js +1 -1
- package/dist/x/first.es.min.js +1 -1
- package/dist/x/first.js +1 -1
- package/dist/x/first.min.js +1 -1
- package/dist/x/first.mjs +1 -1
- package/dist/x/flatten.es.js +1 -1
- package/dist/x/flatten.es.min.js +1 -1
- package/dist/x/flatten.js +1 -1
- package/dist/x/flatten.min.js +1 -1
- package/dist/x/flatten.mjs +1 -1
- package/dist/x/groupBy.es.js +1 -1
- package/dist/x/groupBy.es.min.js +1 -1
- package/dist/x/groupBy.js +1 -1
- package/dist/x/groupBy.min.js +1 -1
- package/dist/x/groupBy.mjs +1 -1
- package/dist/x/has.es.js +1 -1
- package/dist/x/has.es.min.js +1 -1
- package/dist/x/has.js +1 -1
- package/dist/x/has.min.js +1 -1
- package/dist/x/has.mjs +1 -1
- package/dist/x/identity.es.js +1 -1
- package/dist/x/identity.es.min.js +1 -1
- package/dist/x/identity.js +1 -1
- package/dist/x/identity.min.js +1 -1
- package/dist/x/identity.mjs +1 -1
- package/dist/x/includes.es.js +1 -1
- package/dist/x/includes.es.min.js +1 -1
- package/dist/x/includes.js +1 -1
- package/dist/x/includes.min.js +1 -1
- package/dist/x/includes.mjs +1 -1
- package/dist/x/isDeepEqual.es.js +1 -1
- package/dist/x/isDeepEqual.es.min.js +1 -1
- package/dist/x/isDeepEqual.js +1 -1
- package/dist/x/isDeepEqual.min.js +1 -1
- package/dist/x/isDeepEqual.mjs +1 -1
- package/dist/x/isEmpty.es.js +1 -1
- package/dist/x/isEmpty.es.min.js +1 -1
- package/dist/x/isEmpty.js +1 -1
- package/dist/x/isEmpty.min.js +1 -1
- package/dist/x/isEmpty.mjs +1 -1
- package/dist/x/isEqual.es.js +1 -1
- package/dist/x/isEqual.es.min.js +1 -1
- package/dist/x/isEqual.js +1 -1
- package/dist/x/isEqual.min.js +1 -1
- package/dist/x/isEqual.mjs +1 -1
- package/dist/x/isFunction.es.js +1 -1
- package/dist/x/isFunction.es.min.js +1 -1
- package/dist/x/isFunction.js +1 -1
- package/dist/x/isFunction.min.js +1 -1
- package/dist/x/isFunction.mjs +1 -1
- package/dist/x/isIn.es.js +1 -1
- package/dist/x/isIn.es.min.js +1 -1
- package/dist/x/isIn.js +1 -1
- package/dist/x/isIn.min.js +1 -1
- package/dist/x/isIn.mjs +1 -1
- package/dist/x/isObject.es.js +1 -1
- package/dist/x/isObject.es.min.js +1 -1
- package/dist/x/isObject.js +1 -1
- package/dist/x/isObject.min.js +1 -1
- package/dist/x/isObject.mjs +1 -1
- package/dist/x/isString.es.js +1 -1
- package/dist/x/isString.es.min.js +1 -1
- package/dist/x/isString.js +1 -1
- package/dist/x/isString.min.js +1 -1
- package/dist/x/isString.mjs +1 -1
- package/dist/x/keys.es.js +1 -1
- package/dist/x/keys.es.min.js +1 -1
- package/dist/x/keys.js +1 -1
- package/dist/x/keys.min.js +1 -1
- package/dist/x/keys.mjs +1 -1
- package/dist/x/last.es.js +1 -1
- package/dist/x/last.es.min.js +1 -1
- package/dist/x/last.js +1 -1
- package/dist/x/last.min.js +1 -1
- package/dist/x/last.mjs +1 -1
- package/dist/x/maxBy.es.js +1 -1
- package/dist/x/maxBy.es.min.js +1 -1
- package/dist/x/maxBy.js +1 -1
- package/dist/x/maxBy.min.js +1 -1
- package/dist/x/maxBy.mjs +1 -1
- package/dist/x/noop.es.js +1 -1
- package/dist/x/noop.es.min.js +1 -1
- package/dist/x/noop.js +1 -1
- package/dist/x/noop.min.js +1 -1
- package/dist/x/noop.mjs +1 -1
- package/dist/x/pluck.es.js +41 -2
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +41 -2
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +41 -2
- package/dist/x/prepend.es.js +1 -1
- package/dist/x/prepend.es.min.js +1 -1
- package/dist/x/prepend.js +1 -1
- package/dist/x/prepend.min.js +1 -1
- package/dist/x/prepend.mjs +1 -1
- package/dist/x/size.es.js +1 -1
- package/dist/x/size.es.min.js +1 -1
- package/dist/x/size.js +1 -1
- package/dist/x/size.min.js +1 -1
- package/dist/x/size.mjs +1 -1
- package/dist/x/trace.es.js +1 -1
- package/dist/x/trace.es.min.js +1 -1
- package/dist/x/trace.js +1 -1
- package/dist/x/trace.min.js +1 -1
- package/dist/x/trace.mjs +1 -1
- package/dist/x/unionWith.es.js +1 -1
- package/dist/x/unionWith.es.min.js +1 -1
- package/dist/x/unionWith.js +1 -1
- package/dist/x/unionWith.min.js +1 -1
- package/dist/x/unionWith.mjs +1 -1
- package/dist/x/uniq.es.js +1 -1
- package/dist/x/uniq.es.min.js +1 -1
- package/dist/x/uniq.js +1 -1
- package/dist/x/uniq.min.js +1 -1
- package/dist/x/uniq.mjs +1 -1
- package/dist/x/unless.es.js +1 -1
- package/dist/x/unless.es.min.js +1 -1
- package/dist/x/unless.js +1 -1
- package/dist/x/unless.min.js +1 -1
- package/dist/x/unless.mjs +1 -1
- package/dist/x/values.es.js +1 -1
- package/dist/x/values.es.min.js +1 -1
- package/dist/x/values.js +1 -1
- package/dist/x/values.min.js +1 -1
- package/dist/x/values.mjs +1 -1
- package/dist/x/when.es.js +1 -1
- package/dist/x/when.es.min.js +1 -1
- package/dist/x/when.js +1 -1
- package/dist/x/when.min.js +1 -1
- package/dist/x/when.mjs +1 -1
- package/es.js +47 -6
- package/index.js +47 -6
- package/package.json +1 -1
- package/thunkify.js +66 -6
package/dist/x/trace.es.min.js
CHANGED
package/dist/x/trace.js
CHANGED
package/dist/x/trace.min.js
CHANGED
package/dist/x/trace.mjs
CHANGED
package/dist/x/unionWith.es.js
CHANGED
package/dist/x/unionWith.js
CHANGED
package/dist/x/unionWith.min.js
CHANGED
package/dist/x/unionWith.mjs
CHANGED
package/dist/x/uniq.es.js
CHANGED
package/dist/x/uniq.es.min.js
CHANGED
package/dist/x/uniq.js
CHANGED
package/dist/x/uniq.min.js
CHANGED
package/dist/x/uniq.mjs
CHANGED
package/dist/x/unless.es.js
CHANGED
package/dist/x/unless.es.min.js
CHANGED
package/dist/x/unless.js
CHANGED
package/dist/x/unless.min.js
CHANGED
package/dist/x/unless.mjs
CHANGED
package/dist/x/values.es.js
CHANGED
package/dist/x/values.es.min.js
CHANGED
package/dist/x/values.js
CHANGED
package/dist/x/values.min.js
CHANGED
package/dist/x/values.mjs
CHANGED
package/dist/x/when.es.js
CHANGED
package/dist/x/when.es.min.js
CHANGED
package/dist/x/when.js
CHANGED
package/dist/x/when.min.js
CHANGED
package/dist/x/when.mjs
CHANGED
package/es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.8.
|
|
2
|
+
* rubico v2.8.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2026 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -1062,6 +1062,8 @@ const objectMapPool = function (o, concurrency, f) {
|
|
|
1062
1062
|
return result
|
|
1063
1063
|
}
|
|
1064
1064
|
|
|
1065
|
+
const funcApply2 = (func, context, args) => func.apply(context, args)
|
|
1066
|
+
|
|
1065
1067
|
const _curryArity = (arity, func, context, args) => function curried(...curriedArgs) {
|
|
1066
1068
|
const argsLength = args.length,
|
|
1067
1069
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -1081,7 +1083,13 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
|
|
|
1081
1083
|
} else {
|
|
1082
1084
|
nextArgs.push(arg)
|
|
1083
1085
|
}
|
|
1086
|
+
|
|
1084
1087
|
if (nextArgs.length == arity) {
|
|
1088
|
+
if (areAnyValuesPromises(nextArgs)) {
|
|
1089
|
+
return numCurriedPlaceholders == 0
|
|
1090
|
+
? promiseAll(nextArgs).then(curry3(funcApply2, func, context, __))
|
|
1091
|
+
: promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
|
|
1092
|
+
}
|
|
1085
1093
|
return numCurriedPlaceholders == 0
|
|
1086
1094
|
? func.apply(context, nextArgs)
|
|
1087
1095
|
: curryArity(arity, func, context, nextArgs)
|
|
@@ -1094,13 +1102,22 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
|
|
|
1094
1102
|
numCurriedPlaceholders += 1
|
|
1095
1103
|
}
|
|
1096
1104
|
nextArgs.push(curriedArg)
|
|
1105
|
+
|
|
1097
1106
|
if (nextArgs.length == arity) {
|
|
1107
|
+
if (areAnyValuesPromises(nextArgs)) {
|
|
1108
|
+
return numCurriedPlaceholders == 0
|
|
1109
|
+
? promiseAll(nextArgs).then(curry3(funcApply2, func, context, __))
|
|
1110
|
+
: promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
|
|
1111
|
+
}
|
|
1098
1112
|
return numCurriedPlaceholders == 0
|
|
1099
1113
|
? func.apply(context, nextArgs)
|
|
1100
1114
|
: curryArity(arity, func, context, nextArgs)
|
|
1101
1115
|
}
|
|
1102
1116
|
}
|
|
1103
|
-
|
|
1117
|
+
|
|
1118
|
+
return areAnyValuesPromises(nextArgs)
|
|
1119
|
+
? promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
|
|
1120
|
+
: curryArity(arity, func, context, nextArgs)
|
|
1104
1121
|
}
|
|
1105
1122
|
|
|
1106
1123
|
const curryArity = function (arity, func, context, args) {
|
|
@@ -3278,20 +3295,44 @@ const omit = function (arg0, arg1) {
|
|
|
3278
3295
|
return _omit(arg0, arg1)
|
|
3279
3296
|
}
|
|
3280
3297
|
|
|
3281
|
-
|
|
3298
|
+
function _thunkifyArgs(func, context, args) {
|
|
3299
|
+
return function thunk() {
|
|
3300
|
+
return func.apply(context, args)
|
|
3301
|
+
}
|
|
3302
|
+
}
|
|
3303
|
+
|
|
3304
|
+
const thunkify = function thunkify(func, ...args) {
|
|
3282
3305
|
if (areAnyValuesPromises(args)) {
|
|
3283
|
-
return promiseAll(args).then(
|
|
3306
|
+
return promiseAll(args).then(curry3(_thunkifyArgs, func, this, __))
|
|
3284
3307
|
}
|
|
3285
|
-
return func
|
|
3308
|
+
return _thunkifyArgs(func, this, args)
|
|
3286
3309
|
}
|
|
3287
3310
|
|
|
3288
|
-
|
|
3311
|
+
thunkify.call = function thunkifyCall(func, context, ...args) {
|
|
3312
|
+
if (areAnyValuesPromises(args)) {
|
|
3313
|
+
return promiseAll(args).then(curry3(_thunkifyArgs, func, context, __))
|
|
3314
|
+
}
|
|
3315
|
+
return _thunkifyArgs(func, context, args)
|
|
3316
|
+
}
|
|
3317
|
+
|
|
3318
|
+
const curry = (func, ...args) => {
|
|
3319
|
+
if (areAnyValuesPromises(args)) {
|
|
3320
|
+
return promiseAll(args).then(curry4(curryArity, func.length, func, this, __))
|
|
3321
|
+
}
|
|
3322
|
+
return curryArity(func.length, func, this, args)
|
|
3323
|
+
}
|
|
3289
3324
|
|
|
3290
3325
|
curry.arity = function curryArity_(arity, func, ...args) {
|
|
3326
|
+
if (areAnyValuesPromises(args)) {
|
|
3327
|
+
return promiseAll(args).then(curry4(curryArity, arity, func, this, __))
|
|
3328
|
+
}
|
|
3291
3329
|
return curryArity(arity, func, this, args)
|
|
3292
3330
|
}
|
|
3293
3331
|
|
|
3294
3332
|
curry.call = function call(func, context, ...args) {
|
|
3333
|
+
if (areAnyValuesPromises(args)) {
|
|
3334
|
+
return promiseAll(args).then(curry4(curryArity, func.length, func, context, __))
|
|
3335
|
+
}
|
|
3295
3336
|
return curryArity(func.length, func, context, args)
|
|
3296
3337
|
}
|
|
3297
3338
|
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.8.
|
|
2
|
+
* rubico v2.8.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2026 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -1068,6 +1068,8 @@ const objectMapPool = function (o, concurrency, f) {
|
|
|
1068
1068
|
return result
|
|
1069
1069
|
}
|
|
1070
1070
|
|
|
1071
|
+
const funcApply2 = (func, context, args) => func.apply(context, args)
|
|
1072
|
+
|
|
1071
1073
|
const _curryArity = (arity, func, context, args) => function curried(...curriedArgs) {
|
|
1072
1074
|
const argsLength = args.length,
|
|
1073
1075
|
curriedArgsLength = curriedArgs.length,
|
|
@@ -1087,7 +1089,13 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
|
|
|
1087
1089
|
} else {
|
|
1088
1090
|
nextArgs.push(arg)
|
|
1089
1091
|
}
|
|
1092
|
+
|
|
1090
1093
|
if (nextArgs.length == arity) {
|
|
1094
|
+
if (areAnyValuesPromises(nextArgs)) {
|
|
1095
|
+
return numCurriedPlaceholders == 0
|
|
1096
|
+
? promiseAll(nextArgs).then(curry3(funcApply2, func, context, __))
|
|
1097
|
+
: promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
|
|
1098
|
+
}
|
|
1091
1099
|
return numCurriedPlaceholders == 0
|
|
1092
1100
|
? func.apply(context, nextArgs)
|
|
1093
1101
|
: curryArity(arity, func, context, nextArgs)
|
|
@@ -1100,13 +1108,22 @@ const _curryArity = (arity, func, context, args) => function curried(...curriedA
|
|
|
1100
1108
|
numCurriedPlaceholders += 1
|
|
1101
1109
|
}
|
|
1102
1110
|
nextArgs.push(curriedArg)
|
|
1111
|
+
|
|
1103
1112
|
if (nextArgs.length == arity) {
|
|
1113
|
+
if (areAnyValuesPromises(nextArgs)) {
|
|
1114
|
+
return numCurriedPlaceholders == 0
|
|
1115
|
+
? promiseAll(nextArgs).then(curry3(funcApply2, func, context, __))
|
|
1116
|
+
: promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
|
|
1117
|
+
}
|
|
1104
1118
|
return numCurriedPlaceholders == 0
|
|
1105
1119
|
? func.apply(context, nextArgs)
|
|
1106
1120
|
: curryArity(arity, func, context, nextArgs)
|
|
1107
1121
|
}
|
|
1108
1122
|
}
|
|
1109
|
-
|
|
1123
|
+
|
|
1124
|
+
return areAnyValuesPromises(nextArgs)
|
|
1125
|
+
? promiseAll(nextArgs).then(curry4(curryArity, arity, func, context, __))
|
|
1126
|
+
: curryArity(arity, func, context, nextArgs)
|
|
1110
1127
|
}
|
|
1111
1128
|
|
|
1112
1129
|
const curryArity = function (arity, func, context, args) {
|
|
@@ -3284,20 +3301,44 @@ const omit = function (arg0, arg1) {
|
|
|
3284
3301
|
return _omit(arg0, arg1)
|
|
3285
3302
|
}
|
|
3286
3303
|
|
|
3287
|
-
|
|
3304
|
+
function _thunkifyArgs(func, context, args) {
|
|
3305
|
+
return function thunk() {
|
|
3306
|
+
return func.apply(context, args)
|
|
3307
|
+
}
|
|
3308
|
+
}
|
|
3309
|
+
|
|
3310
|
+
const thunkify = function thunkify(func, ...args) {
|
|
3288
3311
|
if (areAnyValuesPromises(args)) {
|
|
3289
|
-
return promiseAll(args).then(
|
|
3312
|
+
return promiseAll(args).then(curry3(_thunkifyArgs, func, this, __))
|
|
3290
3313
|
}
|
|
3291
|
-
return func
|
|
3314
|
+
return _thunkifyArgs(func, this, args)
|
|
3292
3315
|
}
|
|
3293
3316
|
|
|
3294
|
-
|
|
3317
|
+
thunkify.call = function thunkifyCall(func, context, ...args) {
|
|
3318
|
+
if (areAnyValuesPromises(args)) {
|
|
3319
|
+
return promiseAll(args).then(curry3(_thunkifyArgs, func, context, __))
|
|
3320
|
+
}
|
|
3321
|
+
return _thunkifyArgs(func, context, args)
|
|
3322
|
+
}
|
|
3323
|
+
|
|
3324
|
+
const curry = (func, ...args) => {
|
|
3325
|
+
if (areAnyValuesPromises(args)) {
|
|
3326
|
+
return promiseAll(args).then(curry4(curryArity, func.length, func, this, __))
|
|
3327
|
+
}
|
|
3328
|
+
return curryArity(func.length, func, this, args)
|
|
3329
|
+
}
|
|
3295
3330
|
|
|
3296
3331
|
curry.arity = function curryArity_(arity, func, ...args) {
|
|
3332
|
+
if (areAnyValuesPromises(args)) {
|
|
3333
|
+
return promiseAll(args).then(curry4(curryArity, arity, func, this, __))
|
|
3334
|
+
}
|
|
3297
3335
|
return curryArity(arity, func, this, args)
|
|
3298
3336
|
}
|
|
3299
3337
|
|
|
3300
3338
|
curry.call = function call(func, context, ...args) {
|
|
3339
|
+
if (areAnyValuesPromises(args)) {
|
|
3340
|
+
return promiseAll(args).then(curry4(curryArity, func.length, func, context, __))
|
|
3341
|
+
}
|
|
3301
3342
|
return curryArity(func.length, func, context, args)
|
|
3302
3343
|
}
|
|
3303
3344
|
|
package/package.json
CHANGED
package/thunkify.js
CHANGED
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
const areAnyValuesPromises = require('./_internal/areAnyValuesPromises')
|
|
2
2
|
const promiseAll = require('./_internal/promiseAll')
|
|
3
|
-
const
|
|
3
|
+
const curry3 = require('./_internal/curry3')
|
|
4
4
|
const __ = require('./_internal/placeholder')
|
|
5
|
-
const
|
|
5
|
+
const funcApply2 = require('./_internal/funcApply2')
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @name _thunkifyArgs
|
|
9
|
+
*
|
|
10
|
+
* @synopsis
|
|
11
|
+
* ```coffeescript [specscript]
|
|
12
|
+
* _thunkifyArgs(func function, context object, args Array) -> thunk
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
function _thunkifyArgs(func, context, args) {
|
|
16
|
+
return function thunk() {
|
|
17
|
+
return func.apply(context, args)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
6
20
|
|
|
7
21
|
/**
|
|
8
22
|
* @name thunkify
|
|
@@ -15,7 +29,7 @@ const funcApply = require('./_internal/funcApply')
|
|
|
15
29
|
* ```
|
|
16
30
|
*
|
|
17
31
|
* @description
|
|
18
|
-
*
|
|
32
|
+
* Creates a thunk from a function and arguments. A thunk takes no arguments, and when called, executes the other function with the arguments. The other function is said to be "thunkified".
|
|
19
33
|
*
|
|
20
34
|
* ```javascript [playground]
|
|
21
35
|
* const add = (a, b) => a + b
|
|
@@ -27,17 +41,63 @@ const funcApply = require('./_internal/funcApply')
|
|
|
27
41
|
*
|
|
28
42
|
* See also:
|
|
29
43
|
* * [eq](/docs/eq)
|
|
44
|
+
* * [thunkify.call](/docs/thunkify.call)
|
|
45
|
+
* * [always](/docs/always)
|
|
46
|
+
* * [curry](/docs/curry)
|
|
47
|
+
* * [__](/docs/__)
|
|
48
|
+
* * [Transducer.map](/docs/Transducer.map)
|
|
49
|
+
*
|
|
50
|
+
*/
|
|
51
|
+
const thunkify = function thunkify(func, ...args) {
|
|
52
|
+
if (areAnyValuesPromises(args)) {
|
|
53
|
+
return promiseAll(args).then(curry3(_thunkifyArgs, func, this, __))
|
|
54
|
+
}
|
|
55
|
+
return _thunkifyArgs(func, this, args)
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @name thunkify.call
|
|
60
|
+
*
|
|
61
|
+
* @synopsis
|
|
62
|
+
* ```coffeescript [specscript]
|
|
63
|
+
* args Array<any>
|
|
64
|
+
*
|
|
65
|
+
* thunkify.call(func function, context object, ...args) -> thunk ()=>func(...args)
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
* Creates a thunk that calls a function with the specified context and arguments.
|
|
69
|
+
*
|
|
70
|
+
* ```javascript [playground]
|
|
71
|
+
* class Point {
|
|
72
|
+
* constructor(x, y) {
|
|
73
|
+
* this.x = x
|
|
74
|
+
* this.y = y
|
|
75
|
+
* }
|
|
76
|
+
*
|
|
77
|
+
* toString() {
|
|
78
|
+
* return `(${this.x}, ${this.y})`
|
|
79
|
+
* }
|
|
80
|
+
* }
|
|
81
|
+
*
|
|
82
|
+
* const thunk = thunkify.call(toString, point)
|
|
83
|
+
*
|
|
84
|
+
* console.log(thunk())
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* See also:
|
|
88
|
+
* * [eq](/docs/eq)
|
|
89
|
+
* * [thunkify](/docs/thunkify)
|
|
30
90
|
* * [always](/docs/always)
|
|
31
91
|
* * [curry](/docs/curry)
|
|
32
92
|
* * [__](/docs/__)
|
|
33
93
|
* * [Transducer.map](/docs/Transducer.map)
|
|
34
94
|
*
|
|
35
95
|
*/
|
|
36
|
-
|
|
96
|
+
thunkify.call = function thunkifyCall(func, context, ...args) {
|
|
37
97
|
if (areAnyValuesPromises(args)) {
|
|
38
|
-
return promiseAll(args).then(
|
|
98
|
+
return promiseAll(args).then(curry3(_thunkifyArgs, func, context, __))
|
|
39
99
|
}
|
|
40
|
-
return func
|
|
100
|
+
return _thunkifyArgs(func, context, args)
|
|
41
101
|
}
|
|
42
102
|
|
|
43
103
|
module.exports = thunkify
|