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/tap.js CHANGED
@@ -5,14 +5,15 @@ const thunkConditional = require('./_internal/thunkConditional')
5
5
  const curry2 = require('./_internal/curry2')
6
6
  const curry3 = require('./_internal/curry3')
7
7
  const curryArgs2 = require('./_internal/curryArgs2')
8
+ const curryArgs3 = require('./_internal/curryArgs3')
8
9
  const __ = require('./_internal/placeholder')
9
10
  const areAnyValuesPromises = require('./_internal/areAnyValuesPromises')
10
11
  const promiseAll = require('./_internal/promiseAll')
11
12
 
12
- // _tap(args Array, func function) -> Promise|any
13
- const _tap = function (args, func) {
13
+ // _tap(args Array, f function) -> Promise|any
14
+ const _tap = function (args, f) {
14
15
  const result = args[0],
15
- call = func(...args)
16
+ call = f(...args)
16
17
  return isPromise(call) ? call.then(always(result)) : result
17
18
  }
18
19
 
@@ -21,8 +22,8 @@ const _tap = function (args, func) {
21
22
  *
22
23
  * @synopsis
23
24
  * ```coffeescript [specscript]
24
- * tap(...args, func function) -> Promise|args[0]
25
- * tap(func function)(...args) -> Promise|args[0]
25
+ * tap(...args, f function) -> Promise|args[0]
26
+ * tap(f function)(...args) -> Promise|args[0]
26
27
  * ```
27
28
  *
28
29
  * @description
@@ -41,19 +42,51 @@ const _tap = function (args, func) {
41
42
  * ```
42
43
  *
43
44
  * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
45
+ *
44
46
  * ```javascript [playground]
45
- * tap(Promise.resolve(1), Promise.resolve(2), 3, console.log) // 1, 2, 3
47
+ * tap(Promise.resolve(1), Promise.resolve(2), 3, console.log) // 1 2 3
46
48
  * ```
47
49
  */
48
50
  const tap = function (...args) {
49
- const func = args.pop()
51
+ const f = args.pop()
50
52
  if (args.length == 0) {
51
- return curryArgs2(_tap, __, func)
53
+ return curryArgs2(_tap, __, f)
52
54
  }
53
55
  if (areAnyValuesPromises(args)) {
54
- return promiseAll(args).then(curry2(_tap, __, func))
56
+ return promiseAll(args).then(curry2(_tap, __, f))
55
57
  }
56
- return _tap(args, func)
58
+ return _tap(args, f)
59
+ }
60
+
61
+ /**
62
+ * @name _tapIf
63
+ *
64
+ * @synopsis
65
+ * ```coffeescript [specscript]
66
+ * _tapIf(
67
+ * predicate function,
68
+ * f function,
69
+ * args Array,
70
+ * ) -> Promise|args[0]
71
+ * ```
72
+ */
73
+ const _tapIf = function (predicate, f, args) {
74
+ const b = predicate(...args)
75
+ if (isPromise(b)) {
76
+ return b.then(curry3(
77
+ thunkConditional,
78
+ __,
79
+ thunkifyArgs(tap(f), args),
80
+ always(args[0]),
81
+ ))
82
+ }
83
+ if (b) {
84
+ const execution = f(...args)
85
+ if (isPromise(execution)) {
86
+ return execution.then(always(args[0]))
87
+ }
88
+ }
89
+ return args[0]
57
90
  }
58
91
 
59
92
  /**
@@ -61,37 +94,42 @@ const tap = function (...args) {
61
94
  *
62
95
  * @synopsis
63
96
  * ```coffeescript [specscript]
64
- * tap.if(predicate function, func function)(...args) -> Promise|args[0]
97
+ * tap.if(...args, predicate function, f function) -> Promise|args[0]
98
+ * tap.if(predicate function, f function)(...args) -> Promise|args[0]
65
99
  * ```
66
100
  *
67
101
  * @description
68
- * A version of `tap` that accepts a predicate function (a function that returns a boolean value) before the function to execute. Only executes the function if the predicate function tests true for the same arguments provided to the execution function.
102
+ * A version of `tap` that accepts a predicate function (a function that returns a boolean value) before the function `f` to execute. Only executes `f` if the predicate function tests true. The arguments are the same to both the predicate function and the function to execute `f`.
69
103
  *
70
104
  * ```javascript [playground]
71
105
  * const isOdd = number => number % 2 == 1
72
106
  *
73
- * const logIfOdd = tap.if(
74
- * isOdd,
75
- * number => console.log(number, 'is an odd number')
76
- * )
107
+ * const logIfOdd = tap.if(isOdd, console.log)
77
108
  *
78
109
  * logIfOdd(2)
79
- * logIfOdd(3) // 3 is an odd number
110
+ * logIfOdd(3) // 3
111
+ * ```
112
+ *
113
+ * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
114
+ *
115
+ * ```javascript [playground]
116
+ * tap.if(Promise.resolve(1), n => n < 5, console.log) // 1
117
+ * tap.if(Promise.resolve(6), n => n < 5, console.log)
80
118
  * ```
81
119
  */
82
- tap.if = (predicate, func) => function tappingIf(...args) {
83
- const predication = predicate(...args)
84
- if (isPromise(predication)) {
85
- return predication.then(curry3(
86
- thunkConditional, __, thunkifyArgs(tap(func), args), always(args[0])))
120
+
121
+ tap.if = function (...args) {
122
+ if (args.length == 2) {
123
+ return curryArgs3(_tapIf, args[0], args[1], __)
87
124
  }
88
- if (predication) {
89
- const execution = func(...args)
90
- if (isPromise(execution)) {
91
- return execution.then(always(args[0]))
92
- }
125
+ const argsLength = args.length
126
+ const f = args[argsLength - 1]
127
+ const predicate = args[argsLength - 2]
128
+ const argValues = args.slice(0, -2)
129
+ if (areAnyValuesPromises(argValues)) {
130
+ return promiseAll(argValues).then(curry3(_tapIf, predicate, f, __))
93
131
  }
94
- return args[0]
132
+ return _tapIf(predicate, f, args)
95
133
  }
96
134
 
97
135
  module.exports = tap