rubico 2.6.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.
Files changed (336) hide show
  1. package/dist/Transducer.es.js +1 -1
  2. package/dist/Transducer.es.min.js +1 -1
  3. package/dist/Transducer.js +1 -1
  4. package/dist/Transducer.min.js +1 -1
  5. package/dist/Transducer.mjs +1 -1
  6. package/dist/__.es.js +1 -1
  7. package/dist/__.es.min.js +1 -1
  8. package/dist/__.js +1 -1
  9. package/dist/__.min.js +1 -1
  10. package/dist/__.mjs +1 -1
  11. package/dist/all.es.js +1 -1
  12. package/dist/all.es.min.js +1 -1
  13. package/dist/all.js +1 -1
  14. package/dist/all.min.js +1 -1
  15. package/dist/all.mjs +1 -1
  16. package/dist/always.es.js +1 -1
  17. package/dist/always.es.min.js +1 -1
  18. package/dist/always.js +1 -1
  19. package/dist/always.min.js +1 -1
  20. package/dist/always.mjs +1 -1
  21. package/dist/and.es.js +1 -1
  22. package/dist/and.es.min.js +1 -1
  23. package/dist/and.js +1 -1
  24. package/dist/and.min.js +1 -1
  25. package/dist/and.mjs +1 -1
  26. package/dist/assign.es.js +1 -1
  27. package/dist/assign.es.min.js +1 -1
  28. package/dist/assign.js +1 -1
  29. package/dist/assign.min.js +1 -1
  30. package/dist/assign.mjs +1 -1
  31. package/dist/compose.es.js +1 -1
  32. package/dist/compose.es.min.js +1 -1
  33. package/dist/compose.js +1 -1
  34. package/dist/compose.min.js +1 -1
  35. package/dist/compose.mjs +1 -1
  36. package/dist/curry.es.js +1 -1
  37. package/dist/curry.es.min.js +1 -1
  38. package/dist/curry.js +1 -1
  39. package/dist/curry.min.js +1 -1
  40. package/dist/curry.mjs +1 -1
  41. package/dist/eq.es.js +1 -1
  42. package/dist/eq.es.min.js +1 -1
  43. package/dist/eq.js +1 -1
  44. package/dist/eq.min.js +1 -1
  45. package/dist/eq.mjs +1 -1
  46. package/dist/every.es.js +1 -1
  47. package/dist/every.es.min.js +1 -1
  48. package/dist/every.js +1 -1
  49. package/dist/every.min.js +1 -1
  50. package/dist/every.mjs +1 -1
  51. package/dist/filter.es.js +1 -1
  52. package/dist/filter.es.min.js +1 -1
  53. package/dist/filter.js +1 -1
  54. package/dist/filter.min.js +1 -1
  55. package/dist/filter.mjs +1 -1
  56. package/dist/flatMap.es.js +1 -1
  57. package/dist/flatMap.es.min.js +1 -1
  58. package/dist/flatMap.js +1 -1
  59. package/dist/flatMap.min.js +1 -1
  60. package/dist/flatMap.mjs +1 -1
  61. package/dist/forEach.es.js +1 -1
  62. package/dist/forEach.es.min.js +1 -1
  63. package/dist/forEach.js +1 -1
  64. package/dist/forEach.min.js +1 -1
  65. package/dist/forEach.mjs +1 -1
  66. package/dist/get.es.js +1 -1
  67. package/dist/get.es.min.js +1 -1
  68. package/dist/get.js +1 -1
  69. package/dist/get.min.js +1 -1
  70. package/dist/get.mjs +1 -1
  71. package/dist/gt.es.js +1 -1
  72. package/dist/gt.es.min.js +1 -1
  73. package/dist/gt.js +1 -1
  74. package/dist/gt.min.js +1 -1
  75. package/dist/gt.mjs +1 -1
  76. package/dist/gte.es.js +1 -1
  77. package/dist/gte.es.min.js +1 -1
  78. package/dist/gte.js +1 -1
  79. package/dist/gte.min.js +1 -1
  80. package/dist/gte.mjs +1 -1
  81. package/dist/lt.es.js +1 -1
  82. package/dist/lt.es.min.js +1 -1
  83. package/dist/lt.js +1 -1
  84. package/dist/lt.min.js +1 -1
  85. package/dist/lt.mjs +1 -1
  86. package/dist/lte.es.js +1 -1
  87. package/dist/lte.es.min.js +1 -1
  88. package/dist/lte.js +1 -1
  89. package/dist/lte.min.js +1 -1
  90. package/dist/lte.mjs +1 -1
  91. package/dist/map.es.js +1 -1
  92. package/dist/map.es.min.js +1 -1
  93. package/dist/map.js +1 -1
  94. package/dist/map.min.js +1 -1
  95. package/dist/map.mjs +1 -1
  96. package/dist/not.es.js +1 -1
  97. package/dist/not.es.min.js +1 -1
  98. package/dist/not.js +1 -1
  99. package/dist/not.min.js +1 -1
  100. package/dist/not.mjs +1 -1
  101. package/dist/omit.es.js +1 -1
  102. package/dist/omit.es.min.js +1 -1
  103. package/dist/omit.js +1 -1
  104. package/dist/omit.min.js +1 -1
  105. package/dist/omit.mjs +1 -1
  106. package/dist/or.es.js +1 -1
  107. package/dist/or.es.min.js +1 -1
  108. package/dist/or.js +1 -1
  109. package/dist/or.min.js +1 -1
  110. package/dist/or.mjs +1 -1
  111. package/dist/pick.es.js +1 -1
  112. package/dist/pick.es.min.js +1 -1
  113. package/dist/pick.js +1 -1
  114. package/dist/pick.min.js +1 -1
  115. package/dist/pick.mjs +1 -1
  116. package/dist/pipe.es.js +1 -1
  117. package/dist/pipe.es.min.js +1 -1
  118. package/dist/pipe.js +1 -1
  119. package/dist/pipe.min.js +1 -1
  120. package/dist/pipe.mjs +1 -1
  121. package/dist/reduce.es.js +1 -1
  122. package/dist/reduce.es.min.js +1 -1
  123. package/dist/reduce.js +1 -1
  124. package/dist/reduce.min.js +1 -1
  125. package/dist/reduce.mjs +1 -1
  126. package/dist/rubico.es.js +64 -46
  127. package/dist/rubico.es.min.js +2 -2
  128. package/dist/rubico.global.js +64 -46
  129. package/dist/rubico.global.min.js +2 -2
  130. package/dist/rubico.js +64 -46
  131. package/dist/rubico.min.js +2 -2
  132. package/dist/rubico.mjs +64 -46
  133. package/dist/set.es.js +1 -1
  134. package/dist/set.es.min.js +1 -1
  135. package/dist/set.js +1 -1
  136. package/dist/set.min.js +1 -1
  137. package/dist/set.mjs +1 -1
  138. package/dist/some.es.js +1 -1
  139. package/dist/some.es.min.js +1 -1
  140. package/dist/some.js +1 -1
  141. package/dist/some.min.js +1 -1
  142. package/dist/some.mjs +1 -1
  143. package/dist/switchCase.es.js +1 -1
  144. package/dist/switchCase.es.min.js +1 -1
  145. package/dist/switchCase.js +1 -1
  146. package/dist/switchCase.min.js +1 -1
  147. package/dist/switchCase.mjs +1 -1
  148. package/dist/tap.es.js +64 -15
  149. package/dist/tap.es.min.js +2 -2
  150. package/dist/tap.js +64 -15
  151. package/dist/tap.min.js +2 -2
  152. package/dist/tap.mjs +64 -15
  153. package/dist/thunkify.es.js +1 -1
  154. package/dist/thunkify.es.min.js +1 -1
  155. package/dist/thunkify.js +1 -1
  156. package/dist/thunkify.min.js +1 -1
  157. package/dist/thunkify.mjs +1 -1
  158. package/dist/transform.es.js +1 -1
  159. package/dist/transform.es.min.js +1 -1
  160. package/dist/transform.js +1 -1
  161. package/dist/transform.min.js +1 -1
  162. package/dist/transform.mjs +1 -1
  163. package/dist/tryCatch.es.js +1 -1
  164. package/dist/tryCatch.es.min.js +1 -1
  165. package/dist/tryCatch.js +1 -1
  166. package/dist/tryCatch.min.js +1 -1
  167. package/dist/tryCatch.mjs +1 -1
  168. package/dist/x/append.es.js +1 -1
  169. package/dist/x/append.es.min.js +1 -1
  170. package/dist/x/append.js +1 -1
  171. package/dist/x/append.min.js +1 -1
  172. package/dist/x/append.mjs +1 -1
  173. package/dist/x/callProp.es.js +1 -1
  174. package/dist/x/callProp.es.min.js +1 -1
  175. package/dist/x/callProp.js +1 -1
  176. package/dist/x/callProp.min.js +1 -1
  177. package/dist/x/callProp.mjs +1 -1
  178. package/dist/x/defaultsDeep.es.js +1 -1
  179. package/dist/x/defaultsDeep.es.min.js +1 -1
  180. package/dist/x/defaultsDeep.js +1 -1
  181. package/dist/x/defaultsDeep.min.js +1 -1
  182. package/dist/x/defaultsDeep.mjs +1 -1
  183. package/dist/x/differenceWith.es.js +1 -1
  184. package/dist/x/differenceWith.es.min.js +1 -1
  185. package/dist/x/differenceWith.js +1 -1
  186. package/dist/x/differenceWith.min.js +1 -1
  187. package/dist/x/differenceWith.mjs +1 -1
  188. package/dist/x/filterOut.es.js +1 -1
  189. package/dist/x/filterOut.es.min.js +1 -1
  190. package/dist/x/filterOut.js +1 -1
  191. package/dist/x/filterOut.min.js +1 -1
  192. package/dist/x/filterOut.mjs +1 -1
  193. package/dist/x/find.es.js +1 -1
  194. package/dist/x/find.es.min.js +1 -1
  195. package/dist/x/find.js +1 -1
  196. package/dist/x/find.min.js +1 -1
  197. package/dist/x/find.mjs +1 -1
  198. package/dist/x/findIndex.es.js +1 -1
  199. package/dist/x/findIndex.es.min.js +1 -1
  200. package/dist/x/findIndex.js +1 -1
  201. package/dist/x/findIndex.min.js +1 -1
  202. package/dist/x/findIndex.mjs +1 -1
  203. package/dist/x/first.es.js +1 -1
  204. package/dist/x/first.es.min.js +1 -1
  205. package/dist/x/first.js +1 -1
  206. package/dist/x/first.min.js +1 -1
  207. package/dist/x/first.mjs +1 -1
  208. package/dist/x/flatten.es.js +1 -1
  209. package/dist/x/flatten.es.min.js +1 -1
  210. package/dist/x/flatten.js +1 -1
  211. package/dist/x/flatten.min.js +1 -1
  212. package/dist/x/flatten.mjs +1 -1
  213. package/dist/x/groupBy.es.js +1 -1
  214. package/dist/x/groupBy.es.min.js +1 -1
  215. package/dist/x/groupBy.js +1 -1
  216. package/dist/x/groupBy.min.js +1 -1
  217. package/dist/x/groupBy.mjs +1 -1
  218. package/dist/x/has.es.js +1 -1
  219. package/dist/x/has.es.min.js +1 -1
  220. package/dist/x/has.js +1 -1
  221. package/dist/x/has.min.js +1 -1
  222. package/dist/x/has.mjs +1 -1
  223. package/dist/x/identity.es.js +1 -1
  224. package/dist/x/identity.es.min.js +1 -1
  225. package/dist/x/identity.js +1 -1
  226. package/dist/x/identity.min.js +1 -1
  227. package/dist/x/identity.mjs +1 -1
  228. package/dist/x/includes.es.js +1 -1
  229. package/dist/x/includes.es.min.js +1 -1
  230. package/dist/x/includes.js +1 -1
  231. package/dist/x/includes.min.js +1 -1
  232. package/dist/x/includes.mjs +1 -1
  233. package/dist/x/isDeepEqual.es.js +1 -1
  234. package/dist/x/isDeepEqual.es.min.js +1 -1
  235. package/dist/x/isDeepEqual.js +1 -1
  236. package/dist/x/isDeepEqual.min.js +1 -1
  237. package/dist/x/isDeepEqual.mjs +1 -1
  238. package/dist/x/isEmpty.es.js +1 -1
  239. package/dist/x/isEmpty.es.min.js +1 -1
  240. package/dist/x/isEmpty.js +1 -1
  241. package/dist/x/isEmpty.min.js +1 -1
  242. package/dist/x/isEmpty.mjs +1 -1
  243. package/dist/x/isEqual.es.js +1 -1
  244. package/dist/x/isEqual.es.min.js +1 -1
  245. package/dist/x/isEqual.js +1 -1
  246. package/dist/x/isEqual.min.js +1 -1
  247. package/dist/x/isEqual.mjs +1 -1
  248. package/dist/x/isFunction.es.js +1 -1
  249. package/dist/x/isFunction.es.min.js +1 -1
  250. package/dist/x/isFunction.js +1 -1
  251. package/dist/x/isFunction.min.js +1 -1
  252. package/dist/x/isFunction.mjs +1 -1
  253. package/dist/x/isIn.es.js +1 -1
  254. package/dist/x/isIn.es.min.js +1 -1
  255. package/dist/x/isIn.js +1 -1
  256. package/dist/x/isIn.min.js +1 -1
  257. package/dist/x/isIn.mjs +1 -1
  258. package/dist/x/isObject.es.js +1 -1
  259. package/dist/x/isObject.es.min.js +1 -1
  260. package/dist/x/isObject.js +1 -1
  261. package/dist/x/isObject.min.js +1 -1
  262. package/dist/x/isObject.mjs +1 -1
  263. package/dist/x/isString.es.js +1 -1
  264. package/dist/x/isString.es.min.js +1 -1
  265. package/dist/x/isString.js +1 -1
  266. package/dist/x/isString.min.js +1 -1
  267. package/dist/x/isString.mjs +1 -1
  268. package/dist/x/keys.es.js +1 -1
  269. package/dist/x/keys.es.min.js +1 -1
  270. package/dist/x/keys.js +1 -1
  271. package/dist/x/keys.min.js +1 -1
  272. package/dist/x/keys.mjs +1 -1
  273. package/dist/x/last.es.js +1 -1
  274. package/dist/x/last.es.min.js +1 -1
  275. package/dist/x/last.js +1 -1
  276. package/dist/x/last.min.js +1 -1
  277. package/dist/x/last.mjs +1 -1
  278. package/dist/x/maxBy.es.js +1 -1
  279. package/dist/x/maxBy.es.min.js +1 -1
  280. package/dist/x/maxBy.js +1 -1
  281. package/dist/x/maxBy.min.js +1 -1
  282. package/dist/x/maxBy.mjs +1 -1
  283. package/dist/x/noop.es.js +1 -1
  284. package/dist/x/noop.es.min.js +1 -1
  285. package/dist/x/noop.js +1 -1
  286. package/dist/x/noop.min.js +1 -1
  287. package/dist/x/noop.mjs +1 -1
  288. package/dist/x/pluck.es.js +1 -1
  289. package/dist/x/pluck.es.min.js +1 -1
  290. package/dist/x/pluck.js +1 -1
  291. package/dist/x/pluck.min.js +1 -1
  292. package/dist/x/pluck.mjs +1 -1
  293. package/dist/x/prepend.es.js +1 -1
  294. package/dist/x/prepend.es.min.js +1 -1
  295. package/dist/x/prepend.js +1 -1
  296. package/dist/x/prepend.min.js +1 -1
  297. package/dist/x/prepend.mjs +1 -1
  298. package/dist/x/size.es.js +1 -1
  299. package/dist/x/size.es.min.js +1 -1
  300. package/dist/x/size.js +1 -1
  301. package/dist/x/size.min.js +1 -1
  302. package/dist/x/size.mjs +1 -1
  303. package/dist/x/trace.es.js +66 -17
  304. package/dist/x/trace.es.min.js +2 -2
  305. package/dist/x/trace.js +66 -17
  306. package/dist/x/trace.min.js +2 -2
  307. package/dist/x/trace.mjs +66 -17
  308. package/dist/x/unionWith.es.js +1 -1
  309. package/dist/x/unionWith.es.min.js +1 -1
  310. package/dist/x/unionWith.js +1 -1
  311. package/dist/x/unionWith.min.js +1 -1
  312. package/dist/x/unionWith.mjs +1 -1
  313. package/dist/x/uniq.es.js +1 -1
  314. package/dist/x/uniq.es.min.js +1 -1
  315. package/dist/x/uniq.js +1 -1
  316. package/dist/x/uniq.min.js +1 -1
  317. package/dist/x/uniq.mjs +1 -1
  318. package/dist/x/unless.es.js +1 -1
  319. package/dist/x/unless.es.min.js +1 -1
  320. package/dist/x/unless.js +1 -1
  321. package/dist/x/unless.min.js +1 -1
  322. package/dist/x/unless.mjs +1 -1
  323. package/dist/x/values.es.js +1 -1
  324. package/dist/x/values.es.min.js +1 -1
  325. package/dist/x/values.js +1 -1
  326. package/dist/x/values.min.js +1 -1
  327. package/dist/x/values.mjs +1 -1
  328. package/dist/x/when.es.js +1 -1
  329. package/dist/x/when.es.min.js +1 -1
  330. package/dist/x/when.js +1 -1
  331. package/dist/x/when.min.js +1 -1
  332. package/dist/x/when.mjs +1 -1
  333. package/es.js +64 -46
  334. package/index.js +64 -46
  335. package/package.json +1 -1
  336. package/tap.js +66 -28
package/dist/x/trace.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -100,6 +100,37 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
100
100
  return curryArgs2ResolveArgs1(baseFunc, arg0)
101
101
  }
102
102
 
103
+ // argument resolver for curryArgs3
104
+ const curryArgs3ResolveArgs0 = (
105
+ baseFunc, arg1, arg2,
106
+ ) => function args0Resolver(...args) {
107
+ return baseFunc(args, arg1, arg2)
108
+ }
109
+
110
+ // argument resolver for curryArgs3
111
+ const curryArgs3ResolveArgs1 = (
112
+ baseFunc, arg0, arg2,
113
+ ) => function arg1Resolver(...args) {
114
+ return baseFunc(arg0, args, arg2)
115
+ }
116
+
117
+ // argument resolver for curryArgs3
118
+ const curryArgs3ResolveArgs2 = (
119
+ baseFunc, arg0, arg1,
120
+ ) => function arg2Resolver(...args) {
121
+ return baseFunc(arg0, arg1, args)
122
+ }
123
+
124
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
125
+ if (arg0 == __) {
126
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
127
+ }
128
+ if (arg1 == __) {
129
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
130
+ }
131
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
132
+ }
133
+
103
134
  const areAnyValuesPromises = function (values) {
104
135
  const length = values.length
105
136
  let index = -1
@@ -114,32 +145,36 @@ const areAnyValuesPromises = function (values) {
114
145
 
115
146
  const promiseAll = Promise.all.bind(Promise)
116
147
 
117
- // _tap(args Array, func function) -> Promise|any
118
- const _tap = function (args, func) {
148
+ // _tap(args Array, f function) -> Promise|any
149
+ const _tap = function (args, f) {
119
150
  const result = args[0],
120
- call = func(...args)
151
+ call = f(...args)
121
152
  return isPromise(call) ? call.then(always(result)) : result
122
153
  }
123
154
 
124
155
  const tap = function (...args) {
125
- const func = args.pop()
156
+ const f = args.pop()
126
157
  if (args.length == 0) {
127
- return curryArgs2(_tap, __, func)
158
+ return curryArgs2(_tap, __, f)
128
159
  }
129
160
  if (areAnyValuesPromises(args)) {
130
- return promiseAll(args).then(curry2(_tap, __, func))
161
+ return promiseAll(args).then(curry2(_tap, __, f))
131
162
  }
132
- return _tap(args, func)
133
- }
134
-
135
- tap.if = (predicate, func) => function tappingIf(...args) {
136
- const predication = predicate(...args)
137
- if (isPromise(predication)) {
138
- return predication.then(curry3(
139
- thunkConditional, __, thunkifyArgs(tap(func), args), always(args[0])))
163
+ return _tap(args, f)
164
+ }
165
+
166
+ const _tapIf = function (predicate, f, args) {
167
+ const b = predicate(...args)
168
+ if (isPromise(b)) {
169
+ return b.then(curry3(
170
+ thunkConditional,
171
+ __,
172
+ thunkifyArgs(tap(f), args),
173
+ always(args[0]),
174
+ ))
140
175
  }
141
- if (predication) {
142
- const execution = func(...args)
176
+ if (b) {
177
+ const execution = f(...args)
143
178
  if (isPromise(execution)) {
144
179
  return execution.then(always(args[0]))
145
180
  }
@@ -147,6 +182,20 @@ tap.if = (predicate, func) => function tappingIf(...args) {
147
182
  return args[0]
148
183
  }
149
184
 
185
+ tap.if = function (...args) {
186
+ if (args.length == 2) {
187
+ return curryArgs3(_tapIf, args[0], args[1], __)
188
+ }
189
+ const argsLength = args.length
190
+ const f = args[argsLength - 1]
191
+ const predicate = args[argsLength - 2]
192
+ const argValues = args.slice(0, -2)
193
+ if (areAnyValuesPromises(argValues)) {
194
+ return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
195
+ }
196
+ return _tapIf(predicate, f, args)
197
+ }
198
+
150
199
  // ...any => ()
151
200
  const consoleLog = console.log
152
201
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/uniq.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/uniq.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/uniq.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/unless.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/unless.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/values.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/values.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/when.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/when.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/dist/x/when.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
package/es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -146,32 +146,67 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
146
146
  return curryArgs2ResolveArgs1(baseFunc, arg0)
147
147
  }
148
148
 
149
- // _tap(args Array, func function) -> Promise|any
150
- const _tap = function (args, func) {
149
+ // argument resolver for curryArgs3
150
+ const curryArgs3ResolveArgs0 = (
151
+ baseFunc, arg1, arg2,
152
+ ) => function args0Resolver(...args) {
153
+ return baseFunc(args, arg1, arg2)
154
+ }
155
+
156
+ // argument resolver for curryArgs3
157
+ const curryArgs3ResolveArgs1 = (
158
+ baseFunc, arg0, arg2,
159
+ ) => function arg1Resolver(...args) {
160
+ return baseFunc(arg0, args, arg2)
161
+ }
162
+
163
+ // argument resolver for curryArgs3
164
+ const curryArgs3ResolveArgs2 = (
165
+ baseFunc, arg0, arg1,
166
+ ) => function arg2Resolver(...args) {
167
+ return baseFunc(arg0, arg1, args)
168
+ }
169
+
170
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
171
+ if (arg0 == __) {
172
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
173
+ }
174
+ if (arg1 == __) {
175
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
176
+ }
177
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
178
+ }
179
+
180
+ // _tap(args Array, f function) -> Promise|any
181
+ const _tap = function (args, f) {
151
182
  const result = args[0],
152
- call = func(...args)
183
+ call = f(...args)
153
184
  return isPromise(call) ? call.then(always(result)) : result
154
185
  }
155
186
 
156
187
  const tap = function (...args) {
157
- const func = args.pop()
188
+ const f = args.pop()
158
189
  if (args.length == 0) {
159
- return curryArgs2(_tap, __, func)
190
+ return curryArgs2(_tap, __, f)
160
191
  }
161
192
  if (areAnyValuesPromises(args)) {
162
- return promiseAll(args).then(curry2(_tap, __, func))
193
+ return promiseAll(args).then(curry2(_tap, __, f))
163
194
  }
164
- return _tap(args, func)
195
+ return _tap(args, f)
165
196
  }
166
197
 
167
- tap.if = (predicate, func) => function tappingIf(...args) {
168
- const predication = predicate(...args)
169
- if (isPromise(predication)) {
170
- return predication.then(curry3(
171
- thunkConditional, __, thunkifyArgs(tap(func), args), always(args[0])))
198
+ const _tapIf = function (predicate, f, args) {
199
+ const b = predicate(...args)
200
+ if (isPromise(b)) {
201
+ return b.then(curry3(
202
+ thunkConditional,
203
+ __,
204
+ thunkifyArgs(tap(f), args),
205
+ always(args[0]),
206
+ ))
172
207
  }
173
- if (predication) {
174
- const execution = func(...args)
208
+ if (b) {
209
+ const execution = f(...args)
175
210
  if (isPromise(execution)) {
176
211
  return execution.then(always(args[0]))
177
212
  }
@@ -179,6 +214,20 @@ tap.if = (predicate, func) => function tappingIf(...args) {
179
214
  return args[0]
180
215
  }
181
216
 
217
+ tap.if = function (...args) {
218
+ if (args.length == 2) {
219
+ return curryArgs3(_tapIf, args[0], args[1], __)
220
+ }
221
+ const argsLength = args.length
222
+ const f = args[argsLength - 1]
223
+ const predicate = args[argsLength - 2]
224
+ const argValues = args.slice(0, -2)
225
+ if (areAnyValuesPromises(argValues)) {
226
+ return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
227
+ }
228
+ return _tapIf(predicate, f, args)
229
+ }
230
+
182
231
  const isArray = Array.isArray
183
232
 
184
233
  const functionArrayAll = function (funcs, args) {
@@ -445,37 +494,6 @@ const nonfunctionsConditional = function (array, index) {
445
494
  return array[index]
446
495
  }
447
496
 
448
- // argument resolver for curryArgs3
449
- const curryArgs3ResolveArgs0 = (
450
- baseFunc, arg1, arg2,
451
- ) => function args0Resolver(...args) {
452
- return baseFunc(args, arg1, arg2)
453
- }
454
-
455
- // argument resolver for curryArgs3
456
- const curryArgs3ResolveArgs1 = (
457
- baseFunc, arg0, arg2,
458
- ) => function arg1Resolver(...args) {
459
- return baseFunc(arg0, args, arg2)
460
- }
461
-
462
- // argument resolver for curryArgs3
463
- const curryArgs3ResolveArgs2 = (
464
- baseFunc, arg0, arg1,
465
- ) => function arg2Resolver(...args) {
466
- return baseFunc(arg0, arg1, args)
467
- }
468
-
469
- const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
470
- if (arg0 == __) {
471
- return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
472
- }
473
- if (arg1 == __) {
474
- return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
475
- }
476
- return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
477
- }
478
-
479
497
  const switchCase = (...args) => {
480
498
  const values = args.pop()
481
499
  if (areAllValuesNonfunctions(values)) {
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.6.0
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.
@@ -152,32 +152,67 @@ const curryArgs2 = function (baseFunc, arg0, arg1) {
152
152
  return curryArgs2ResolveArgs1(baseFunc, arg0)
153
153
  }
154
154
 
155
- // _tap(args Array, func function) -> Promise|any
156
- const _tap = function (args, func) {
155
+ // argument resolver for curryArgs3
156
+ const curryArgs3ResolveArgs0 = (
157
+ baseFunc, arg1, arg2,
158
+ ) => function args0Resolver(...args) {
159
+ return baseFunc(args, arg1, arg2)
160
+ }
161
+
162
+ // argument resolver for curryArgs3
163
+ const curryArgs3ResolveArgs1 = (
164
+ baseFunc, arg0, arg2,
165
+ ) => function arg1Resolver(...args) {
166
+ return baseFunc(arg0, args, arg2)
167
+ }
168
+
169
+ // argument resolver for curryArgs3
170
+ const curryArgs3ResolveArgs2 = (
171
+ baseFunc, arg0, arg1,
172
+ ) => function arg2Resolver(...args) {
173
+ return baseFunc(arg0, arg1, args)
174
+ }
175
+
176
+ const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
177
+ if (arg0 == __) {
178
+ return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
179
+ }
180
+ if (arg1 == __) {
181
+ return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
182
+ }
183
+ return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
184
+ }
185
+
186
+ // _tap(args Array, f function) -> Promise|any
187
+ const _tap = function (args, f) {
157
188
  const result = args[0],
158
- call = func(...args)
189
+ call = f(...args)
159
190
  return isPromise(call) ? call.then(always(result)) : result
160
191
  }
161
192
 
162
193
  const tap = function (...args) {
163
- const func = args.pop()
194
+ const f = args.pop()
164
195
  if (args.length == 0) {
165
- return curryArgs2(_tap, __, func)
196
+ return curryArgs2(_tap, __, f)
166
197
  }
167
198
  if (areAnyValuesPromises(args)) {
168
- return promiseAll(args).then(curry2(_tap, __, func))
199
+ return promiseAll(args).then(curry2(_tap, __, f))
169
200
  }
170
- return _tap(args, func)
201
+ return _tap(args, f)
171
202
  }
172
203
 
173
- tap.if = (predicate, func) => function tappingIf(...args) {
174
- const predication = predicate(...args)
175
- if (isPromise(predication)) {
176
- return predication.then(curry3(
177
- thunkConditional, __, thunkifyArgs(tap(func), args), always(args[0])))
204
+ const _tapIf = function (predicate, f, args) {
205
+ const b = predicate(...args)
206
+ if (isPromise(b)) {
207
+ return b.then(curry3(
208
+ thunkConditional,
209
+ __,
210
+ thunkifyArgs(tap(f), args),
211
+ always(args[0]),
212
+ ))
178
213
  }
179
- if (predication) {
180
- const execution = func(...args)
214
+ if (b) {
215
+ const execution = f(...args)
181
216
  if (isPromise(execution)) {
182
217
  return execution.then(always(args[0]))
183
218
  }
@@ -185,6 +220,20 @@ tap.if = (predicate, func) => function tappingIf(...args) {
185
220
  return args[0]
186
221
  }
187
222
 
223
+ tap.if = function (...args) {
224
+ if (args.length == 2) {
225
+ return curryArgs3(_tapIf, args[0], args[1], __)
226
+ }
227
+ const argsLength = args.length
228
+ const f = args[argsLength - 1]
229
+ const predicate = args[argsLength - 2]
230
+ const argValues = args.slice(0, -2)
231
+ if (areAnyValuesPromises(argValues)) {
232
+ return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
233
+ }
234
+ return _tapIf(predicate, f, args)
235
+ }
236
+
188
237
  const isArray = Array.isArray
189
238
 
190
239
  const functionArrayAll = function (funcs, args) {
@@ -451,37 +500,6 @@ const nonfunctionsConditional = function (array, index) {
451
500
  return array[index]
452
501
  }
453
502
 
454
- // argument resolver for curryArgs3
455
- const curryArgs3ResolveArgs0 = (
456
- baseFunc, arg1, arg2,
457
- ) => function args0Resolver(...args) {
458
- return baseFunc(args, arg1, arg2)
459
- }
460
-
461
- // argument resolver for curryArgs3
462
- const curryArgs3ResolveArgs1 = (
463
- baseFunc, arg0, arg2,
464
- ) => function arg1Resolver(...args) {
465
- return baseFunc(arg0, args, arg2)
466
- }
467
-
468
- // argument resolver for curryArgs3
469
- const curryArgs3ResolveArgs2 = (
470
- baseFunc, arg0, arg1,
471
- ) => function arg2Resolver(...args) {
472
- return baseFunc(arg0, arg1, args)
473
- }
474
-
475
- const curryArgs3 = function (baseFunc, arg0, arg1, arg2) {
476
- if (arg0 == __) {
477
- return curryArgs3ResolveArgs0(baseFunc, arg1, arg2)
478
- }
479
- if (arg1 == __) {
480
- return curryArgs3ResolveArgs1(baseFunc, arg0, arg2)
481
- }
482
- return curryArgs3ResolveArgs2(baseFunc, arg0, arg1)
483
- }
484
-
485
503
  const switchCase = (...args) => {
486
504
  const values = args.pop()
487
505
  if (areAllValuesNonfunctions(values)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rubico",
3
- "version": "2.6.0",
3
+ "version": "2.6.1",
4
4
  "description": "[a]synchronous functional programming",
5
5
  "author": "Richard Tong",
6
6
  "license": "MIT",