rubico 2.7.1 → 2.7.3

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 (355) hide show
  1. package/all.js +29 -30
  2. package/and.js +25 -14
  3. package/assign.js +15 -23
  4. package/compose.js +2 -4
  5. package/dist/Transducer.es.js +1 -1
  6. package/dist/Transducer.es.min.js +1 -1
  7. package/dist/Transducer.js +1 -1
  8. package/dist/Transducer.min.js +1 -1
  9. package/dist/Transducer.mjs +1 -1
  10. package/dist/__.es.js +1 -1
  11. package/dist/__.es.min.js +1 -1
  12. package/dist/__.js +1 -1
  13. package/dist/__.min.js +1 -1
  14. package/dist/__.mjs +1 -1
  15. package/dist/all.es.js +1 -1
  16. package/dist/all.es.min.js +1 -1
  17. package/dist/all.js +1 -1
  18. package/dist/all.min.js +1 -1
  19. package/dist/all.mjs +1 -1
  20. package/dist/always.es.js +1 -1
  21. package/dist/always.es.min.js +1 -1
  22. package/dist/always.js +1 -1
  23. package/dist/always.min.js +1 -1
  24. package/dist/always.mjs +1 -1
  25. package/dist/and.es.js +1 -1
  26. package/dist/and.es.min.js +1 -1
  27. package/dist/and.js +1 -1
  28. package/dist/and.min.js +1 -1
  29. package/dist/and.mjs +1 -1
  30. package/dist/assign.es.js +1 -1
  31. package/dist/assign.es.min.js +1 -1
  32. package/dist/assign.js +1 -1
  33. package/dist/assign.min.js +1 -1
  34. package/dist/assign.mjs +1 -1
  35. package/dist/compose.es.js +1 -1
  36. package/dist/compose.es.min.js +1 -1
  37. package/dist/compose.js +1 -1
  38. package/dist/compose.min.js +1 -1
  39. package/dist/compose.mjs +1 -1
  40. package/dist/curry.es.js +1 -1
  41. package/dist/curry.es.min.js +1 -1
  42. package/dist/curry.js +1 -1
  43. package/dist/curry.min.js +1 -1
  44. package/dist/curry.mjs +1 -1
  45. package/dist/eq.es.js +1 -1
  46. package/dist/eq.es.min.js +1 -1
  47. package/dist/eq.js +1 -1
  48. package/dist/eq.min.js +1 -1
  49. package/dist/eq.mjs +1 -1
  50. package/dist/every.es.js +1 -1
  51. package/dist/every.es.min.js +1 -1
  52. package/dist/every.js +1 -1
  53. package/dist/every.min.js +1 -1
  54. package/dist/every.mjs +1 -1
  55. package/dist/filter.es.js +1 -1
  56. package/dist/filter.es.min.js +1 -1
  57. package/dist/filter.js +1 -1
  58. package/dist/filter.min.js +1 -1
  59. package/dist/filter.mjs +1 -1
  60. package/dist/flatMap.es.js +1 -1
  61. package/dist/flatMap.es.min.js +1 -1
  62. package/dist/flatMap.js +1 -1
  63. package/dist/flatMap.min.js +1 -1
  64. package/dist/flatMap.mjs +1 -1
  65. package/dist/forEach.es.js +1 -1
  66. package/dist/forEach.es.min.js +1 -1
  67. package/dist/forEach.js +1 -1
  68. package/dist/forEach.min.js +1 -1
  69. package/dist/forEach.mjs +1 -1
  70. package/dist/get.es.js +1 -1
  71. package/dist/get.es.min.js +1 -1
  72. package/dist/get.js +1 -1
  73. package/dist/get.min.js +1 -1
  74. package/dist/get.mjs +1 -1
  75. package/dist/gt.es.js +1 -1
  76. package/dist/gt.es.min.js +1 -1
  77. package/dist/gt.js +1 -1
  78. package/dist/gt.min.js +1 -1
  79. package/dist/gt.mjs +1 -1
  80. package/dist/gte.es.js +1 -1
  81. package/dist/gte.es.min.js +1 -1
  82. package/dist/gte.js +1 -1
  83. package/dist/gte.min.js +1 -1
  84. package/dist/gte.mjs +1 -1
  85. package/dist/lt.es.js +1 -1
  86. package/dist/lt.es.min.js +1 -1
  87. package/dist/lt.js +1 -1
  88. package/dist/lt.min.js +1 -1
  89. package/dist/lt.mjs +1 -1
  90. package/dist/lte.es.js +1 -1
  91. package/dist/lte.es.min.js +1 -1
  92. package/dist/lte.js +1 -1
  93. package/dist/lte.min.js +1 -1
  94. package/dist/lte.mjs +1 -1
  95. package/dist/map.es.js +1 -1
  96. package/dist/map.es.min.js +1 -1
  97. package/dist/map.js +1 -1
  98. package/dist/map.min.js +1 -1
  99. package/dist/map.mjs +1 -1
  100. package/dist/not.es.js +4 -2
  101. package/dist/not.es.min.js +2 -2
  102. package/dist/not.js +4 -2
  103. package/dist/not.min.js +2 -2
  104. package/dist/not.mjs +4 -2
  105. package/dist/omit.es.js +1 -1
  106. package/dist/omit.es.min.js +1 -1
  107. package/dist/omit.js +1 -1
  108. package/dist/omit.min.js +1 -1
  109. package/dist/omit.mjs +1 -1
  110. package/dist/or.es.js +1 -1
  111. package/dist/or.es.min.js +1 -1
  112. package/dist/or.js +1 -1
  113. package/dist/or.min.js +1 -1
  114. package/dist/or.mjs +1 -1
  115. package/dist/pick.es.js +1 -1
  116. package/dist/pick.es.min.js +1 -1
  117. package/dist/pick.js +1 -1
  118. package/dist/pick.min.js +1 -1
  119. package/dist/pick.mjs +1 -1
  120. package/dist/pipe.es.js +1 -1
  121. package/dist/pipe.es.min.js +1 -1
  122. package/dist/pipe.js +1 -1
  123. package/dist/pipe.min.js +1 -1
  124. package/dist/pipe.mjs +1 -1
  125. package/dist/reduce.es.js +1 -1
  126. package/dist/reduce.es.min.js +1 -1
  127. package/dist/reduce.js +1 -1
  128. package/dist/reduce.min.js +1 -1
  129. package/dist/reduce.mjs +1 -1
  130. package/dist/rubico.es.js +7 -9
  131. package/dist/rubico.es.min.js +2 -2
  132. package/dist/rubico.global.js +7 -9
  133. package/dist/rubico.global.min.js +2 -2
  134. package/dist/rubico.js +7 -9
  135. package/dist/rubico.min.js +2 -2
  136. package/dist/rubico.mjs +7 -9
  137. package/dist/set.es.js +1 -1
  138. package/dist/set.es.min.js +1 -1
  139. package/dist/set.js +1 -1
  140. package/dist/set.min.js +1 -1
  141. package/dist/set.mjs +1 -1
  142. package/dist/some.es.js +1 -1
  143. package/dist/some.es.min.js +1 -1
  144. package/dist/some.js +1 -1
  145. package/dist/some.min.js +1 -1
  146. package/dist/some.mjs +1 -1
  147. package/dist/switchCase.es.js +1 -1
  148. package/dist/switchCase.es.min.js +1 -1
  149. package/dist/switchCase.js +1 -1
  150. package/dist/switchCase.min.js +1 -1
  151. package/dist/switchCase.mjs +1 -1
  152. package/dist/tap.es.js +1 -1
  153. package/dist/tap.es.min.js +1 -1
  154. package/dist/tap.js +1 -1
  155. package/dist/tap.min.js +1 -1
  156. package/dist/tap.mjs +1 -1
  157. package/dist/thunkify.es.js +4 -8
  158. package/dist/thunkify.es.min.js +2 -2
  159. package/dist/thunkify.js +4 -8
  160. package/dist/thunkify.min.js +2 -2
  161. package/dist/thunkify.mjs +4 -8
  162. package/dist/transform.es.js +1 -1
  163. package/dist/transform.es.min.js +1 -1
  164. package/dist/transform.js +1 -1
  165. package/dist/transform.min.js +1 -1
  166. package/dist/transform.mjs +1 -1
  167. package/dist/tryCatch.es.js +1 -1
  168. package/dist/tryCatch.es.min.js +1 -1
  169. package/dist/tryCatch.js +1 -1
  170. package/dist/tryCatch.min.js +1 -1
  171. package/dist/tryCatch.mjs +1 -1
  172. package/dist/x/append.es.js +1 -1
  173. package/dist/x/append.es.min.js +1 -1
  174. package/dist/x/append.js +1 -1
  175. package/dist/x/append.min.js +1 -1
  176. package/dist/x/append.mjs +1 -1
  177. package/dist/x/callProp.es.js +1 -1
  178. package/dist/x/callProp.es.min.js +1 -1
  179. package/dist/x/callProp.js +1 -1
  180. package/dist/x/callProp.min.js +1 -1
  181. package/dist/x/callProp.mjs +1 -1
  182. package/dist/x/defaultsDeep.es.js +1 -1
  183. package/dist/x/defaultsDeep.es.min.js +1 -1
  184. package/dist/x/defaultsDeep.js +1 -1
  185. package/dist/x/defaultsDeep.min.js +1 -1
  186. package/dist/x/defaultsDeep.mjs +1 -1
  187. package/dist/x/differenceWith.es.js +1 -1
  188. package/dist/x/differenceWith.es.min.js +1 -1
  189. package/dist/x/differenceWith.js +1 -1
  190. package/dist/x/differenceWith.min.js +1 -1
  191. package/dist/x/differenceWith.mjs +1 -1
  192. package/dist/x/filterOut.es.js +4 -2
  193. package/dist/x/filterOut.es.min.js +2 -2
  194. package/dist/x/filterOut.js +4 -2
  195. package/dist/x/filterOut.min.js +2 -2
  196. package/dist/x/filterOut.mjs +4 -2
  197. package/dist/x/find.es.js +1 -1
  198. package/dist/x/find.es.min.js +1 -1
  199. package/dist/x/find.js +1 -1
  200. package/dist/x/find.min.js +1 -1
  201. package/dist/x/find.mjs +1 -1
  202. package/dist/x/findIndex.es.js +1 -1
  203. package/dist/x/findIndex.es.min.js +1 -1
  204. package/dist/x/findIndex.js +1 -1
  205. package/dist/x/findIndex.min.js +1 -1
  206. package/dist/x/findIndex.mjs +1 -1
  207. package/dist/x/first.es.js +1 -1
  208. package/dist/x/first.es.min.js +1 -1
  209. package/dist/x/first.js +1 -1
  210. package/dist/x/first.min.js +1 -1
  211. package/dist/x/first.mjs +1 -1
  212. package/dist/x/flatten.es.js +1 -1
  213. package/dist/x/flatten.es.min.js +1 -1
  214. package/dist/x/flatten.js +1 -1
  215. package/dist/x/flatten.min.js +1 -1
  216. package/dist/x/flatten.mjs +1 -1
  217. package/dist/x/groupBy.es.js +1 -1
  218. package/dist/x/groupBy.es.min.js +1 -1
  219. package/dist/x/groupBy.js +1 -1
  220. package/dist/x/groupBy.min.js +1 -1
  221. package/dist/x/groupBy.mjs +1 -1
  222. package/dist/x/has.es.js +1 -1
  223. package/dist/x/has.es.min.js +1 -1
  224. package/dist/x/has.js +1 -1
  225. package/dist/x/has.min.js +1 -1
  226. package/dist/x/has.mjs +1 -1
  227. package/dist/x/identity.es.js +1 -1
  228. package/dist/x/identity.es.min.js +1 -1
  229. package/dist/x/identity.js +1 -1
  230. package/dist/x/identity.min.js +1 -1
  231. package/dist/x/identity.mjs +1 -1
  232. package/dist/x/includes.es.js +1 -1
  233. package/dist/x/includes.es.min.js +1 -1
  234. package/dist/x/includes.js +1 -1
  235. package/dist/x/includes.min.js +1 -1
  236. package/dist/x/includes.mjs +1 -1
  237. package/dist/x/isDeepEqual.es.js +1 -1
  238. package/dist/x/isDeepEqual.es.min.js +1 -1
  239. package/dist/x/isDeepEqual.js +1 -1
  240. package/dist/x/isDeepEqual.min.js +1 -1
  241. package/dist/x/isDeepEqual.mjs +1 -1
  242. package/dist/x/isEmpty.es.js +1 -1
  243. package/dist/x/isEmpty.es.min.js +1 -1
  244. package/dist/x/isEmpty.js +1 -1
  245. package/dist/x/isEmpty.min.js +1 -1
  246. package/dist/x/isEmpty.mjs +1 -1
  247. package/dist/x/isEqual.es.js +1 -1
  248. package/dist/x/isEqual.es.min.js +1 -1
  249. package/dist/x/isEqual.js +1 -1
  250. package/dist/x/isEqual.min.js +1 -1
  251. package/dist/x/isEqual.mjs +1 -1
  252. package/dist/x/isFunction.es.js +1 -1
  253. package/dist/x/isFunction.es.min.js +1 -1
  254. package/dist/x/isFunction.js +1 -1
  255. package/dist/x/isFunction.min.js +1 -1
  256. package/dist/x/isFunction.mjs +1 -1
  257. package/dist/x/isIn.es.js +1 -1
  258. package/dist/x/isIn.es.min.js +1 -1
  259. package/dist/x/isIn.js +1 -1
  260. package/dist/x/isIn.min.js +1 -1
  261. package/dist/x/isIn.mjs +1 -1
  262. package/dist/x/isObject.es.js +1 -1
  263. package/dist/x/isObject.es.min.js +1 -1
  264. package/dist/x/isObject.js +1 -1
  265. package/dist/x/isObject.min.js +1 -1
  266. package/dist/x/isObject.mjs +1 -1
  267. package/dist/x/isString.es.js +1 -1
  268. package/dist/x/isString.es.min.js +1 -1
  269. package/dist/x/isString.js +1 -1
  270. package/dist/x/isString.min.js +1 -1
  271. package/dist/x/isString.mjs +1 -1
  272. package/dist/x/keys.es.js +1 -1
  273. package/dist/x/keys.es.min.js +1 -1
  274. package/dist/x/keys.js +1 -1
  275. package/dist/x/keys.min.js +1 -1
  276. package/dist/x/keys.mjs +1 -1
  277. package/dist/x/last.es.js +1 -1
  278. package/dist/x/last.es.min.js +1 -1
  279. package/dist/x/last.js +1 -1
  280. package/dist/x/last.min.js +1 -1
  281. package/dist/x/last.mjs +1 -1
  282. package/dist/x/maxBy.es.js +1 -1
  283. package/dist/x/maxBy.es.min.js +1 -1
  284. package/dist/x/maxBy.js +1 -1
  285. package/dist/x/maxBy.min.js +1 -1
  286. package/dist/x/maxBy.mjs +1 -1
  287. package/dist/x/noop.es.js +1 -1
  288. package/dist/x/noop.es.min.js +1 -1
  289. package/dist/x/noop.js +1 -1
  290. package/dist/x/noop.min.js +1 -1
  291. package/dist/x/noop.mjs +1 -1
  292. package/dist/x/pluck.es.js +1 -1
  293. package/dist/x/pluck.es.min.js +1 -1
  294. package/dist/x/pluck.js +1 -1
  295. package/dist/x/pluck.min.js +1 -1
  296. package/dist/x/pluck.mjs +1 -1
  297. package/dist/x/prepend.es.js +1 -1
  298. package/dist/x/prepend.es.min.js +1 -1
  299. package/dist/x/prepend.js +1 -1
  300. package/dist/x/prepend.min.js +1 -1
  301. package/dist/x/prepend.mjs +1 -1
  302. package/dist/x/size.es.js +1 -1
  303. package/dist/x/size.es.min.js +1 -1
  304. package/dist/x/size.js +1 -1
  305. package/dist/x/size.min.js +1 -1
  306. package/dist/x/size.mjs +1 -1
  307. package/dist/x/trace.es.js +1 -1
  308. package/dist/x/trace.es.min.js +1 -1
  309. package/dist/x/trace.js +1 -1
  310. package/dist/x/trace.min.js +1 -1
  311. package/dist/x/trace.mjs +1 -1
  312. package/dist/x/unionWith.es.js +1 -1
  313. package/dist/x/unionWith.es.min.js +1 -1
  314. package/dist/x/unionWith.js +1 -1
  315. package/dist/x/unionWith.min.js +1 -1
  316. package/dist/x/unionWith.mjs +1 -1
  317. package/dist/x/uniq.es.js +1 -1
  318. package/dist/x/uniq.es.min.js +1 -1
  319. package/dist/x/uniq.js +1 -1
  320. package/dist/x/uniq.min.js +1 -1
  321. package/dist/x/uniq.mjs +1 -1
  322. package/dist/x/unless.es.js +1 -1
  323. package/dist/x/unless.es.min.js +1 -1
  324. package/dist/x/unless.js +1 -1
  325. package/dist/x/unless.min.js +1 -1
  326. package/dist/x/unless.mjs +1 -1
  327. package/dist/x/values.es.js +1 -1
  328. package/dist/x/values.es.min.js +1 -1
  329. package/dist/x/values.js +1 -1
  330. package/dist/x/values.min.js +1 -1
  331. package/dist/x/values.mjs +1 -1
  332. package/dist/x/when.es.js +1 -1
  333. package/dist/x/when.es.min.js +1 -1
  334. package/dist/x/when.js +1 -1
  335. package/dist/x/when.min.js +1 -1
  336. package/dist/x/when.mjs +1 -1
  337. package/es.js +7 -9
  338. package/every.js +2 -3
  339. package/filter.js +3 -3
  340. package/flatMap.js +5 -3
  341. package/index.js +7 -9
  342. package/map.js +3 -3
  343. package/not.js +11 -4
  344. package/omit.js +2 -3
  345. package/or.js +28 -15
  346. package/package.json +1 -1
  347. package/pick.js +2 -3
  348. package/pipe.js +2 -4
  349. package/reduce.js +6 -11
  350. package/some.js +2 -3
  351. package/switchCase.js +9 -11
  352. package/tap.js +4 -2
  353. package/thunkify.js +5 -22
  354. package/transform.js +5 -10
  355. package/tryCatch.js +35 -8
package/all.js CHANGED
@@ -36,30 +36,27 @@ const _allValues = function (values) {
36
36
  *
37
37
  * @synopsis
38
38
  * ```coffeescript [specscript]
39
- * all(values Promise|Array<Promise|any>) -> result Promise|Array
40
- * all(values Promise|Object<Promise|any>) -> result Promise|Object
41
- *
42
- * all(
43
- * ...args,
44
- * resolversOrValues Array<function|Promise|any>
45
- * ) -> result Promise|Array
46
- *
47
- * all(
48
- * resolversOrValues Array<function|Promise|any>
49
- * )(...args) -> result Promise|Array
50
- *
51
- * all(
52
- * ...args,
53
- * resolversOrValues Object<function|Promise|any>
54
- * ) -> result Promise|Object
55
- *
56
- * all(
57
- * resolversOrValues Object<function|Promise|any>
58
- * )(...args) -> result Promise|Object
39
+ * args Array<any>
40
+ * argsOrPromises Array<Promise|any>
41
+ *
42
+ * type Resolver = (...args)=>Promise|any
43
+ *
44
+ * arrayResolversOrPromisesOrValues Array<Resolver|Promise|any>
45
+ * objectResolversOrPromisesOrValues Object<Resolver|Promise|any>
46
+ *
47
+ * all(arrayValues Promise|Array<Promise|any>) -> arrayResult Promise|Array
48
+ * all(...argsOrPromises, arrayResolversOrPromisesOrValues) -> arrayResult Promise|Array
49
+ * all(arrayResolversOrPromisesOrValues)(...args) -> arrayResult Promise|Array
50
+ *
51
+ * all(objectValues Promise|Object<Promise|any>) -> objectResult Promise|Object
52
+ * all(...argsOrPromises, objectResolversOrPromisesOrValues) -> objectResult Promise|Object
53
+ * all(objectResolversOrPromisesOrValues)(...args) -> objectResult Promise|Object
59
54
  * ```
60
55
  *
61
56
  * @description
62
- * Calls an array or object of resolver functions or values `resolversOrValues` with provided arguments.
57
+ * Constructs an array if provided an array of resolvers, promises, values, or a mix thereof. Constructs an object if provided an object of resolvers, promises, values, or a mix thereof. If provided any resolvers, `all` returns a function that constructs the array or object. Otherwise, if none of the provided values in the array or object are functions, `all` returns the constructed array or object directly.
58
+ *
59
+ * `all` constructs an array from resolvers.
63
60
  *
64
61
  * ```javascript [playground]
65
62
  * const createArrayOfGreetingsFor = all([
@@ -74,23 +71,25 @@ const _allValues = function (values) {
74
71
  * // ['Hi 1', 'Hey 1', 'Hello 1']
75
72
  * ```
76
73
  *
77
- * If provided only values for `resolversOrValues`, returns an array or object with the same shape as `resolversOrValues` with any Promises resolved.
74
+ * If any provided values are promises, `all` returns a promise.
78
75
  *
79
76
  * ```javascript [playground]
80
- * all([
77
+ * const promise1 = all([
81
78
  * Promise.resolve(1),
82
79
  * Promise.resolve(2),
83
80
  * 3,
84
- * ]).then(console.log) // [1, 2, 3]
81
+ * ])
82
+ * promise1.then(console.log) // [1, 2, 3]
85
83
  *
86
- * all({
87
- * a: Promise.resolve(1),
84
+ * const promise2 = all({
85
+ * a: 1,
88
86
  * b: Promise.resolve(2),
89
- * c: 3,
90
- * }).then(console.log) // { a: 1, b: 2, c: 3 }
87
+ * c: Promise.resolve(3),
88
+ * })
89
+ * promise2.then(console.log) // { a: 1, b: 2, c: 3 }
91
90
  * ```
92
91
  *
93
- * `all` can be used in a pipeline to compose and manpulate data.
92
+ * If any provided resolvers are asynchronous, `all` returns a promise. `all` can be used in a pipeline to compose and manpulate data.
94
93
  *
95
94
  * ```javascript [playground]
96
95
  * const identity = value => value
@@ -113,7 +112,7 @@ const _allValues = function (values) {
113
112
  * getAndLogUserById('1') // Got user {"_id":1,"name":"John"} by id 1
114
113
  * ```
115
114
  *
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.
115
+ * Provided no resolvers, `all` returns the constructed array or object.
117
116
  *
118
117
  * ```javascript [playground]
119
118
  * all({}, {
package/and.js CHANGED
@@ -97,38 +97,49 @@ const areAllPredicatesTruthy = function (args, predicates) {
97
97
  *
98
98
  * @synopsis
99
99
  * ```coffeescript [specscript]
100
- * and(values Array<boolean>) -> result boolean
100
+ * args Array<any>
101
+ * argsOrPromises Array<Promise|any>
102
+ * predicatesOrValues Array<function|boolean|any>
101
103
  *
102
- * and(...args, predicatesOrValues Array<function|boolean>) -> Promise|boolean
103
- *
104
- * and(predicatesOrValues Array<function|boolean>)(...args) -> Promise|boolean
104
+ * and(values Array<boolean|any>) -> result boolean
105
+ * and(...argsOrPromises, predicatesOrValues) -> Promise|boolean
106
+ * and(predicatesOrValues)(...args) -> Promise|boolean
105
107
  * ```
106
108
  *
107
109
  * @description
108
- * Tests an array of boolean values, returning true if all boolean values are truthy.
110
+ * Function equivalent to the [logical AND](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND) operator. Tests an array of predicate functions, promises, values, or a mix thereof.
111
+ *
112
+ * If provided an array of boolean values, `and` returns true if all boolean values are true.
109
113
  *
110
114
  * ```javascript [playground]
111
115
  * const oneIsLessThanThree = 1 < 3
112
116
  * const twoIsGreaterThanOne = 2 > 1
113
117
  * const threeIsEqualToThree = 3 === 3
114
118
  *
115
- * console.log(
116
- * and([oneIsLessThanThree, twoIsGreaterThanOne, threeIsEqualToThree]),
117
- * ) // true
119
+ * const condition = and([
120
+ * oneIsLessThanThree,
121
+ * twoIsGreaterThanOne,
122
+ * threeIsEqualToThree
123
+ * ])
124
+ * console.log(condition) // true
118
125
  * ```
119
126
  *
120
- * If any values in the array are synchronous or asynchronous predicate functions, `and` takes another argument to test concurrently against the predicate functions, returning true if all array values and resolved values from the predicates are truthy.
127
+ * If any predicate functions are provided in the array, `and` returns an aggregate predicate function that returns true for a given set of arguments if all provided predicate functions test true. If any provided predicate functions are asynchronous, the aggregate predicate function becomes asynchronous.
121
128
  *
122
129
  * ```javascript [playground]
123
130
  * const isOdd = number => number % 2 == 1
124
- *
125
131
  * const isPositive = number => number > 0
132
+ * const asyncIsLessThan3 = async number => number < 3
126
133
  *
127
- * const isLessThan3 = number => number < 3
134
+ * const aggregatePredicate = and([
135
+ * true,
136
+ * isOdd,
137
+ * isPositive,
138
+ * asyncIsLessThan3,
139
+ * ])
128
140
  *
129
- * console.log(
130
- * and([isOdd, isPositive, isLessThan3])(1),
131
- * ) // true
141
+ * const condition = await aggregatePredicate(1)
142
+ * console.log(condition) // true
132
143
  * ```
133
144
  *
134
145
  * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
package/assign.js CHANGED
@@ -18,33 +18,36 @@ const _assign = function (object, funcs) {
18
18
  *
19
19
  * @synopsis
20
20
  * ```coffeescript [specscript]
21
- * assign(
22
- * o Promise|Object,
23
- * resolversOrValues Object<function|Promise|any>
24
- * ) -> result Promise|Object
25
- *
26
- * assign(
27
- * resolversOrValues Object<function|Promise|any>
28
- * )(o Object) -> result Promise|Object
21
+ * args Array<any>
22
+ *
23
+ * type Resolver = (...args)=>Promise|any
24
+ *
25
+ * objectResolversOrPromisesOrValues Object<Resolver|Promise|any>
26
+ *
27
+ * assign(argumentObject Promise|Object, objectResolversOrPromisesOrValues) -> resultObject
28
+ * assign(objectResolversOrPromisesOrValues)(argumentObject Object) -> resultObject
29
29
  * ```
30
30
  *
31
31
  * @description
32
- * Function executor and composer. Accepts an object of resolver functions or values and an object `o`. Creates a result object from the argument object, evaluates each resolver with the argument object, and assigns to the result object the evaluations at the corresponding resolver keys.
32
+ * Function equivalent to [Object.assign](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign). Constructs an object `result` from an object `objectResolversOrPromisesOrValues` of resolvers, promises, values, or a mix thereof and an argument object `argumentObject`.
33
+ *
34
+ * If any values of `objectResolversOrPromisesOrValues` are resolvers, `assign` provides the `argumentObject` to those resolvers to resolve the values for assignment in `resultObject`.
33
35
  *
34
36
  * ```javascript [playground]
35
37
  * const assignSquaredAndCubed = assign({
36
38
  * squared: ({ number }) => number ** 2,
37
39
  * cubed: ({ number }) => number ** 3,
40
+ * n: 1,
38
41
  * })
39
42
  *
40
43
  * console.log(assignSquaredAndCubed({ number: 2 }))
41
- * // { number: 2, squared: 4, cubed: 8 }
44
+ * // { number: 2, squared: 4, cubed: 8, n: 1 }
42
45
  *
43
46
  * console.log(assignSquaredAndCubed({ number: 3 }))
44
- * // { number: 3, squared: 9, cubed: 27 }
47
+ * // { number: 3, squared: 9, cubed: 27, n: 1 }
45
48
  * ```
46
49
  *
47
- * Any of the resolvers may be asynchronous and return Promises.
50
+ * If any of the resolvers in `objectResolversOrPromisesOrValues` are asynchronous, `assign` returns a promise of `resultObject`.
48
51
  *
49
52
  * ```javascript [playground]
50
53
  * const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
@@ -60,17 +63,6 @@ const _assign = function (object, funcs) {
60
63
  * // { numbers: [1, 2, 3, 4, 5], total: 15 }
61
64
  * ```
62
65
  *
63
- * Values passed in resolver position are set on the result object directly. If any of these values are promises, they are resolved for their values before being set on the result object.
64
- *
65
- * ```javascript [playground]
66
- * assign({}, {
67
- * a: 1,
68
- * b: Promise.resolve(2),
69
- * c: () => 3,
70
- * d: async o => Object.keys(o).length,
71
- * }).then(console.log) // { a: 1, b: 2, c: 3, d: 0 }
72
- * ```
73
- *
74
66
  * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.
75
67
  *
76
68
  * ```javascript [playground]
package/compose.js CHANGED
@@ -12,12 +12,10 @@ const funcConcat = require('./_internal/funcConcat')
12
12
  * ```coffeescript [specscript]
13
13
  * funcs Array<function>
14
14
  * args Array<any>
15
- * argsWithPromises Array<Promise|any>
15
+ * argsOrPromises Array<Promise|any>
16
16
  *
17
17
  * compose(funcs)(...args) -> result Promise|any
18
- *
19
- * compose(...argsWithPromises, funcs) -> result Promise|any
20
- *
18
+ * compose(...argsOrPromises, funcs) -> result Promise|any
21
19
  * compose(...funcs)(...args) -> result Promise|any
22
20
  * ```
23
21
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/__.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/all.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/always.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/always.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/always.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/and.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/assign.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/assign.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/assign.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/compose.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/compose.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/curry.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/eq.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/every.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
package/dist/every.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * rubico v2.7.1
2
+ * rubico v2.7.3
3
3
  * https://github.com/a-synchronous/rubico
4
4
  * (c) 2019-2025 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.