rubico 2.5.0 → 2.6.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/_internal/arrayMapPool.js +11 -19
- package/_internal/mapMapPool.js +80 -0
- package/_internal/objectMapPool.js +77 -0
- package/_internal/objectMapSeries.js +1 -0
- package/_internal/setMapPool.js +79 -0
- package/_internal/stringMapPool.js +22 -0
- package/all.js +11 -1
- package/and.js +9 -0
- package/assign.js +14 -1
- package/compose.js +8 -0
- 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 +1 -1
- package/dist/curry.es.min.js +1 -1
- package/dist/curry.js +1 -1
- package/dist/curry.min.js +1 -1
- package/dist/curry.mjs +1 -1
- 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 +3 -2
- package/dist/forEach.es.min.js +2 -2
- package/dist/forEach.js +3 -2
- package/dist/forEach.min.js +2 -2
- package/dist/forEach.mjs +3 -2
- 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 +221 -44
- package/dist/map.es.min.js +2 -2
- package/dist/map.js +221 -44
- package/dist/map.min.js +2 -2
- package/dist/map.mjs +221 -44
- 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 +259 -60
- package/dist/rubico.es.min.js +2 -2
- package/dist/rubico.global.js +259 -60
- package/dist/rubico.global.min.js +2 -2
- package/dist/rubico.js +259 -60
- package/dist/rubico.min.js +2 -2
- package/dist/rubico.mjs +259 -60
- 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 +100 -14
- package/dist/tap.es.min.js +2 -2
- package/dist/tap.js +100 -14
- package/dist/tap.min.js +2 -2
- package/dist/tap.mjs +100 -14
- package/dist/thunkify.es.js +1 -1
- package/dist/thunkify.es.min.js +1 -1
- package/dist/thunkify.js +1 -1
- package/dist/thunkify.min.js +1 -1
- package/dist/thunkify.mjs +1 -1
- 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 +221 -44
- package/dist/x/pluck.es.min.js +2 -2
- package/dist/x/pluck.js +221 -44
- package/dist/x/pluck.min.js +2 -2
- package/dist/x/pluck.mjs +221 -44
- 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 +100 -14
- package/dist/x/trace.es.min.js +2 -2
- package/dist/x/trace.js +100 -14
- package/dist/x/trace.min.js +2 -2
- package/dist/x/trace.mjs +100 -14
- 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/eq.js +6 -0
- package/es.js +259 -60
- package/every.js +6 -0
- package/filter.js +9 -0
- package/flatMap.js +7 -0
- package/forEach.js +20 -1
- package/get.js +6 -0
- package/gt.js +6 -0
- package/gte.js +6 -0
- package/index.js +259 -60
- package/lt.js +6 -0
- package/lte.js +6 -0
- package/map.js +118 -45
- package/not.js +8 -0
- package/omit.js +7 -0
- package/or.js +9 -0
- package/package.json +1 -1
- package/pick.js +7 -0
- package/pipe.js +8 -0
- package/reduce.js +8 -0
- package/set.js +6 -0
- package/some.js +6 -0
- package/switchCase.js +12 -0
- package/tap.js +75 -26
- package/transform.js +38 -10
- package/tryCatch.js +14 -0
package/dist/tap.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -19,6 +19,26 @@ const thunkConditional = (
|
|
|
19
19
|
|
|
20
20
|
const __ = Symbol.for('placeholder')
|
|
21
21
|
|
|
22
|
+
// argument resolver for curry2
|
|
23
|
+
const curry2ResolveArg0 = (
|
|
24
|
+
baseFunc, arg1,
|
|
25
|
+
) => function arg0Resolver(arg0) {
|
|
26
|
+
return baseFunc(arg0, arg1)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// argument resolver for curry2
|
|
30
|
+
const curry2ResolveArg1 = (
|
|
31
|
+
baseFunc, arg0,
|
|
32
|
+
) => function arg1Resolver(arg1) {
|
|
33
|
+
return baseFunc(arg0, arg1)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
37
|
+
return arg0 == __
|
|
38
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
39
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
40
|
+
}
|
|
41
|
+
|
|
22
42
|
// argument resolver for curry3
|
|
23
43
|
const curry3ResolveArg0 = (
|
|
24
44
|
baseFunc, arg1, arg2,
|
|
@@ -71,29 +91,81 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
71
91
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
72
92
|
}
|
|
73
93
|
|
|
74
|
-
//
|
|
75
|
-
const
|
|
94
|
+
// argument resolver for curryArgs3
|
|
95
|
+
const curryArgs3ResolveArgs0 = (
|
|
96
|
+
baseFunc, arg1, arg2,
|
|
97
|
+
) => function args0Resolver(...args) {
|
|
98
|
+
return baseFunc(args, arg1, arg2)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// argument resolver for curryArgs3
|
|
102
|
+
const curryArgs3ResolveArgs1 = (
|
|
103
|
+
baseFunc, arg0, arg2,
|
|
104
|
+
) => function arg1Resolver(...args) {
|
|
105
|
+
return baseFunc(arg0, args, arg2)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// argument resolver for curryArgs3
|
|
109
|
+
const curryArgs3ResolveArgs2 = (
|
|
110
|
+
baseFunc, arg0, arg1,
|
|
111
|
+
) => function arg2Resolver(...args) {
|
|
112
|
+
return baseFunc(arg0, arg1, args)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
116
|
+
if (arg0 == __) {
|
|
117
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
118
|
+
}
|
|
119
|
+
if (arg1 == __) {
|
|
120
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
121
|
+
}
|
|
122
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const areAnyValuesPromises = function (values) {
|
|
126
|
+
const length = values.length
|
|
127
|
+
let index = -1
|
|
128
|
+
while (++index < length) {
|
|
129
|
+
const value = values[index]
|
|
130
|
+
if (isPromise(value)) {
|
|
131
|
+
return true
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return false
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
138
|
+
|
|
139
|
+
// _tap(args Array, f function) -> Promise|any
|
|
140
|
+
const _tap = function (args, f) {
|
|
76
141
|
const result = args[0],
|
|
77
|
-
call =
|
|
142
|
+
call = f(...args)
|
|
78
143
|
return isPromise(call) ? call.then(always(result)) : result
|
|
79
144
|
}
|
|
80
145
|
|
|
81
146
|
const tap = function (...args) {
|
|
82
|
-
const
|
|
147
|
+
const f = args.pop()
|
|
83
148
|
if (args.length == 0) {
|
|
84
|
-
return curryArgs2(_tap, __,
|
|
149
|
+
return curryArgs2(_tap, __, f)
|
|
150
|
+
}
|
|
151
|
+
if (areAnyValuesPromises(args)) {
|
|
152
|
+
return promiseAll(args).then(curry2(_tap, __, f))
|
|
85
153
|
}
|
|
86
|
-
return _tap(args,
|
|
154
|
+
return _tap(args, f)
|
|
87
155
|
}
|
|
88
156
|
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
if (isPromise(
|
|
92
|
-
return
|
|
93
|
-
thunkConditional,
|
|
157
|
+
const _tapIf = function (predicate, f, args) {
|
|
158
|
+
const b = predicate(...args)
|
|
159
|
+
if (isPromise(b)) {
|
|
160
|
+
return b.then(curry3(
|
|
161
|
+
thunkConditional,
|
|
162
|
+
__,
|
|
163
|
+
thunkifyArgs(tap(f), args),
|
|
164
|
+
always(args[0]),
|
|
165
|
+
))
|
|
94
166
|
}
|
|
95
|
-
if (
|
|
96
|
-
const execution =
|
|
167
|
+
if (b) {
|
|
168
|
+
const execution = f(...args)
|
|
97
169
|
if (isPromise(execution)) {
|
|
98
170
|
return execution.then(always(args[0]))
|
|
99
171
|
}
|
|
@@ -101,4 +173,18 @@ tap.if = (predicate, func) => function tappingIf(...args) {
|
|
|
101
173
|
return args[0]
|
|
102
174
|
}
|
|
103
175
|
|
|
176
|
+
tap.if = function (...args) {
|
|
177
|
+
if (args.length == 2) {
|
|
178
|
+
return curryArgs3(_tapIf, args[0], args[1], __)
|
|
179
|
+
}
|
|
180
|
+
const argsLength = args.length
|
|
181
|
+
const f = args[argsLength - 1]
|
|
182
|
+
const predicate = args[argsLength - 2]
|
|
183
|
+
const argValues = args.slice(0, -2)
|
|
184
|
+
if (areAnyValuesPromises(argValues)) {
|
|
185
|
+
return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
|
|
186
|
+
}
|
|
187
|
+
return _tapIf(predicate, f, args)
|
|
188
|
+
}
|
|
189
|
+
|
|
104
190
|
export default tap
|
package/dist/tap.es.min.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
|
-
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,
|
|
7
|
+
const isPromise=r=>null!=r&&"function"==typeof r.then,always=r=>function(){return r},thunkifyArgs=(r,e)=>function(){return r(...e)},thunkConditional=(r,e,n)=>r?e():n(),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,e)=>function(n){return r(n,e)},curry2ResolveArg1=(r,e)=>function(n){return r(e,n)},curry2=function(r,e,n){return e==__?curry2ResolveArg0(r,n):curry2ResolveArg1(r,e)},curry3ResolveArg0=(r,e,n)=>function(t){return r(t,e,n)},curry3ResolveArg1=(r,e,n)=>function(t){return r(e,t,n)},curry3ResolveArg2=(r,e,n)=>function(t){return r(e,n,t)},curry3=function(r,e,n,t){return e==__?curry3ResolveArg0(r,n,t):n==__?curry3ResolveArg1(r,e,t):curry3ResolveArg2(r,e,n)},curryArgs2ResolveArgs0=(r,e,n)=>function(...n){return r(n,e)},curryArgs2ResolveArgs1=(r,e,n)=>function(...n){return r(e,n)},curryArgs2=function(r,e,n){return e==__?curryArgs2ResolveArgs0(r,n):curryArgs2ResolveArgs1(r,e)},curryArgs3ResolveArgs0=(r,e,n)=>function(...t){return r(t,e,n)},curryArgs3ResolveArgs1=(r,e,n)=>function(...t){return r(e,t,n)},curryArgs3ResolveArgs2=(r,e,n)=>function(...t){return r(e,n,t)},curryArgs3=function(r,e,n,t){return e==__?curryArgs3ResolveArgs0(r,n,t):n==__?curryArgs3ResolveArgs1(r,e,t):curryArgs3ResolveArgs2(r,e,n)},areAnyValuesPromises=function(r){const e=r.length;let n=-1;for(;++n<e;){const e=r[n];if(isPromise(e))return!0}return!1},promiseAll=Promise.all.bind(Promise),_tap=function(r,e){const n=r[0],t=e(...r);return isPromise(t)?t.then(always(n)):n},tap=function(...r){const e=r.pop();return 0==r.length?curryArgs2(_tap,__,e):areAnyValuesPromises(r)?promiseAll(r).then(curry2(_tap,__,e)):_tap(r,e)},_tapIf=function(r,e,n){const t=r(...n);if(isPromise(t))return t.then(curry3(thunkConditional,__,thunkifyArgs(tap(e),n),always(n[0])));if(t){const r=e(...n);if(isPromise(r))return r.then(always(n[0]))}return n[0]};tap.if=function(...r){if(2==r.length)return curryArgs3(_tapIf,r[0],r[1],__);const e=r.length,n=r[e-1],t=r[e-2],u=r.slice(0,-2);return areAnyValuesPromises(u)?promiseAll(u).then(curry3(_tapIf,t,n,__)):_tapIf(t,n,r)};export default tap;
|
package/dist/tap.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -25,6 +25,26 @@ const thunkConditional = (
|
|
|
25
25
|
|
|
26
26
|
const __ = Symbol.for('placeholder')
|
|
27
27
|
|
|
28
|
+
// argument resolver for curry2
|
|
29
|
+
const curry2ResolveArg0 = (
|
|
30
|
+
baseFunc, arg1,
|
|
31
|
+
) => function arg0Resolver(arg0) {
|
|
32
|
+
return baseFunc(arg0, arg1)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// argument resolver for curry2
|
|
36
|
+
const curry2ResolveArg1 = (
|
|
37
|
+
baseFunc, arg0,
|
|
38
|
+
) => function arg1Resolver(arg1) {
|
|
39
|
+
return baseFunc(arg0, arg1)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
43
|
+
return arg0 == __
|
|
44
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
45
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
46
|
+
}
|
|
47
|
+
|
|
28
48
|
// argument resolver for curry3
|
|
29
49
|
const curry3ResolveArg0 = (
|
|
30
50
|
baseFunc, arg1, arg2,
|
|
@@ -77,29 +97,81 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
77
97
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
78
98
|
}
|
|
79
99
|
|
|
80
|
-
//
|
|
81
|
-
const
|
|
100
|
+
// argument resolver for curryArgs3
|
|
101
|
+
const curryArgs3ResolveArgs0 = (
|
|
102
|
+
baseFunc, arg1, arg2,
|
|
103
|
+
) => function args0Resolver(...args) {
|
|
104
|
+
return baseFunc(args, arg1, arg2)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// argument resolver for curryArgs3
|
|
108
|
+
const curryArgs3ResolveArgs1 = (
|
|
109
|
+
baseFunc, arg0, arg2,
|
|
110
|
+
) => function arg1Resolver(...args) {
|
|
111
|
+
return baseFunc(arg0, args, arg2)
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// argument resolver for curryArgs3
|
|
115
|
+
const curryArgs3ResolveArgs2 = (
|
|
116
|
+
baseFunc, arg0, arg1,
|
|
117
|
+
) => function arg2Resolver(...args) {
|
|
118
|
+
return baseFunc(arg0, arg1, args)
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
122
|
+
if (arg0 == __) {
|
|
123
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
124
|
+
}
|
|
125
|
+
if (arg1 == __) {
|
|
126
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
127
|
+
}
|
|
128
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
const areAnyValuesPromises = function (values) {
|
|
132
|
+
const length = values.length
|
|
133
|
+
let index = -1
|
|
134
|
+
while (++index < length) {
|
|
135
|
+
const value = values[index]
|
|
136
|
+
if (isPromise(value)) {
|
|
137
|
+
return true
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return false
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
144
|
+
|
|
145
|
+
// _tap(args Array, f function) -> Promise|any
|
|
146
|
+
const _tap = function (args, f) {
|
|
82
147
|
const result = args[0],
|
|
83
|
-
call =
|
|
148
|
+
call = f(...args)
|
|
84
149
|
return isPromise(call) ? call.then(always(result)) : result
|
|
85
150
|
}
|
|
86
151
|
|
|
87
152
|
const tap = function (...args) {
|
|
88
|
-
const
|
|
153
|
+
const f = args.pop()
|
|
89
154
|
if (args.length == 0) {
|
|
90
|
-
return curryArgs2(_tap, __,
|
|
155
|
+
return curryArgs2(_tap, __, f)
|
|
156
|
+
}
|
|
157
|
+
if (areAnyValuesPromises(args)) {
|
|
158
|
+
return promiseAll(args).then(curry2(_tap, __, f))
|
|
91
159
|
}
|
|
92
|
-
return _tap(args,
|
|
160
|
+
return _tap(args, f)
|
|
93
161
|
}
|
|
94
162
|
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
if (isPromise(
|
|
98
|
-
return
|
|
99
|
-
thunkConditional,
|
|
163
|
+
const _tapIf = function (predicate, f, args) {
|
|
164
|
+
const b = predicate(...args)
|
|
165
|
+
if (isPromise(b)) {
|
|
166
|
+
return b.then(curry3(
|
|
167
|
+
thunkConditional,
|
|
168
|
+
__,
|
|
169
|
+
thunkifyArgs(tap(f), args),
|
|
170
|
+
always(args[0]),
|
|
171
|
+
))
|
|
100
172
|
}
|
|
101
|
-
if (
|
|
102
|
-
const execution =
|
|
173
|
+
if (b) {
|
|
174
|
+
const execution = f(...args)
|
|
103
175
|
if (isPromise(execution)) {
|
|
104
176
|
return execution.then(always(args[0]))
|
|
105
177
|
}
|
|
@@ -107,5 +179,19 @@ tap.if = (predicate, func) => function tappingIf(...args) {
|
|
|
107
179
|
return args[0]
|
|
108
180
|
}
|
|
109
181
|
|
|
182
|
+
tap.if = function (...args) {
|
|
183
|
+
if (args.length == 2) {
|
|
184
|
+
return curryArgs3(_tapIf, args[0], args[1], __)
|
|
185
|
+
}
|
|
186
|
+
const argsLength = args.length
|
|
187
|
+
const f = args[argsLength - 1]
|
|
188
|
+
const predicate = args[argsLength - 2]
|
|
189
|
+
const argValues = args.slice(0, -2)
|
|
190
|
+
if (areAnyValuesPromises(argValues)) {
|
|
191
|
+
return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
|
|
192
|
+
}
|
|
193
|
+
return _tapIf(predicate, f, args)
|
|
194
|
+
}
|
|
195
|
+
|
|
110
196
|
return tap
|
|
111
197
|
}())))
|
package/dist/tap.min.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},
|
|
8
|
+
!function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.tap=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=n=>null!=n&&"function"==typeof n.then,t=n=>function(){return n},r=(n,t,r)=>n?t():r(),e=Symbol.for("placeholder"),u=function(n,t,r,u){return t==e?((n,t,r)=>function(e){return n(e,t,r)})(n,r,u):r==e?((n,t,r)=>function(e){return n(t,e,r)})(n,t,u):((n,t,r)=>function(e){return n(t,r,e)})(n,t,r)},o=function(t){const r=t.length;let e=-1;for(;++e<r;){const r=t[e];if(n(r))return!0}return!1},i=Promise.all.bind(Promise),f=function(r,e){const u=r[0],o=e(...r);return n(o)?o.then(t(u)):u},c=function(...n){const t=n.pop();return 0==n.length?(r=f,c=t,(u=e)==e?((n,t)=>function(...r){return n(r,t)})(r,c):((n,t)=>function(...r){return n(t,r)})(r,u)):o(n)?i(n).then(function(n,t,r){return t==e?((n,t)=>function(r){return n(r,t)})(n,r):((n,t)=>function(r){return n(t,r)})(n,t)}(f,e,t)):f(n,t);var r,u,c},l=function(o,i,f){const l=o(...f);if(n(l))return l.then(u(r,e,((n,t)=>function(){return n(...t)})(c(i),f),t(f[0])));if(l){const r=i(...f);if(n(r))return r.then(t(f[0]))}return f[0]};return c.if=function(...n){if(2==n.length)return t=l,r=n[0],f=n[1],c=e,r==e?((n,t,r)=>function(...e){return n(e,t,r)})(t,f,c):f==e?((n,t,r)=>function(...e){return n(t,e,r)})(t,r,c):((n,t,r)=>function(...e){return n(t,r,e)})(t,r,f);var t,r,f,c;const s=n.length,h=n[s-1],p=n[s-2],a=n.slice(0,-2);return o(a)?i(a).then(u(l,p,h,e)):l(p,h,n)},c}());
|
package/dist/tap.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* rubico v2.
|
|
2
|
+
* rubico v2.6.1
|
|
3
3
|
* https://github.com/a-synchronous/rubico
|
|
4
4
|
* (c) 2019-2024 Richard Tong
|
|
5
5
|
* rubico may be freely distributed under the MIT license.
|
|
@@ -19,6 +19,26 @@ const thunkConditional = (
|
|
|
19
19
|
|
|
20
20
|
const __ = Symbol.for('placeholder')
|
|
21
21
|
|
|
22
|
+
// argument resolver for curry2
|
|
23
|
+
const curry2ResolveArg0 = (
|
|
24
|
+
baseFunc, arg1,
|
|
25
|
+
) => function arg0Resolver(arg0) {
|
|
26
|
+
return baseFunc(arg0, arg1)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// argument resolver for curry2
|
|
30
|
+
const curry2ResolveArg1 = (
|
|
31
|
+
baseFunc, arg0,
|
|
32
|
+
) => function arg1Resolver(arg1) {
|
|
33
|
+
return baseFunc(arg0, arg1)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const curry2 = function (baseFunc, arg0, arg1) {
|
|
37
|
+
return arg0 == __
|
|
38
|
+
? curry2ResolveArg0(baseFunc, arg1)
|
|
39
|
+
: curry2ResolveArg1(baseFunc, arg0)
|
|
40
|
+
}
|
|
41
|
+
|
|
22
42
|
// argument resolver for curry3
|
|
23
43
|
const curry3ResolveArg0 = (
|
|
24
44
|
baseFunc, arg1, arg2,
|
|
@@ -71,29 +91,81 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
|
|
|
71
91
|
return curryArgs2ResolveArgs1(baseFunc, arg0)
|
|
72
92
|
}
|
|
73
93
|
|
|
74
|
-
//
|
|
75
|
-
const
|
|
94
|
+
// argument resolver for curryArgs3
|
|
95
|
+
const curryArgs3ResolveArgs0 = (
|
|
96
|
+
baseFunc, arg1, arg2,
|
|
97
|
+
) => function args0Resolver(...args) {
|
|
98
|
+
return baseFunc(args, arg1, arg2)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// argument resolver for curryArgs3
|
|
102
|
+
const curryArgs3ResolveArgs1 = (
|
|
103
|
+
baseFunc, arg0, arg2,
|
|
104
|
+
) => function arg1Resolver(...args) {
|
|
105
|
+
return baseFunc(arg0, args, arg2)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// argument resolver for curryArgs3
|
|
109
|
+
const curryArgs3ResolveArgs2 = (
|
|
110
|
+
baseFunc, arg0, arg1,
|
|
111
|
+
) => function arg2Resolver(...args) {
|
|
112
|
+
return baseFunc(arg0, arg1, args)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
|
|
116
|
+
if (arg0 == __) {
|
|
117
|
+
return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
|
|
118
|
+
}
|
|
119
|
+
if (arg1 == __) {
|
|
120
|
+
return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
|
|
121
|
+
}
|
|
122
|
+
return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const areAnyValuesPromises = function (values) {
|
|
126
|
+
const length = values.length
|
|
127
|
+
let index = -1
|
|
128
|
+
while (++index < length) {
|
|
129
|
+
const value = values[index]
|
|
130
|
+
if (isPromise(value)) {
|
|
131
|
+
return true
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return false
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const promiseAll = Promise.all.bind(Promise)
|
|
138
|
+
|
|
139
|
+
// _tap(args Array, f function) -> Promise|any
|
|
140
|
+
const _tap = function (args, f) {
|
|
76
141
|
const result = args[0],
|
|
77
|
-
call =
|
|
142
|
+
call = f(...args)
|
|
78
143
|
return isPromise(call) ? call.then(always(result)) : result
|
|
79
144
|
}
|
|
80
145
|
|
|
81
146
|
const tap = function (...args) {
|
|
82
|
-
const
|
|
147
|
+
const f = args.pop()
|
|
83
148
|
if (args.length == 0) {
|
|
84
|
-
return curryArgs2(_tap, __,
|
|
149
|
+
return curryArgs2(_tap, __, f)
|
|
150
|
+
}
|
|
151
|
+
if (areAnyValuesPromises(args)) {
|
|
152
|
+
return promiseAll(args).then(curry2(_tap, __, f))
|
|
85
153
|
}
|
|
86
|
-
return _tap(args,
|
|
154
|
+
return _tap(args, f)
|
|
87
155
|
}
|
|
88
156
|
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
if (isPromise(
|
|
92
|
-
return
|
|
93
|
-
thunkConditional,
|
|
157
|
+
const _tapIf = function (predicate, f, args) {
|
|
158
|
+
const b = predicate(...args)
|
|
159
|
+
if (isPromise(b)) {
|
|
160
|
+
return b.then(curry3(
|
|
161
|
+
thunkConditional,
|
|
162
|
+
__,
|
|
163
|
+
thunkifyArgs(tap(f), args),
|
|
164
|
+
always(args[0]),
|
|
165
|
+
))
|
|
94
166
|
}
|
|
95
|
-
if (
|
|
96
|
-
const execution =
|
|
167
|
+
if (b) {
|
|
168
|
+
const execution = f(...args)
|
|
97
169
|
if (isPromise(execution)) {
|
|
98
170
|
return execution.then(always(args[0]))
|
|
99
171
|
}
|
|
@@ -101,4 +173,18 @@ tap.if = (predicate, func) => function tappingIf(...args) {
|
|
|
101
173
|
return args[0]
|
|
102
174
|
}
|
|
103
175
|
|
|
176
|
+
tap.if = function (...args) {
|
|
177
|
+
if (args.length == 2) {
|
|
178
|
+
return curryArgs3(_tapIf, args[0], args[1], __)
|
|
179
|
+
}
|
|
180
|
+
const argsLength = args.length
|
|
181
|
+
const f = args[argsLength - 1]
|
|
182
|
+
const predicate = args[argsLength - 2]
|
|
183
|
+
const argValues = args.slice(0, -2)
|
|
184
|
+
if (areAnyValuesPromises(argValues)) {
|
|
185
|
+
return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
|
|
186
|
+
}
|
|
187
|
+
return _tapIf(predicate, f, args)
|
|
188
|
+
}
|
|
189
|
+
|
|
104
190
|
export default tap
|
package/dist/thunkify.es.js
CHANGED
package/dist/thunkify.es.min.js
CHANGED
package/dist/thunkify.js
CHANGED
package/dist/thunkify.min.js
CHANGED
package/dist/thunkify.mjs
CHANGED
package/dist/transform.es.js
CHANGED
package/dist/transform.es.min.js
CHANGED
package/dist/transform.js
CHANGED
package/dist/transform.min.js
CHANGED
package/dist/transform.mjs
CHANGED
package/dist/tryCatch.es.js
CHANGED
package/dist/tryCatch.es.min.js
CHANGED
package/dist/tryCatch.js
CHANGED
package/dist/tryCatch.min.js
CHANGED
package/dist/tryCatch.mjs
CHANGED
package/dist/x/append.es.js
CHANGED
package/dist/x/append.es.min.js
CHANGED
package/dist/x/append.js
CHANGED
package/dist/x/append.min.js
CHANGED
package/dist/x/append.mjs
CHANGED
package/dist/x/callProp.es.js
CHANGED
package/dist/x/callProp.js
CHANGED