rubico 2.6.5 → 2.7.0

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 (382) hide show
  1. package/Transducer.d.ts +1 -1
  2. package/Transducer.js +65 -16
  3. package/__.js +10 -1
  4. package/all.d.ts +2 -2
  5. package/all.js +11 -2
  6. package/always.js +8 -0
  7. package/and.js +6 -0
  8. package/assign.js +9 -0
  9. package/compose.js +33 -8
  10. package/curry.js +18 -0
  11. package/dist/Transducer.es.js +2 -2
  12. package/dist/Transducer.es.min.js +2 -2
  13. package/dist/Transducer.js +2 -2
  14. package/dist/Transducer.min.js +2 -2
  15. package/dist/Transducer.mjs +2 -2
  16. package/dist/__.es.js +2 -2
  17. package/dist/__.es.min.js +2 -2
  18. package/dist/__.js +2 -2
  19. package/dist/__.min.js +2 -2
  20. package/dist/__.mjs +2 -2
  21. package/dist/all.es.js +2 -22
  22. package/dist/all.es.min.js +2 -2
  23. package/dist/all.js +2 -22
  24. package/dist/all.min.js +2 -2
  25. package/dist/all.mjs +2 -22
  26. package/dist/always.es.js +2 -2
  27. package/dist/always.es.min.js +2 -2
  28. package/dist/always.js +2 -2
  29. package/dist/always.min.js +2 -2
  30. package/dist/always.mjs +2 -2
  31. package/dist/and.es.js +2 -2
  32. package/dist/and.es.min.js +2 -2
  33. package/dist/and.js +2 -2
  34. package/dist/and.min.js +2 -2
  35. package/dist/and.mjs +2 -2
  36. package/dist/assign.es.js +2 -2
  37. package/dist/assign.es.min.js +2 -2
  38. package/dist/assign.js +2 -2
  39. package/dist/assign.min.js +2 -2
  40. package/dist/assign.mjs +2 -2
  41. package/dist/compose.es.js +6 -2
  42. package/dist/compose.es.min.js +3 -3
  43. package/dist/compose.js +6 -2
  44. package/dist/compose.min.js +3 -3
  45. package/dist/compose.mjs +6 -2
  46. package/dist/curry.es.js +2 -2
  47. package/dist/curry.es.min.js +2 -2
  48. package/dist/curry.js +2 -2
  49. package/dist/curry.min.js +2 -2
  50. package/dist/curry.mjs +2 -2
  51. package/dist/eq.es.js +2 -2
  52. package/dist/eq.es.min.js +2 -2
  53. package/dist/eq.js +2 -2
  54. package/dist/eq.min.js +2 -2
  55. package/dist/eq.mjs +2 -2
  56. package/dist/every.es.js +2 -2
  57. package/dist/every.es.min.js +2 -2
  58. package/dist/every.js +2 -2
  59. package/dist/every.min.js +2 -2
  60. package/dist/every.mjs +2 -2
  61. package/dist/filter.es.js +5 -3
  62. package/dist/filter.es.min.js +3 -3
  63. package/dist/filter.js +5 -3
  64. package/dist/filter.min.js +3 -3
  65. package/dist/filter.mjs +5 -3
  66. package/dist/flatMap.es.js +2 -2
  67. package/dist/flatMap.es.min.js +2 -2
  68. package/dist/flatMap.js +2 -2
  69. package/dist/flatMap.min.js +2 -2
  70. package/dist/flatMap.mjs +2 -2
  71. package/dist/forEach.es.js +2 -2
  72. package/dist/forEach.es.min.js +2 -2
  73. package/dist/forEach.js +2 -2
  74. package/dist/forEach.min.js +2 -2
  75. package/dist/forEach.mjs +2 -2
  76. package/dist/get.es.js +2 -2
  77. package/dist/get.es.min.js +2 -2
  78. package/dist/get.js +2 -2
  79. package/dist/get.min.js +2 -2
  80. package/dist/get.mjs +2 -2
  81. package/dist/gt.es.js +2 -2
  82. package/dist/gt.es.min.js +2 -2
  83. package/dist/gt.js +2 -2
  84. package/dist/gt.min.js +2 -2
  85. package/dist/gt.mjs +2 -2
  86. package/dist/gte.es.js +2 -2
  87. package/dist/gte.es.min.js +2 -2
  88. package/dist/gte.js +2 -2
  89. package/dist/gte.min.js +2 -2
  90. package/dist/gte.mjs +2 -2
  91. package/dist/lt.es.js +2 -2
  92. package/dist/lt.es.min.js +2 -2
  93. package/dist/lt.js +2 -2
  94. package/dist/lt.min.js +2 -2
  95. package/dist/lt.mjs +2 -2
  96. package/dist/lte.es.js +2 -2
  97. package/dist/lte.es.min.js +2 -2
  98. package/dist/lte.js +2 -2
  99. package/dist/lte.min.js +2 -2
  100. package/dist/lte.mjs +2 -2
  101. package/dist/map.es.js +31 -31
  102. package/dist/map.es.min.js +3 -3
  103. package/dist/map.js +31 -31
  104. package/dist/map.min.js +3 -3
  105. package/dist/map.mjs +31 -31
  106. package/dist/not.es.js +2 -2
  107. package/dist/not.es.min.js +2 -2
  108. package/dist/not.js +2 -2
  109. package/dist/not.min.js +2 -2
  110. package/dist/not.mjs +2 -2
  111. package/dist/omit.es.js +2 -2
  112. package/dist/omit.es.min.js +2 -2
  113. package/dist/omit.js +2 -2
  114. package/dist/omit.min.js +2 -2
  115. package/dist/omit.mjs +2 -2
  116. package/dist/or.es.js +2 -2
  117. package/dist/or.es.min.js +2 -2
  118. package/dist/or.js +2 -2
  119. package/dist/or.min.js +2 -2
  120. package/dist/or.mjs +2 -2
  121. package/dist/pick.es.js +2 -2
  122. package/dist/pick.es.min.js +2 -2
  123. package/dist/pick.js +2 -2
  124. package/dist/pick.min.js +2 -2
  125. package/dist/pick.mjs +2 -2
  126. package/dist/pipe.es.js +6 -2
  127. package/dist/pipe.es.min.js +3 -3
  128. package/dist/pipe.js +6 -2
  129. package/dist/pipe.min.js +3 -3
  130. package/dist/pipe.mjs +6 -2
  131. package/dist/reduce.es.js +9 -9
  132. package/dist/reduce.es.min.js +2 -2
  133. package/dist/reduce.js +9 -9
  134. package/dist/reduce.min.js +2 -2
  135. package/dist/reduce.mjs +9 -9
  136. package/dist/rubico.es.js +49 -59
  137. package/dist/rubico.es.min.js +3 -3
  138. package/dist/rubico.global.js +49 -59
  139. package/dist/rubico.global.min.js +3 -3
  140. package/dist/rubico.js +49 -59
  141. package/dist/rubico.min.js +3 -3
  142. package/dist/rubico.mjs +49 -59
  143. package/dist/set.es.js +2 -2
  144. package/dist/set.es.min.js +2 -2
  145. package/dist/set.js +2 -2
  146. package/dist/set.min.js +2 -2
  147. package/dist/set.mjs +2 -2
  148. package/dist/some.es.js +2 -2
  149. package/dist/some.es.min.js +2 -2
  150. package/dist/some.js +2 -2
  151. package/dist/some.min.js +2 -2
  152. package/dist/some.mjs +2 -2
  153. package/dist/switchCase.es.js +2 -2
  154. package/dist/switchCase.es.min.js +2 -2
  155. package/dist/switchCase.js +2 -2
  156. package/dist/switchCase.min.js +2 -2
  157. package/dist/switchCase.mjs +2 -2
  158. package/dist/tap.es.js +2 -2
  159. package/dist/tap.es.min.js +2 -2
  160. package/dist/tap.js +2 -2
  161. package/dist/tap.min.js +2 -2
  162. package/dist/tap.mjs +2 -2
  163. package/dist/thunkify.es.js +2 -2
  164. package/dist/thunkify.es.min.js +2 -2
  165. package/dist/thunkify.js +2 -2
  166. package/dist/thunkify.min.js +2 -2
  167. package/dist/thunkify.mjs +2 -2
  168. package/dist/transform.es.js +2 -2
  169. package/dist/transform.es.min.js +2 -2
  170. package/dist/transform.js +2 -2
  171. package/dist/transform.min.js +2 -2
  172. package/dist/transform.mjs +2 -2
  173. package/dist/tryCatch.es.js +2 -2
  174. package/dist/tryCatch.es.min.js +2 -2
  175. package/dist/tryCatch.js +2 -2
  176. package/dist/tryCatch.min.js +2 -2
  177. package/dist/tryCatch.mjs +2 -2
  178. package/dist/x/append.es.js +2 -2
  179. package/dist/x/append.es.min.js +2 -2
  180. package/dist/x/append.js +2 -2
  181. package/dist/x/append.min.js +2 -2
  182. package/dist/x/append.mjs +2 -2
  183. package/dist/x/callProp.es.js +2 -2
  184. package/dist/x/callProp.es.min.js +2 -2
  185. package/dist/x/callProp.js +2 -2
  186. package/dist/x/callProp.min.js +2 -2
  187. package/dist/x/callProp.mjs +2 -2
  188. package/dist/x/defaultsDeep.es.js +2 -2
  189. package/dist/x/defaultsDeep.es.min.js +2 -2
  190. package/dist/x/defaultsDeep.js +2 -2
  191. package/dist/x/defaultsDeep.min.js +2 -2
  192. package/dist/x/defaultsDeep.mjs +2 -2
  193. package/dist/x/differenceWith.es.js +2 -2
  194. package/dist/x/differenceWith.es.min.js +2 -2
  195. package/dist/x/differenceWith.js +2 -2
  196. package/dist/x/differenceWith.min.js +2 -2
  197. package/dist/x/differenceWith.mjs +2 -2
  198. package/dist/x/filterOut.es.js +5 -3
  199. package/dist/x/filterOut.es.min.js +3 -3
  200. package/dist/x/filterOut.js +5 -3
  201. package/dist/x/filterOut.min.js +3 -3
  202. package/dist/x/filterOut.mjs +5 -3
  203. package/dist/x/find.es.js +2 -2
  204. package/dist/x/find.es.min.js +2 -2
  205. package/dist/x/find.js +2 -2
  206. package/dist/x/find.min.js +2 -2
  207. package/dist/x/find.mjs +2 -2
  208. package/dist/x/findIndex.es.js +2 -2
  209. package/dist/x/findIndex.es.min.js +2 -2
  210. package/dist/x/findIndex.js +2 -2
  211. package/dist/x/findIndex.min.js +2 -2
  212. package/dist/x/findIndex.mjs +2 -2
  213. package/dist/x/first.es.js +2 -2
  214. package/dist/x/first.es.min.js +2 -2
  215. package/dist/x/first.js +2 -2
  216. package/dist/x/first.min.js +2 -2
  217. package/dist/x/first.mjs +2 -2
  218. package/dist/x/flatten.es.js +2 -2
  219. package/dist/x/flatten.es.min.js +2 -2
  220. package/dist/x/flatten.js +2 -2
  221. package/dist/x/flatten.min.js +2 -2
  222. package/dist/x/flatten.mjs +2 -2
  223. package/dist/x/groupBy.es.js +9 -9
  224. package/dist/x/groupBy.es.min.js +2 -2
  225. package/dist/x/groupBy.js +9 -9
  226. package/dist/x/groupBy.min.js +2 -2
  227. package/dist/x/groupBy.mjs +9 -9
  228. package/dist/x/has.es.js +2 -2
  229. package/dist/x/has.es.min.js +2 -2
  230. package/dist/x/has.js +2 -2
  231. package/dist/x/has.min.js +2 -2
  232. package/dist/x/has.mjs +2 -2
  233. package/dist/x/identity.es.js +2 -2
  234. package/dist/x/identity.es.min.js +2 -2
  235. package/dist/x/identity.js +2 -2
  236. package/dist/x/identity.min.js +2 -2
  237. package/dist/x/identity.mjs +2 -2
  238. package/dist/x/includes.es.js +2 -2
  239. package/dist/x/includes.es.min.js +2 -2
  240. package/dist/x/includes.js +2 -2
  241. package/dist/x/includes.min.js +2 -2
  242. package/dist/x/includes.mjs +2 -2
  243. package/dist/x/isDeepEqual.es.js +2 -2
  244. package/dist/x/isDeepEqual.es.min.js +2 -2
  245. package/dist/x/isDeepEqual.js +2 -2
  246. package/dist/x/isDeepEqual.min.js +2 -2
  247. package/dist/x/isDeepEqual.mjs +2 -2
  248. package/dist/x/isEmpty.es.js +2 -2
  249. package/dist/x/isEmpty.es.min.js +2 -2
  250. package/dist/x/isEmpty.js +2 -2
  251. package/dist/x/isEmpty.min.js +2 -2
  252. package/dist/x/isEmpty.mjs +2 -2
  253. package/dist/x/isEqual.es.js +2 -2
  254. package/dist/x/isEqual.es.min.js +2 -2
  255. package/dist/x/isEqual.js +2 -2
  256. package/dist/x/isEqual.min.js +2 -2
  257. package/dist/x/isEqual.mjs +2 -2
  258. package/dist/x/isFunction.es.js +2 -2
  259. package/dist/x/isFunction.es.min.js +2 -2
  260. package/dist/x/isFunction.js +2 -2
  261. package/dist/x/isFunction.min.js +2 -2
  262. package/dist/x/isFunction.mjs +2 -2
  263. package/dist/x/isIn.es.js +2 -2
  264. package/dist/x/isIn.es.min.js +2 -2
  265. package/dist/x/isIn.js +2 -2
  266. package/dist/x/isIn.min.js +2 -2
  267. package/dist/x/isIn.mjs +2 -2
  268. package/dist/x/isObject.es.js +2 -2
  269. package/dist/x/isObject.es.min.js +2 -2
  270. package/dist/x/isObject.js +2 -2
  271. package/dist/x/isObject.min.js +2 -2
  272. package/dist/x/isObject.mjs +2 -2
  273. package/dist/x/isString.es.js +2 -2
  274. package/dist/x/isString.es.min.js +2 -2
  275. package/dist/x/isString.js +2 -2
  276. package/dist/x/isString.min.js +2 -2
  277. package/dist/x/isString.mjs +2 -2
  278. package/dist/x/keys.es.js +2 -2
  279. package/dist/x/keys.es.min.js +2 -2
  280. package/dist/x/keys.js +2 -2
  281. package/dist/x/keys.min.js +2 -2
  282. package/dist/x/keys.mjs +2 -2
  283. package/dist/x/last.es.js +2 -2
  284. package/dist/x/last.es.min.js +2 -2
  285. package/dist/x/last.js +2 -2
  286. package/dist/x/last.min.js +2 -2
  287. package/dist/x/last.mjs +2 -2
  288. package/dist/x/maxBy.es.js +2 -2
  289. package/dist/x/maxBy.es.min.js +2 -2
  290. package/dist/x/maxBy.js +2 -2
  291. package/dist/x/maxBy.min.js +2 -2
  292. package/dist/x/maxBy.mjs +2 -2
  293. package/dist/x/noop.es.js +2 -2
  294. package/dist/x/noop.es.min.js +2 -2
  295. package/dist/x/noop.js +2 -2
  296. package/dist/x/noop.min.js +2 -2
  297. package/dist/x/noop.mjs +2 -2
  298. package/dist/x/pluck.es.js +31 -31
  299. package/dist/x/pluck.es.min.js +3 -3
  300. package/dist/x/pluck.js +31 -31
  301. package/dist/x/pluck.min.js +3 -3
  302. package/dist/x/pluck.mjs +31 -31
  303. package/dist/x/prepend.es.js +2 -2
  304. package/dist/x/prepend.es.min.js +2 -2
  305. package/dist/x/prepend.js +2 -2
  306. package/dist/x/prepend.min.js +2 -2
  307. package/dist/x/prepend.mjs +2 -2
  308. package/dist/x/size.es.js +2 -2
  309. package/dist/x/size.es.min.js +2 -2
  310. package/dist/x/size.js +2 -2
  311. package/dist/x/size.min.js +2 -2
  312. package/dist/x/size.mjs +2 -2
  313. package/dist/x/trace.es.js +2 -2
  314. package/dist/x/trace.es.min.js +2 -2
  315. package/dist/x/trace.js +2 -2
  316. package/dist/x/trace.min.js +2 -2
  317. package/dist/x/trace.mjs +2 -2
  318. package/dist/x/unionWith.es.js +2 -2
  319. package/dist/x/unionWith.es.min.js +2 -2
  320. package/dist/x/unionWith.js +2 -2
  321. package/dist/x/unionWith.min.js +2 -2
  322. package/dist/x/unionWith.mjs +2 -2
  323. package/dist/x/uniq.es.js +2 -2
  324. package/dist/x/uniq.es.min.js +2 -2
  325. package/dist/x/uniq.js +2 -2
  326. package/dist/x/uniq.min.js +2 -2
  327. package/dist/x/uniq.mjs +2 -2
  328. package/dist/x/unless.es.js +2 -2
  329. package/dist/x/unless.es.min.js +2 -2
  330. package/dist/x/unless.js +2 -2
  331. package/dist/x/unless.min.js +2 -2
  332. package/dist/x/unless.mjs +2 -2
  333. package/dist/x/values.es.js +2 -2
  334. package/dist/x/values.es.min.js +2 -2
  335. package/dist/x/values.js +2 -2
  336. package/dist/x/values.min.js +2 -2
  337. package/dist/x/values.mjs +2 -2
  338. package/dist/x/when.es.js +2 -2
  339. package/dist/x/when.es.min.js +2 -2
  340. package/dist/x/when.js +2 -2
  341. package/dist/x/when.min.js +2 -2
  342. package/dist/x/when.mjs +2 -2
  343. package/eq.d.ts +6 -6
  344. package/eq.js +14 -6
  345. package/es.js +49 -59
  346. package/every.js +19 -5
  347. package/filter.js +87 -47
  348. package/flatMap.js +38 -32
  349. package/forEach.js +107 -13
  350. package/get.js +9 -0
  351. package/gt.js +9 -0
  352. package/gte.js +9 -0
  353. package/index.js +49 -59
  354. package/lte.js +9 -0
  355. package/map.js +198 -103
  356. package/not.js +7 -0
  357. package/omit.d.ts +2 -2
  358. package/omit.js +11 -2
  359. package/or.js +6 -0
  360. package/package.json +1 -3
  361. package/pick.js +9 -0
  362. package/pipe.js +30 -3
  363. package/reduce.js +132 -89
  364. package/set.js +9 -0
  365. package/some.js +17 -3
  366. package/switchCase.js +6 -0
  367. package/tap.js +14 -0
  368. package/thunkify.js +8 -0
  369. package/transform.js +112 -44
  370. package/tryCatch.js +5 -0
  371. package/x/append.js +3 -0
  372. package/x/callProp.js +5 -0
  373. package/x/defaultsDeep.d.ts +2 -2
  374. package/x/defaultsDeep.js +7 -2
  375. package/x/differenceWith.js +5 -0
  376. package/x/find.d.ts +2 -2
  377. package/x/find.js +2 -2
  378. package/x/groupBy.d.ts +2 -2
  379. package/x/groupBy.js +2 -2
  380. package/x/pluck.d.ts +2 -2
  381. package/x/pluck.js +2 -2
  382. package/x/unionWith.test.js +3 -3
package/Transducer.d.ts CHANGED
@@ -202,7 +202,7 @@ export function passthrough(reducer: any): any;
202
202
  *
203
203
  * ```javascript [playground]
204
204
  * const db = new Map()
205
- * db.set('a', { id: 'a', name: 'George' })
205
+ * db.set('a', { id: 'a', name: 'John' })
206
206
  * db.set('b', { id: 'b', name: 'Jane' })
207
207
  * db.set('c', { id: 'c', name: 'Jill' })
208
208
  * db.set('e', { id: 'e', name: 'Jim' })
package/Transducer.js CHANGED
@@ -24,8 +24,6 @@ const Transducer = {}
24
24
  * type Reducer = (
25
25
  * accumulator any,
26
26
  * value any,
27
- * indexOrKey? number|string,
28
- * collection? Foldable,
29
27
  * )=>(nextAccumulator Promise|any)
30
28
  *
31
29
  * type Transducer = Reducer=>Reducer
@@ -63,7 +61,16 @@ const Transducer = {}
63
61
  * ) // [1, 4, 9, 16, 25]
64
62
  * ```
65
63
  *
66
- * Read more on transducers [here](/blog/transducers-crash-course-rubico-v2).
64
+ * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
65
+ *
66
+ * See also:
67
+ * * [thunkify](/docs/thunkify)
68
+ * * [Transducer.filter](/docs/Transducer.filter)
69
+ * * [Transducer.flatMap](/docs/Transducer.flatMap)
70
+ * * [Transducer.forEach](/docs/Transducer.forEach)
71
+ * * [Transducer.passthrough](/docs/Transducer.passthrough)
72
+ * * [Transducer.tryCatch](/docs/Transducer.tryCatch)
73
+ *
67
74
  */
68
75
  Transducer.map = function transducerMap(mapper) {
69
76
  return curry2(reducerMap, __, mapper)
@@ -77,8 +84,6 @@ Transducer.map = function transducerMap(mapper) {
77
84
  * type Reducer = (
78
85
  * accumulator any,
79
86
  * value any,
80
- * indexOrKey? number|string,
81
- * collection? Foldable,
82
87
  * )=>(nextAccumulator Promise|any)
83
88
  *
84
89
  * type Transducer = Reducer=>Reducer
@@ -100,6 +105,17 @@ Transducer.map = function transducerMap(mapper) {
100
105
  * [1, 2, 3, 4, 5].reduce(concatOddNumbers, []),
101
106
  * ) // [1, 3, 5]
102
107
  * ```
108
+ *
109
+ * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
110
+ *
111
+ * See also:
112
+ * * [thunkify](/docs/thunkify)
113
+ * * [Transducer.map](/docs/Transducer.map)
114
+ * * [Transducer.flatMap](/docs/Transducer.flatMap)
115
+ * * [Transducer.forEach](/docs/Transducer.forEach)
116
+ * * [Transducer.passthrough](/docs/Transducer.passthrough)
117
+ * * [Transducer.tryCatch](/docs/Transducer.tryCatch)
118
+ *
103
119
  */
104
120
  Transducer.filter = function transducerFilter(predicate) {
105
121
  return curry2(reducerFilter, __, predicate)
@@ -113,8 +129,6 @@ Transducer.filter = function transducerFilter(predicate) {
113
129
  * type Reducer = (
114
130
  * accumulator any,
115
131
  * value any,
116
- * indexOrKey? number|string,
117
- * collection? Foldable,
118
132
  * )=>(nextAccumulator Promise|any)
119
133
  *
120
134
  * type Transducer = Reducer=>Reducer
@@ -135,7 +149,16 @@ Transducer.filter = function transducerFilter(predicate) {
135
149
  * ) // [1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5, 25, 125]
136
150
  * ```
137
151
  *
138
- * Read more on transducers [here](/blog/transducers-crash-course-rubico-v2).
152
+ * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
153
+ *
154
+ * See also:
155
+ * * [thunkify](/docs/thunkify)
156
+ * * [Transducer.map](/docs/Transducer.map)
157
+ * * [Transducer.filter](/docs/Transducer.filter)
158
+ * * [Transducer.forEach](/docs/Transducer.forEach)
159
+ * * [Transducer.passthrough](/docs/Transducer.passthrough)
160
+ * * [Transducer.tryCatch](/docs/Transducer.tryCatch)
161
+ *
139
162
  */
140
163
  Transducer.flatMap = function transducerFlatMap(flatMapper) {
141
164
  return curry2(reducerFlatMap, __, flatMapper)
@@ -149,8 +172,6 @@ Transducer.flatMap = function transducerFlatMap(flatMapper) {
149
172
  * type Reducer = (
150
173
  * accumulator any,
151
174
  * value any,
152
- * indexOrKey? number|string,
153
- * collection? Foldable,
154
175
  * )=>(nextAccumulator Promise|any)
155
176
  *
156
177
  * type Transducer = Reducer=>Reducer
@@ -168,6 +189,17 @@ Transducer.flatMap = function transducerFlatMap(flatMapper) {
168
189
  * Transducer.forEach(console.log), // 1 4 9 16 25
169
190
  * ]), null)
170
191
  * ```
192
+ *
193
+ * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
194
+ *
195
+ * See also:
196
+ * * [thunkify](/docs/thunkify)
197
+ * * [Transducer.map](/docs/Transducer.map)
198
+ * * [Transducer.filter](/docs/Transducer.filter)
199
+ * * [Transducer.flatMap](/docs/Transducer.flatMap)
200
+ * * [Transducer.passthrough](/docs/Transducer.passthrough)
201
+ * * [Transducer.tryCatch](/docs/Transducer.tryCatch)
202
+ *
171
203
  */
172
204
  Transducer.forEach = function transducerForEach(func) {
173
205
  return curry2(reducerForEach, __, func)
@@ -181,8 +213,6 @@ Transducer.forEach = function transducerForEach(func) {
181
213
  * type Reducer = (
182
214
  * accumulator any,
183
215
  * value any,
184
- * indexOrKey? number|string,
185
- * collection? Foldable,
186
216
  * )=>(nextAccumulator Promise|any)
187
217
  *
188
218
  * type Transducer = Reducer=>Reducer
@@ -205,6 +235,17 @@ Transducer.forEach = function transducerForEach(func) {
205
235
  * transform(createAsyncNumbers(), Transducer.passthrough, [])
206
236
  * .then(console.log) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
207
237
  * ```
238
+ *
239
+ * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
240
+ *
241
+ * See also:
242
+ * * [thunkify](/docs/thunkify)
243
+ * * [Transducer.map](/docs/Transducer.map)
244
+ * * [Transducer.filter](/docs/Transducer.filter)
245
+ * * [Transducer.flatMap](/docs/Transducer.flatMap)
246
+ * * [Transducer.forEach](/docs/Transducer.forEach)
247
+ * * [Transducer.tryCatch](/docs/Transducer.tryCatch)
248
+ *
208
249
  */
209
250
  Transducer.passthrough = function transducerPassthrough(reducer) {
210
251
  return reducer
@@ -218,8 +259,6 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
218
259
  * type Reducer = (
219
260
  * accumulator any,
220
261
  * item any,
221
- * indexOrKey? number|string,
222
- * collection? Foldable,
223
262
  * )=>(nextAccumulator Promise|any)
224
263
  *
225
264
  * type Transducer = Reducer=>Reducer
@@ -235,7 +274,7 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
235
274
  *
236
275
  * ```javascript [playground]
237
276
  * const db = new Map()
238
- * db.set('a', { id: 'a', name: 'George' })
277
+ * db.set('a', { id: 'a', name: 'John' })
239
278
  * db.set('b', { id: 'b', name: 'Jane' })
240
279
  * db.set('c', { id: 'c', name: 'Jill' })
241
280
  * db.set('e', { id: 'e', name: 'Jim' })
@@ -259,7 +298,17 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
259
298
  * // original userId for which the error was thrown is provided
260
299
  * }), null)
261
300
  * ```
262
-
301
+ *
302
+ * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
303
+ *
304
+ * See also:
305
+ * * [thunkify](/docs/thunkify)
306
+ * * [Transducer.map](/docs/Transducer.map)
307
+ * * [Transducer.filter](/docs/Transducer.filter)
308
+ * * [Transducer.flatMap](/docs/Transducer.flatMap)
309
+ * * [Transducer.forEach](/docs/Transducer.forEach)
310
+ * * [Transducer.passthrough](/docs/Transducer.passthrough)
311
+ *
263
312
  */
264
313
  Transducer.tryCatch = function transducerTryCatch(transducerTryer, catcher) {
265
314
  return curry3(reducerTryCatch, __, transducerTryer, catcher)
package/__.js CHANGED
@@ -5,7 +5,7 @@ const __ = require('./_internal/placeholder')
5
5
  *
6
6
  * @synopsis
7
7
  * ```coffeescript [specscript]
8
- * __ = Symbol(placeholder)
8
+ * __ Symbol
9
9
  * ```
10
10
  *
11
11
  * @description
@@ -16,6 +16,15 @@ const __ = require('./_internal/placeholder')
16
16
  * curry.arity(3, Array.of, __, 2, 3)(1),
17
17
  * ) // [1, 2, 3]
18
18
  * ```
19
+ *
20
+ * See also:
21
+ * * [eq](/docs/eq)
22
+ * * [thunkify](/docs/thunkify)
23
+ * * [always](/docs/always)
24
+ * * [curry](/docs/curry)
25
+ * * [curry.arity](/docs/curry.arity)
26
+ * * [Transducer.map](/docs/Transducer.map)
27
+ *
19
28
  */
20
29
 
21
30
  module.exports = __
package/all.d.ts CHANGED
@@ -46,7 +46,7 @@ export = all;
46
46
  * const identity = value => value
47
47
  *
48
48
  * const userbase = new Map()
49
- * userbase.set('1', { _id: 1, name: 'George' })
49
+ * userbase.set('1', { _id: 1, name: 'John' })
50
50
  *
51
51
  * const getUserByID = async id => userbase.get(id)
52
52
  *
@@ -60,7 +60,7 @@ export = all;
60
60
  * }),
61
61
  * ])
62
62
  *
63
- * getAndLogUserById('1') // Got user {"_id":1,"name":"George"} by id 1
63
+ * getAndLogUserById('1') // Got user {"_id":1,"name":"John"} by id 1
64
64
  * ```
65
65
  *
66
66
  * @execution concurrent
package/all.js CHANGED
@@ -96,7 +96,7 @@ const _allValues = function (values) {
96
96
  * const identity = value => value
97
97
  *
98
98
  * const userbase = new Map()
99
- * userbase.set('1', { _id: 1, name: 'George' })
99
+ * userbase.set('1', { _id: 1, name: 'John' })
100
100
  *
101
101
  * const getUserByID = async id => userbase.get(id)
102
102
  *
@@ -110,7 +110,7 @@ const _allValues = function (values) {
110
110
  * }),
111
111
  * ])
112
112
  *
113
- * getAndLogUserById('1') // Got user {"_id":1,"name":"George"} by id 1
113
+ * getAndLogUserById('1') // Got user {"_id":1,"name":"John"} by id 1
114
114
  * ```
115
115
  *
116
116
  * Values may be provided along with functions, in which case they are set on the result object or array directly. If any of these values are promises, they are resolved for their values before being set on the result object or array.
@@ -141,6 +141,15 @@ const _allValues = function (values) {
141
141
  * ]).then(console.log) // [2, 3, 4]
142
142
  * ```
143
143
  *
144
+ * See also:
145
+ * * [pipe](/docs/pipe)
146
+ * * [assign](/docs/assign)
147
+ * * [get](/docs/get)
148
+ * * [set](/docs/set)
149
+ * * [pick](/docs/pick)
150
+ * * [omit](/docs/omit)
151
+ * * [forEach](/docs/forEach)
152
+ *
144
153
  * @execution concurrent
145
154
  */
146
155
  const all = function (...args) {
package/always.js CHANGED
@@ -18,6 +18,14 @@ const always = require('./_internal/always')
18
18
  * console.log(always5()) // 5
19
19
  * console.log(always5()) // 5
20
20
  * ```
21
+ *
22
+ * See also:
23
+ * * [eq](/docs/eq)
24
+ * * [thunkify](/docs/thunkify)
25
+ * * [curry](/docs/curry)
26
+ * * [__](/docs/__)
27
+ * * [Transducer.map](/docs/Transducer.map)
28
+ *
21
29
  */
22
30
 
23
31
  module.exports = always
package/and.js CHANGED
@@ -140,6 +140,12 @@ const areAllPredicatesTruthy = function (args, predicates) {
140
140
  * ]).then(console.log) // true
141
141
  * ```
142
142
  *
143
+ * See also:
144
+ * * [some](/docs/some)
145
+ * * [or](/docs/or)
146
+ * * [not](/docs/not)
147
+ * * [eq](/docs/eq)
148
+ *
143
149
  * @execution series
144
150
  *
145
151
  * @note ...args slows down here by an order of magnitude
package/assign.js CHANGED
@@ -84,6 +84,15 @@ const _assign = function (object, funcs) {
84
84
  * }).then(console.log)
85
85
  * ```
86
86
  *
87
+ * See also:
88
+ * * [pipe](/docs/pipe)
89
+ * * [all](/docs/all)
90
+ * * [get](/docs/get)
91
+ * * [set](/docs/set)
92
+ * * [pick](/docs/pick)
93
+ * * [omit](/docs/omit)
94
+ * * [forEach](/docs/forEach)
95
+ *
87
96
  * @execution concurrent
88
97
  */
89
98
  const assign = function (arg0, arg1) {
package/compose.js CHANGED
@@ -10,22 +10,37 @@ const funcConcat = require('./_internal/funcConcat')
10
10
  *
11
11
  * @synopsis
12
12
  * ```coffeescript [specscript]
13
- * compose(funcs Array<function>)(...args) -> result Promise|any
13
+ * funcs Array<function>
14
+ * args Array<any>
15
+ * argsWithPromises Array<Promise|any>
14
16
  *
15
- * compose(...args, funcs Array<function>) -> result Promise|any
17
+ * compose(funcs)(...args) -> result Promise|any
18
+ *
19
+ * compose(...argsWithPromises, funcs) -> result Promise|any
20
+ *
21
+ * compose(...funcs)(...args) -> result Promise|any
16
22
  * ```
17
23
  *
18
24
  * @description
19
- * Creates a function composition from an array of functions, where each function passes its return value as a single argument to the previous function until all functions have executed. The last function is called with the arguments to the composition, while the result of a function composition is the return value of its first function. If any function of the composition is asynchronous, the result of the execution is a Promise. `compose` is effectively `pipe` in reverse.
25
+ * Creates a function composition from multiple functions. Each function in the composition is evaluated starting from the last function in the composition in series, passing its return value as an argument to the previous function. The result of a composition execution is the return value of the first function in the composition. If any function in the composition is asynchronous, the result of the composition execution is a Promise.
26
+ *
27
+ * ```javascript [playground]
28
+ * const f = x => x * 2
29
+ * const g = x => x + 3
30
+ *
31
+ * const result = compose(5, [f, g])
32
+ * console.log(result) // 16
33
+ * ```
34
+ *
35
+ * `compose` supports a mathematical API
20
36
  *
21
37
  * ```javascript [playground]
22
- * const f = number => number * 2
38
+ * const f = x => x * 2
39
+ * const g = x => x + 1
23
40
  *
24
- * const g = number => number + 3
41
+ * const composition = compose(f, g)
25
42
  *
26
- * console.log(
27
- * compose(5, [f, g]),
28
- * ) // 16
43
+ * console.log(composition(1)) // 4
29
44
  * ```
30
45
  *
31
46
  * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
@@ -35,8 +50,18 @@ const funcConcat = require('./_internal/funcConcat')
35
50
  * console.log, // [1, 2, 3]
36
51
  * ])
37
52
  * ```
53
+ *
54
+ * See also:
55
+ * * [pipe](/docs/pipe)
56
+ * * [tap](/docs/tap)
57
+ * * [switchCase](/docs/switchCase)
58
+ * * [tryCatch](/docs/tryCatch)
38
59
  */
39
60
  const compose = function (...args) {
61
+ if (typeof args[0] == 'function') {
62
+ return args.reduceRight(funcConcat)
63
+ }
64
+
40
65
  const funcs = args.pop()
41
66
  const composition = funcs.reduceRight(funcConcat)
42
67
 
package/curry.js CHANGED
@@ -35,6 +35,15 @@ const curryArity = require('./_internal/curryArity')
35
35
  * console.log(curry(add, __, __, 'c')('a', 'b')) // abc
36
36
  * console.log(curry(add, __, __, 'c')(__, 'b')('a')) // abc
37
37
  * ```
38
+ *
39
+ * See also:
40
+ * * [eq](/docs/eq)
41
+ * * [thunkify](/docs/thunkify)
42
+ * * [always](/docs/always)
43
+ * * [curry.arity](/docs/curry.arity)
44
+ * * [__](/docs/__)
45
+ * * [Transducer.map](/docs/Transducer.map)
46
+ *
38
47
  */
39
48
  const curry = (func, ...args) => curryArity(func.length, func, args)
40
49
 
@@ -66,6 +75,15 @@ const curry = (func, ...args) => curryArity(func.length, func, args)
66
75
  *
67
76
  * console.log(curry.arity(2, add, 1, 2)) // 3
68
77
  * ```
78
+ *
79
+ * See also:
80
+ * * [eq](/docs/eq)
81
+ * * [thunkify](/docs/thunkify)
82
+ * * [always](/docs/always)
83
+ * * [curry](/docs/curry)
84
+ * * [__](/docs/__)
85
+ * * [Transducer.map](/docs/Transducer.map)
86
+ *
69
87
  */
70
88
  curry.arity = function curryArity_(arity, func, ...args) {
71
89
  return curryArity(arity, func, args)
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const isPromise=r=>null!=r&&"function"==typeof r.then,funcConcat=(r,e)=>function(...n){const t=r(...n);return isPromise(t)?t.then(e):e(t)},__=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)},reducerMap=(r,e)=>function(n,t){const c=e(t);return isPromise(c)?c.then(curry2(r,n,__)):r(n,c)},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)},thunkify2=(r,e,n)=>function(){return r(e,n)},thunkConditional=(r,e,n)=>r?e():n(),always=r=>function(){return r},reducerFilter=(r,e)=>function(n,t){const c=e(t);return isPromise(c)?c.then(curry3(thunkConditional,__,thunkify2(r,n,t),always(n))):c?r(n,t):n},isArray=Array.isArray,objectValues=Object.values,objectProto=Object.prototype,nativeObjectToString=objectProto.toString,objectToString=r=>nativeObjectToString.call(r),generatorFunctionTag="[object GeneratorFunction]",isGeneratorFunction=r=>objectToString(r)==generatorFunctionTag,asyncGeneratorFunctionTag="[object AsyncGeneratorFunction]",isAsyncGeneratorFunction=r=>objectToString(r)==asyncGeneratorFunctionTag,iteratorReduceAsync=async function(r,e,n){let t=r.next();if(t.done)return n;for(;!t.done;)n=e(n,t.value),isPromise(n)&&(n=await n),t=r.next();return n},iteratorReduce=function(r,e,n){let t=r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=r.next());!t.done;){if(n=e(n,t.value),isPromise(n))return n.then(curry3(iteratorReduceAsync,r,e,__));t=r.next()}return n},asyncIteratorReduce=async function(r,e,n){let t=await r.next();if(t.done)return n;for(void 0===n&&(n=t.value,t=await r.next());!t.done;)n=await e(n,t.value),t=await r.next();return n},symbolIterator=Symbol.iterator,symbolAsyncIterator=Symbol.asyncIterator,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)},curry4ResolveArg0=(r,e,n,t)=>function(c){return r(c,e,n,t)},curry4ResolveArg1=(r,e,n,t)=>function(c){return r(e,c,n,t)},curry4ResolveArg2=(r,e,n,t)=>function(c){return r(e,n,c,t)},curry4ResolveArg3=(r,e,n,t)=>function(c){return r(e,n,t,c)},curry4=function(r,e,n,t,c){return e==__?curry4ResolveArg0(r,n,t,c):n==__?curry4ResolveArg1(r,e,t,c):t==__?curry4ResolveArg2(r,e,n,c):curry4ResolveArg3(r,e,n,t)},arrayReduceAsync=async function(r,e,n,t){const c=r.length;for(;++t<c;)n=e(n,r[t],t,r),isPromise(n)&&(n=await n);return n},arrayReduce=function(r,e,n){const t=r.length;let c=-1;for(void 0===n&&(n=r[++c]);++c<t;)if(n=e(n,r[c],c,r),isPromise(n))return n.then(curry4(arrayReduceAsync,r,e,__,c));return n},curry5ResolveArg0=(r,e,n,t,c)=>function(o){return r(o,e,n,t,c)},curry5ResolveArg1=(r,e,n,t,c)=>function(o){return r(e,o,n,t,c)},curry5ResolveArg2=(r,e,n,t,c)=>function(o){return r(e,n,o,t,c)},curry5ResolveArg3=(r,e,n,t,c)=>function(o){return r(e,n,t,o,c)},curry5ResolveArg4=(r,e,n,t,c)=>function(o){return r(e,n,t,c,o)},curry5=function(r,e,n,t,c,o){return e==__?curry5ResolveArg0(r,n,t,c,o):n==__?curry5ResolveArg1(r,e,t,c,o):t==__?curry5ResolveArg2(r,e,n,c,o):c==__?curry5ResolveArg3(r,e,n,t,o):curry5ResolveArg4(r,e,n,t,c)},objectKeys=Object.keys,objectReduceAsync=async function(r,e,n,t,c){const o=t.length;for(;++c<o;){const o=t[c];n=e(n,r[o],o,r),isPromise(n)&&(n=await n)}return n},objectReduce=function(r,e,n){const t=objectKeys(r),c=t.length;let o=-1;for(void 0===n&&(n=r[t[++o]]);++o<c;){const c=t[o];if(n=e(n,r[c],c,r),isPromise(n))return n.then(curry5(objectReduceAsync,r,e,__,t,o))}return n},mapReduceAsync=async function(r,e,n,t){for(const[c,o]of t)n=e(n,o,c,r),isPromise(n)&&(n=await n);return n},mapReduce=function(r,e,n){const t=r.entries();if(void 0===n){const r=t.next();if(r.done)return n;n=r.value[1]}for(const[c,o]of t)if(n=e(n,o,c,r),isPromise(n))return n.then(curry4(mapReduceAsync,r,e,__,t));return n},reducerConcat=(r,e)=>function(n,t){const c=r(n,t);return isPromise(c)?c.then(curry2(e,__,t)):e(c,t)},genericReduce=function(r,e,n){return isArray(r)?arrayReduce(r,e,n):null==r?void 0===n?curry2(e,r,__):e(n,r):r.constructor==Map?mapReduce(r,e,n):"function"==typeof r[symbolIterator]?iteratorReduce(r[symbolIterator](),e,n):"function"==typeof r[symbolAsyncIterator]?asyncIteratorReduce(r[symbolAsyncIterator](),e,n):"function"==typeof r.reduce?r.reduce(e,n):"function"==typeof r.chain?r.chain(curry2(e,n,__)):"function"==typeof r.flatMap?r.flatMap(curry2(e,n,__)):r.constructor==Object?objectReduce(r,e,n):void 0===n?curry2(e,r,__):e(n,r)},reducerFlatMap=(r,e)=>function(n,t){const c=e(t);return isPromise(c)?c.then(curry3(genericReduce,__,r,n)):genericReduce(c,r,n)},reducerForEach=(r,e)=>function(n,t){const c=e(t);return isPromise(c)?c.then(thunkify2(r,n,t)):r(n,t)},_reducerTryCatchErrorHandler=function(r,e,n,t,c){const o=r(n,c);return isPromise(o)?o.then(curry2(e,t,__)):e(t,o)},reducerTryCatch=function(r,e,n){const t=e(r);return function(e,c){try{const o=t(e,c);return isPromise(o)?o.catch(curry5(_reducerTryCatchErrorHandler,n,r,__,e,c)):o}catch(t){return _reducerTryCatchErrorHandler(n,r,t,e,c)}}},Transducer={map:function(r){return curry2(reducerMap,__,r)},filter:function(r){return curry2(reducerFilter,__,r)},flatMap:function(r){return curry2(reducerFlatMap,__,r)},forEach:function(r){return curry2(reducerForEach,__,r)},passthrough:function(r){return r},tryCatch:function(r,e){return curry3(reducerTryCatch,__,r,e)}};export default Transducer;
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/__.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const __ = Symbol.for('placeholder')
package/dist/__.es.min.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const __=Symbol.for("placeholder");export default __;
package/dist/__.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/__.min.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/__.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const __ = Symbol.for('placeholder')
package/dist/all.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -301,26 +301,6 @@ const all = function (...args) {
301
301
  return isArray(resolversOrValues)
302
302
  ? functionArrayAll(resolversOrValues, argValues)
303
303
  : functionObjectAll(resolversOrValues, argValues)
304
-
305
- /*
306
- ////////////////////////////////////////////////////////////////
307
- const funcs = args.pop()
308
- if (args.length == 0) {
309
- return isArray(funcs)
310
- ? curryArgs2(functionArrayAll, funcs, __)
311
- : curryArgs2(functionObjectAll, funcs, __)
312
- }
313
-
314
- if (areAnyValuesPromises(args)) {
315
- return isArray(funcs)
316
- ? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
317
- : promiseAll(args).then(curry2(functionObjectAll, funcs, __))
318
- }
319
-
320
- return isArray(funcs)
321
- ? functionArrayAll(funcs, args)
322
- : functionObjectAll(funcs, args)
323
- */
324
304
  }
325
305
 
326
306
  all.series = function allSeries(...args) {
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
  const isPromise=r=>null!=r&&"function"==typeof r.then,isArray=Array.isArray,areAnyValuesPromises=function(r){if(isArray(r)){const n=r.length;let e=-1;for(;++e<n;){const n=r[e];if(isPromise(n))return!0}return!1}for(const n in r){const e=r[n];if(isPromise(e))return!0}return!1},areAllValuesNonfunctions=function(r){if(isArray(r)){const n=r.length;let e=-1;for(;++e<n;)if("function"==typeof r[e])return!1;return!0}for(const n in r)if("function"==typeof r[n])return!1;return!0},promiseAll=Promise.all.bind(Promise),promiseObjectAllExecutor=r=>function(n){const e={};let t=0;for(const o in r){const u=r[o];isPromise(u)?(t+=1,u.then((r=>function(o){e[r]=o,t-=1,0==t&&n(e)})(o))):e[o]=u}0==t&&n(e)},promiseObjectAll=r=>new Promise(promiseObjectAllExecutor(r)),__=Symbol.for("placeholder"),curry2ResolveArg0=(r,n)=>function(e){return r(e,n)},curry2ResolveArg1=(r,n)=>function(e){return r(n,e)},curry2=function(r,n,e){return n==__?curry2ResolveArg0(r,e):curry2ResolveArg1(r,n)},curryArgs2ResolveArgs0=(r,n,e)=>function(...e){return r(e,n)},curryArgs2ResolveArgs1=(r,n,e)=>function(...e){return r(n,e)},curryArgs2=function(r,n,e){return n==__?curryArgs2ResolveArgs0(r,e):curryArgs2ResolveArgs1(r,n)},functionArrayAll=function(r,n){const e=r.length,t=Array(e);let o=-1,u=!1;for(;++o<e;){const e=r[o],s="function"==typeof e?e(...n):e;isPromise(s)&&(u=!0),t[o]=s}return u?promiseAll(t):t},funcConcat=(r,n)=>function(...e){const t=r(...e);return isPromise(t)?t.then(n):n(t)},curry3ResolveArg0=(r,n,e)=>function(t){return r(t,n,e)},curry3ResolveArg1=(r,n,e)=>function(t){return r(n,t,e)},curry3ResolveArg2=(r,n,e)=>function(t){return r(n,e,t)},curry3=function(r,n,e,t){return n==__?curry3ResolveArg0(r,e,t):e==__?curry3ResolveArg1(r,n,t):curry3ResolveArg2(r,n,e)},curry4ResolveArg0=(r,n,e,t)=>function(o){return r(o,n,e,t)},curry4ResolveArg1=(r,n,e,t)=>function(o){return r(n,o,e,t)},curry4ResolveArg2=(r,n,e,t)=>function(o){return r(n,e,o,t)},curry4ResolveArg3=(r,n,e,t)=>function(o){return r(n,e,t,o)},curry4=function(r,n,e,t,o){return n==__?curry4ResolveArg0(r,e,t,o):e==__?curry4ResolveArg1(r,n,t,o):t==__?curry4ResolveArg2(r,n,e,o):curry4ResolveArg3(r,n,e,t)},objectSet=function(r,n,e){return r[n]=e,r},asyncFunctionArrayAllSeries=async function(r,n,e,t){const o=r.length;for(;++t<o;){const o=r[t](...n);e[t]=isPromise(o)?await o:o}return e},functionArrayAllSeries=function(r,n){const e=r.length,t=[];let o=-1;for(;++o<e;){const e=r[o](...n);if(isPromise(e))return e.then(funcConcat(curry3(objectSet,t,o,__),curry4(asyncFunctionArrayAllSeries,r,n,__,o)));t[o]=e}return t},always=r=>function(){return r},functionObjectAll=function(r,n){const e={},t=[];for(const o in r){const u=r[o],s="function"==typeof u?u(...n):u;isPromise(s)?t.push(s.then(curry3(objectSet,e,o,__))):e[o]=s}return 0==t.length?e:promiseAll(t).then(always(e))},_allValues=function(r){return isArray(r)?areAnyValuesPromises(r)?promiseAll(r):r:areAnyValuesPromises(r)?promiseObjectAll(r):r},all=function(...r){if(1==r.length){const n=r[0];return isPromise(n)?n.then(_allValues):areAllValuesNonfunctions(n)?_allValues(n):isArray(n)?curryArgs2(functionArrayAll,n,__):curryArgs2(functionObjectAll,n,__)}const n=r[r.length-1],e=r.slice(0,-1);return areAnyValuesPromises(e)?isArray(n)?promiseAll(e).then(curry2(functionArrayAll,n,__)):promiseAll(e).then(curry2(functionObjectAll,n,__)):isArray(n)?functionArrayAll(n,e):functionObjectAll(n,e)};all.series=function(...r){const n=r.pop();return 0==r.length?curryArgs2(functionArrayAllSeries,n,__):areAnyValuesPromises(r)?promiseAll(r).then(curry2(functionArrayAllSeries,n,__)):functionArrayAllSeries(n,r)};export default all;
package/dist/all.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -307,26 +307,6 @@ const all = function (...args) {
307
307
  return isArray(resolversOrValues)
308
308
  ? functionArrayAll(resolversOrValues, argValues)
309
309
  : functionObjectAll(resolversOrValues, argValues)
310
-
311
- /*
312
- ////////////////////////////////////////////////////////////////
313
- const funcs = args.pop()
314
- if (args.length == 0) {
315
- return isArray(funcs)
316
- ? curryArgs2(functionArrayAll, funcs, __)
317
- : curryArgs2(functionObjectAll, funcs, __)
318
- }
319
-
320
- if (areAnyValuesPromises(args)) {
321
- return isArray(funcs)
322
- ? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
323
- : promiseAll(args).then(curry2(functionObjectAll, funcs, __))
324
- }
325
-
326
- return isArray(funcs)
327
- ? functionArrayAll(funcs, args)
328
- : functionObjectAll(funcs, args)
329
- */
330
310
  }
331
311
 
332
312
  all.series = function allSeries(...args) {
package/dist/all.min.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
package/dist/all.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v2.6.2
2
+ * rubico v2.7.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2024 Richard Tong
4
+ * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -301,26 +301,6 @@ const all = function (...args) {
301
301
  return isArray(resolversOrValues)
302
302
  ? functionArrayAll(resolversOrValues, argValues)
303
303
  : functionObjectAll(resolversOrValues, argValues)
304
-
305
- /*
306
- ////////////////////////////////////////////////////////////////
307
- const funcs = args.pop()
308
- if (args.length == 0) {
309
- return isArray(funcs)
310
- ? curryArgs2(functionArrayAll, funcs, __)
311
- : curryArgs2(functionObjectAll, funcs, __)
312
- }
313
-
314
- if (areAnyValuesPromises(args)) {
315
- return isArray(funcs)
316
- ? promiseAll(args).then(curry2(functionArrayAll, funcs, __))
317
- : promiseAll(args).then(curry2(functionObjectAll, funcs, __))
318
- }
319
-
320
- return isArray(funcs)
321
- ? functionArrayAll(funcs, args)
322
- : functionObjectAll(funcs, args)
323
- */
324
304
  }
325
305
 
326
306
  all.series = function allSeries(...args) {