rubico 2.7.2 → 2.7.4

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 (495) hide show
  1. package/README.md +14 -17
  2. package/Transducer.d.ts +10 -10
  3. package/Transducer.js +65 -69
  4. package/__.js +1 -1
  5. package/_internal/FlatMappingIterator.js +1 -1
  6. package/_internal/MappingIterator.d.ts +1 -1
  7. package/_internal/MappingIterator.js +1 -1
  8. package/_internal/arrayFilter.js +6 -6
  9. package/_internal/arrayFilterIndexes.js +7 -7
  10. package/_internal/arrayFilterWithIndex.js +6 -6
  11. package/_internal/arrayFind.js +7 -7
  12. package/_internal/arrayFlatten.js +25 -25
  13. package/_internal/arrayForEach.d.ts +1 -1
  14. package/_internal/arrayForEach.js +1 -1
  15. package/_internal/arrayForEachSeries.js +1 -1
  16. package/_internal/arrayMap.d.ts +2 -2
  17. package/_internal/arrayMap.js +5 -5
  18. package/_internal/arrayMapPool.d.ts +1 -1
  19. package/_internal/arrayMapPool.js +10 -10
  20. package/_internal/arrayMapRate.js +4 -4
  21. package/_internal/arrayMapSeries.d.ts +1 -1
  22. package/_internal/arrayMapSeries.js +8 -8
  23. package/_internal/arrayMapWithIndex.js +4 -4
  24. package/_internal/arrayReduce.js +1 -1
  25. package/_internal/asyncGeneratorFunctionForEach.js +3 -3
  26. package/_internal/asyncGeneratorFunctionMap.js +3 -3
  27. package/_internal/asyncIteratorFind.js +3 -3
  28. package/_internal/asyncIteratorForEach.d.ts +1 -1
  29. package/_internal/asyncIteratorForEach.js +3 -3
  30. package/_internal/asyncIteratorForEachSeries.js +3 -3
  31. package/_internal/asyncIteratorToArray.js +2 -2
  32. package/_internal/copyDeep.js +12 -12
  33. package/_internal/funcAll.js +3 -3
  34. package/_internal/funcAllSeries.js +6 -6
  35. package/_internal/funcObjectAll.js +4 -4
  36. package/_internal/functionArrayAll.js +3 -3
  37. package/_internal/functionArrayAllSeries.js +6 -6
  38. package/_internal/functionObjectAll.js +4 -4
  39. package/_internal/generatorFunctionForEach.js +3 -3
  40. package/_internal/generatorFunctionMap.js +3 -3
  41. package/_internal/generatorFunctionReduce.js +1 -1
  42. package/_internal/iteratorEvery.js +2 -2
  43. package/_internal/iteratorFind.js +7 -7
  44. package/_internal/iteratorForEach.d.ts +1 -1
  45. package/_internal/iteratorForEach.js +3 -3
  46. package/_internal/iteratorForEachSeries.js +1 -1
  47. package/_internal/iteratorReduce.d.ts +1 -1
  48. package/_internal/iteratorReduce.js +2 -2
  49. package/_internal/iteratorSome.js +2 -2
  50. package/_internal/mapFilter.js +4 -4
  51. package/_internal/mapMap.d.ts +1 -1
  52. package/_internal/mapMap.js +6 -6
  53. package/_internal/mapMapPool.js +10 -10
  54. package/_internal/mapMapSeries.js +10 -10
  55. package/_internal/objectFilter.js +6 -6
  56. package/_internal/objectFlatMap.d.ts +1 -1
  57. package/_internal/objectFlatMap.js +1 -1
  58. package/_internal/objectFlatten.js +14 -14
  59. package/_internal/objectMap.js +3 -3
  60. package/_internal/objectMapOwn.js +3 -3
  61. package/_internal/objectMapPool.js +10 -10
  62. package/_internal/objectMapSeries.js +9 -9
  63. package/_internal/objectReduce.d.ts +1 -1
  64. package/_internal/objectReduce.js +2 -2
  65. package/_internal/reducerAllSync.d.ts +2 -2
  66. package/_internal/reducerAllSync.js +2 -2
  67. package/_internal/reducerAnySync.d.ts +1 -1
  68. package/_internal/reducerAnySync.js +2 -2
  69. package/_internal/reducerConcat.d.ts +1 -1
  70. package/_internal/reducerConcat.js +4 -4
  71. package/_internal/reducerConcatSync.js +2 -2
  72. package/_internal/reducerEvery.d.ts +2 -2
  73. package/_internal/reducerEvery.js +4 -4
  74. package/_internal/reducerFilter.d.ts +2 -2
  75. package/_internal/reducerFilter.js +5 -5
  76. package/_internal/reducerFlatten.js +3 -3
  77. package/_internal/reducerForEach.d.ts +2 -2
  78. package/_internal/reducerForEach.js +5 -5
  79. package/_internal/reducerMap.d.ts +1 -1
  80. package/_internal/reducerMap.js +5 -5
  81. package/_internal/reducerSome.d.ts +2 -2
  82. package/_internal/reducerSome.js +4 -4
  83. package/_internal/reducerTryCatch.d.ts +2 -2
  84. package/_internal/reducerTryCatch.js +8 -8
  85. package/_internal/setFilter.d.ts +1 -1
  86. package/_internal/setFilter.js +5 -5
  87. package/_internal/setFlatten.js +24 -24
  88. package/_internal/setMap.d.ts +1 -1
  89. package/_internal/setMap.js +6 -6
  90. package/_internal/setMapPool.js +9 -9
  91. package/_internal/setMapSeries.js +10 -10
  92. package/_internal/streamFlatExtend.js +25 -25
  93. package/_internal/streamFlatMap.js +2 -2
  94. package/all.js +29 -30
  95. package/and.js +27 -13
  96. package/assign.js +15 -23
  97. package/compose.js +7 -5
  98. package/curry.js +5 -12
  99. package/dist/Transducer.es.js +24 -24
  100. package/dist/Transducer.es.min.js +1 -1
  101. package/dist/Transducer.js +24 -24
  102. package/dist/Transducer.min.js +1 -1
  103. package/dist/Transducer.mjs +24 -24
  104. package/dist/__.es.js +1 -1
  105. package/dist/__.es.min.js +1 -1
  106. package/dist/__.js +1 -1
  107. package/dist/__.min.js +1 -1
  108. package/dist/__.mjs +1 -1
  109. package/dist/all.es.js +14 -14
  110. package/dist/all.es.min.js +1 -1
  111. package/dist/all.js +14 -14
  112. package/dist/all.min.js +1 -1
  113. package/dist/all.mjs +14 -14
  114. package/dist/always.es.js +1 -1
  115. package/dist/always.es.min.js +1 -1
  116. package/dist/always.js +1 -1
  117. package/dist/always.min.js +1 -1
  118. package/dist/always.mjs +1 -1
  119. package/dist/and.es.js +1 -1
  120. package/dist/and.es.min.js +1 -1
  121. package/dist/and.js +1 -1
  122. package/dist/and.min.js +1 -1
  123. package/dist/and.mjs +1 -1
  124. package/dist/assign.es.js +5 -5
  125. package/dist/assign.es.min.js +1 -1
  126. package/dist/assign.js +5 -5
  127. package/dist/assign.min.js +1 -1
  128. package/dist/assign.mjs +5 -5
  129. package/dist/compose.es.js +1 -1
  130. package/dist/compose.es.min.js +1 -1
  131. package/dist/compose.js +1 -1
  132. package/dist/compose.min.js +1 -1
  133. package/dist/compose.mjs +1 -1
  134. package/dist/curry.es.js +1 -1
  135. package/dist/curry.es.min.js +1 -1
  136. package/dist/curry.js +1 -1
  137. package/dist/curry.min.js +1 -1
  138. package/dist/curry.mjs +1 -1
  139. package/dist/eq.es.js +1 -1
  140. package/dist/eq.es.min.js +1 -1
  141. package/dist/eq.js +1 -1
  142. package/dist/eq.min.js +1 -1
  143. package/dist/eq.mjs +1 -1
  144. package/dist/every.es.js +7 -7
  145. package/dist/every.es.min.js +1 -1
  146. package/dist/every.js +7 -7
  147. package/dist/every.min.js +1 -1
  148. package/dist/every.mjs +7 -7
  149. package/dist/filter.es.js +21 -21
  150. package/dist/filter.es.min.js +1 -1
  151. package/dist/filter.js +21 -21
  152. package/dist/filter.min.js +1 -1
  153. package/dist/filter.mjs +21 -21
  154. package/dist/flatMap.es.js +82 -82
  155. package/dist/flatMap.es.min.js +1 -1
  156. package/dist/flatMap.js +82 -82
  157. package/dist/flatMap.min.js +1 -1
  158. package/dist/flatMap.mjs +82 -82
  159. package/dist/forEach.es.js +7 -7
  160. package/dist/forEach.es.min.js +1 -1
  161. package/dist/forEach.js +7 -7
  162. package/dist/forEach.min.js +1 -1
  163. package/dist/forEach.mjs +7 -7
  164. package/dist/get.es.js +1 -1
  165. package/dist/get.es.min.js +1 -1
  166. package/dist/get.js +1 -1
  167. package/dist/get.min.js +1 -1
  168. package/dist/get.mjs +1 -1
  169. package/dist/gt.es.js +1 -1
  170. package/dist/gt.es.min.js +1 -1
  171. package/dist/gt.js +1 -1
  172. package/dist/gt.min.js +1 -1
  173. package/dist/gt.mjs +1 -1
  174. package/dist/gte.es.js +1 -1
  175. package/dist/gte.es.min.js +1 -1
  176. package/dist/gte.js +1 -1
  177. package/dist/gte.min.js +1 -1
  178. package/dist/gte.mjs +1 -1
  179. package/dist/lt.es.js +1 -1
  180. package/dist/lt.es.min.js +1 -1
  181. package/dist/lt.js +1 -1
  182. package/dist/lt.min.js +1 -1
  183. package/dist/lt.mjs +1 -1
  184. package/dist/lte.es.js +1 -1
  185. package/dist/lte.es.min.js +1 -1
  186. package/dist/lte.js +1 -1
  187. package/dist/lte.min.js +1 -1
  188. package/dist/lte.mjs +1 -1
  189. package/dist/map.es.js +83 -83
  190. package/dist/map.es.min.js +1 -1
  191. package/dist/map.js +83 -83
  192. package/dist/map.min.js +1 -1
  193. package/dist/map.mjs +83 -83
  194. package/dist/not.es.js +4 -2
  195. package/dist/not.es.min.js +2 -2
  196. package/dist/not.js +4 -2
  197. package/dist/not.min.js +2 -2
  198. package/dist/not.mjs +4 -2
  199. package/dist/omit.es.js +13 -13
  200. package/dist/omit.es.min.js +1 -1
  201. package/dist/omit.js +13 -13
  202. package/dist/omit.min.js +1 -1
  203. package/dist/omit.mjs +13 -13
  204. package/dist/or.es.js +1 -1
  205. package/dist/or.es.min.js +1 -1
  206. package/dist/or.js +1 -1
  207. package/dist/or.min.js +1 -1
  208. package/dist/or.mjs +1 -1
  209. package/dist/pick.es.js +1 -1
  210. package/dist/pick.es.min.js +1 -1
  211. package/dist/pick.js +1 -1
  212. package/dist/pick.min.js +1 -1
  213. package/dist/pick.mjs +1 -1
  214. package/dist/pipe.es.js +1 -1
  215. package/dist/pipe.es.min.js +1 -1
  216. package/dist/pipe.js +1 -1
  217. package/dist/pipe.min.js +1 -1
  218. package/dist/pipe.mjs +1 -1
  219. package/dist/reduce.es.js +5 -5
  220. package/dist/reduce.es.min.js +1 -1
  221. package/dist/reduce.js +5 -5
  222. package/dist/reduce.min.js +1 -1
  223. package/dist/reduce.mjs +5 -5
  224. package/dist/rubico.es.js +218 -216
  225. package/dist/rubico.es.min.js +2 -2
  226. package/dist/rubico.global.js +218 -216
  227. package/dist/rubico.global.min.js +2 -2
  228. package/dist/rubico.js +218 -216
  229. package/dist/rubico.min.js +2 -2
  230. package/dist/rubico.mjs +218 -216
  231. package/dist/set.es.js +1 -1
  232. package/dist/set.es.min.js +1 -1
  233. package/dist/set.js +1 -1
  234. package/dist/set.min.js +1 -1
  235. package/dist/set.mjs +1 -1
  236. package/dist/some.es.js +8 -8
  237. package/dist/some.es.min.js +1 -1
  238. package/dist/some.js +8 -8
  239. package/dist/some.min.js +1 -1
  240. package/dist/some.mjs +8 -8
  241. package/dist/switchCase.es.js +1 -1
  242. package/dist/switchCase.es.min.js +1 -1
  243. package/dist/switchCase.js +1 -1
  244. package/dist/switchCase.min.js +1 -1
  245. package/dist/switchCase.mjs +1 -1
  246. package/dist/tap.es.js +1 -1
  247. package/dist/tap.es.min.js +1 -1
  248. package/dist/tap.js +1 -1
  249. package/dist/tap.min.js +1 -1
  250. package/dist/tap.mjs +1 -1
  251. package/dist/thunkify.es.js +1 -1
  252. package/dist/thunkify.es.min.js +1 -1
  253. package/dist/thunkify.js +1 -1
  254. package/dist/thunkify.min.js +1 -1
  255. package/dist/thunkify.mjs +1 -1
  256. package/dist/transform.es.js +5 -5
  257. package/dist/transform.es.min.js +1 -1
  258. package/dist/transform.js +5 -5
  259. package/dist/transform.min.js +1 -1
  260. package/dist/transform.mjs +5 -5
  261. package/dist/tryCatch.es.js +1 -1
  262. package/dist/tryCatch.es.min.js +1 -1
  263. package/dist/tryCatch.js +1 -1
  264. package/dist/tryCatch.min.js +1 -1
  265. package/dist/tryCatch.mjs +1 -1
  266. package/dist/x/append.es.js +8 -8
  267. package/dist/x/append.es.min.js +1 -1
  268. package/dist/x/append.js +8 -8
  269. package/dist/x/append.min.js +1 -1
  270. package/dist/x/append.mjs +8 -8
  271. package/dist/x/callProp.es.js +1 -1
  272. package/dist/x/callProp.es.min.js +1 -1
  273. package/dist/x/callProp.js +1 -1
  274. package/dist/x/callProp.min.js +1 -1
  275. package/dist/x/callProp.mjs +1 -1
  276. package/dist/x/defaultsDeep.es.js +69 -37
  277. package/dist/x/defaultsDeep.es.min.js +2 -2
  278. package/dist/x/defaultsDeep.js +69 -37
  279. package/dist/x/defaultsDeep.min.js +2 -2
  280. package/dist/x/defaultsDeep.mjs +69 -37
  281. package/dist/x/differenceWith.es.js +14 -14
  282. package/dist/x/differenceWith.es.min.js +1 -1
  283. package/dist/x/differenceWith.js +14 -14
  284. package/dist/x/differenceWith.min.js +1 -1
  285. package/dist/x/differenceWith.mjs +14 -14
  286. package/dist/x/filterOut.es.js +24 -22
  287. package/dist/x/filterOut.es.min.js +2 -2
  288. package/dist/x/filterOut.js +24 -22
  289. package/dist/x/filterOut.min.js +2 -2
  290. package/dist/x/filterOut.mjs +24 -22
  291. package/dist/x/find.es.js +18 -18
  292. package/dist/x/find.es.min.js +1 -1
  293. package/dist/x/find.js +18 -18
  294. package/dist/x/find.min.js +1 -1
  295. package/dist/x/find.mjs +18 -18
  296. package/dist/x/findIndex.es.js +1 -1
  297. package/dist/x/findIndex.es.min.js +1 -1
  298. package/dist/x/findIndex.js +1 -1
  299. package/dist/x/findIndex.min.js +1 -1
  300. package/dist/x/findIndex.mjs +1 -1
  301. package/dist/x/first.es.js +1 -1
  302. package/dist/x/first.es.min.js +1 -1
  303. package/dist/x/first.js +1 -1
  304. package/dist/x/first.min.js +1 -1
  305. package/dist/x/first.mjs +1 -1
  306. package/dist/x/flatten.es.js +82 -82
  307. package/dist/x/flatten.es.min.js +1 -1
  308. package/dist/x/flatten.js +82 -82
  309. package/dist/x/flatten.min.js +1 -1
  310. package/dist/x/flatten.mjs +82 -82
  311. package/dist/x/groupBy.es.js +17 -17
  312. package/dist/x/groupBy.es.min.js +1 -1
  313. package/dist/x/groupBy.js +17 -17
  314. package/dist/x/groupBy.min.js +1 -1
  315. package/dist/x/groupBy.mjs +17 -17
  316. package/dist/x/has.es.js +1 -1
  317. package/dist/x/has.es.min.js +1 -1
  318. package/dist/x/has.js +1 -1
  319. package/dist/x/has.min.js +1 -1
  320. package/dist/x/has.mjs +1 -1
  321. package/dist/x/identity.es.js +1 -1
  322. package/dist/x/identity.es.min.js +1 -1
  323. package/dist/x/identity.js +1 -1
  324. package/dist/x/identity.min.js +1 -1
  325. package/dist/x/identity.mjs +1 -1
  326. package/dist/x/includes.es.js +1 -1
  327. package/dist/x/includes.es.min.js +1 -1
  328. package/dist/x/includes.js +1 -1
  329. package/dist/x/includes.min.js +1 -1
  330. package/dist/x/includes.mjs +1 -1
  331. package/dist/x/isDeepEqual.es.js +1 -1
  332. package/dist/x/isDeepEqual.es.min.js +1 -1
  333. package/dist/x/isDeepEqual.js +1 -1
  334. package/dist/x/isDeepEqual.min.js +1 -1
  335. package/dist/x/isDeepEqual.mjs +1 -1
  336. package/dist/x/isEmpty.es.js +1 -1
  337. package/dist/x/isEmpty.es.min.js +1 -1
  338. package/dist/x/isEmpty.js +1 -1
  339. package/dist/x/isEmpty.min.js +1 -1
  340. package/dist/x/isEmpty.mjs +1 -1
  341. package/dist/x/isEqual.es.js +1 -1
  342. package/dist/x/isEqual.es.min.js +1 -1
  343. package/dist/x/isEqual.js +1 -1
  344. package/dist/x/isEqual.min.js +1 -1
  345. package/dist/x/isEqual.mjs +1 -1
  346. package/dist/x/isFunction.es.js +1 -1
  347. package/dist/x/isFunction.es.min.js +1 -1
  348. package/dist/x/isFunction.js +1 -1
  349. package/dist/x/isFunction.min.js +1 -1
  350. package/dist/x/isFunction.mjs +1 -1
  351. package/dist/x/isIn.es.js +1 -1
  352. package/dist/x/isIn.es.min.js +1 -1
  353. package/dist/x/isIn.js +1 -1
  354. package/dist/x/isIn.min.js +1 -1
  355. package/dist/x/isIn.mjs +1 -1
  356. package/dist/x/isObject.es.js +1 -1
  357. package/dist/x/isObject.es.min.js +1 -1
  358. package/dist/x/isObject.js +1 -1
  359. package/dist/x/isObject.min.js +1 -1
  360. package/dist/x/isObject.mjs +1 -1
  361. package/dist/x/isString.es.js +1 -1
  362. package/dist/x/isString.es.min.js +1 -1
  363. package/dist/x/isString.js +1 -1
  364. package/dist/x/isString.min.js +1 -1
  365. package/dist/x/isString.mjs +1 -1
  366. package/dist/x/keys.es.js +1 -1
  367. package/dist/x/keys.es.min.js +1 -1
  368. package/dist/x/keys.js +1 -1
  369. package/dist/x/keys.min.js +1 -1
  370. package/dist/x/keys.mjs +1 -1
  371. package/dist/x/last.es.js +1 -1
  372. package/dist/x/last.es.min.js +1 -1
  373. package/dist/x/last.js +1 -1
  374. package/dist/x/last.min.js +1 -1
  375. package/dist/x/last.mjs +1 -1
  376. package/dist/x/maxBy.es.js +6 -6
  377. package/dist/x/maxBy.es.min.js +1 -1
  378. package/dist/x/maxBy.js +6 -6
  379. package/dist/x/maxBy.min.js +1 -1
  380. package/dist/x/maxBy.mjs +6 -6
  381. package/dist/x/noop.es.js +1 -1
  382. package/dist/x/noop.es.min.js +1 -1
  383. package/dist/x/noop.js +1 -1
  384. package/dist/x/noop.min.js +1 -1
  385. package/dist/x/noop.mjs +1 -1
  386. package/dist/x/pluck.es.js +83 -83
  387. package/dist/x/pluck.es.min.js +1 -1
  388. package/dist/x/pluck.js +83 -83
  389. package/dist/x/pluck.min.js +1 -1
  390. package/dist/x/pluck.mjs +83 -83
  391. package/dist/x/prepend.es.js +8 -8
  392. package/dist/x/prepend.es.min.js +1 -1
  393. package/dist/x/prepend.js +8 -8
  394. package/dist/x/prepend.min.js +1 -1
  395. package/dist/x/prepend.mjs +8 -8
  396. package/dist/x/size.es.js +1 -1
  397. package/dist/x/size.es.min.js +1 -1
  398. package/dist/x/size.js +1 -1
  399. package/dist/x/size.min.js +1 -1
  400. package/dist/x/size.mjs +1 -1
  401. package/dist/x/trace.es.js +1 -1
  402. package/dist/x/trace.es.min.js +1 -1
  403. package/dist/x/trace.js +1 -1
  404. package/dist/x/trace.min.js +1 -1
  405. package/dist/x/trace.mjs +1 -1
  406. package/dist/x/unionWith.es.js +39 -39
  407. package/dist/x/unionWith.es.min.js +1 -1
  408. package/dist/x/unionWith.js +39 -39
  409. package/dist/x/unionWith.min.js +1 -1
  410. package/dist/x/unionWith.mjs +39 -39
  411. package/dist/x/uniq.es.js +1 -1
  412. package/dist/x/uniq.es.min.js +1 -1
  413. package/dist/x/uniq.js +1 -1
  414. package/dist/x/uniq.min.js +1 -1
  415. package/dist/x/uniq.mjs +1 -1
  416. package/dist/x/unless.es.js +1 -1
  417. package/dist/x/unless.es.min.js +1 -1
  418. package/dist/x/unless.js +1 -1
  419. package/dist/x/unless.min.js +1 -1
  420. package/dist/x/unless.mjs +1 -1
  421. package/dist/x/values.es.js +1 -1
  422. package/dist/x/values.es.min.js +1 -1
  423. package/dist/x/values.js +1 -1
  424. package/dist/x/values.min.js +1 -1
  425. package/dist/x/values.mjs +1 -1
  426. package/dist/x/when.es.js +1 -1
  427. package/dist/x/when.es.min.js +1 -1
  428. package/dist/x/when.js +1 -1
  429. package/dist/x/when.min.js +1 -1
  430. package/dist/x/when.mjs +1 -1
  431. package/eq.js +32 -10
  432. package/es.js +218 -216
  433. package/every.d.ts +1 -1
  434. package/every.js +5 -3
  435. package/filter.d.ts +3 -3
  436. package/filter.js +15 -15
  437. package/flatMap.d.ts +9 -9
  438. package/flatMap.js +13 -11
  439. package/forEach.d.ts +1 -1
  440. package/forEach.js +19 -15
  441. package/gt.js +30 -13
  442. package/gte.js +31 -12
  443. package/index.js +218 -216
  444. package/lt.js +28 -9
  445. package/lte.js +34 -15
  446. package/map.d.ts +3 -3
  447. package/map.js +32 -32
  448. package/monad/Mux.benchmark.js +1 -1
  449. package/monad/Mux.js +6 -6
  450. package/monad/Struct.js +2 -2
  451. package/not.js +23 -8
  452. package/omit.js +2 -3
  453. package/or.js +30 -14
  454. package/package.json +1 -1
  455. package/pick.js +2 -3
  456. package/pipe.js +7 -15
  457. package/reduce.d.ts +7 -7
  458. package/reduce.js +19 -24
  459. package/some.d.ts +1 -1
  460. package/some.js +5 -3
  461. package/switchCase.d.ts +1 -1
  462. package/switchCase.js +13 -12
  463. package/tap.js +20 -4
  464. package/thunkify.js +2 -0
  465. package/transform.d.ts +1 -1
  466. package/transform.js +9 -23
  467. package/tryCatch.js +41 -8
  468. package/x/README.md +8 -8
  469. package/x/append.d.ts +2 -2
  470. package/x/append.js +8 -8
  471. package/x/defaultsDeep.js +94 -57
  472. package/x/defaultsDeep.test.js +24 -1
  473. package/x/differenceWith.js +13 -13
  474. package/x/find.d.ts +1 -1
  475. package/x/find.js +1 -1
  476. package/x/find.test.js +2 -2
  477. package/x/findIndex.test.js +1 -1
  478. package/x/first.d.ts +1 -1
  479. package/x/first.js +1 -1
  480. package/x/first.test.js +1 -1
  481. package/x/groupBy.d.ts +1 -1
  482. package/x/groupBy.js +13 -13
  483. package/x/last.d.ts +1 -1
  484. package/x/last.js +1 -1
  485. package/x/last.test.js +1 -1
  486. package/x/maxBy.d.ts +7 -7
  487. package/x/maxBy.js +13 -13
  488. package/x/maxBy.test.js +5 -5
  489. package/x/pluck.test.js +1 -1
  490. package/x/prepend.d.ts +2 -2
  491. package/x/prepend.js +8 -8
  492. package/x/size.d.ts +1 -1
  493. package/x/size.js +1 -1
  494. package/x/unionWith.js +11 -11
  495. package/x/unionWith.test.js +5 -5
@@ -21,11 +21,11 @@ const curry2 = require('./curry2')
21
21
  */
22
22
  const reducerMap = (
23
23
  reducer, mapper,
24
- ) => function mappingReducer(result, reducerItem) {
25
- const mappingReducerItem = mapper(reducerItem)
26
- return isPromise(mappingReducerItem)
27
- ? mappingReducerItem.then(curry2(reducer, result, __))
28
- : reducer(result, mappingReducerItem)
24
+ ) => function mappingReducer(result, reducerElement) {
25
+ const mappingReducerElement = mapper(reducerElement)
26
+ return isPromise(mappingReducerElement)
27
+ ? mappingReducerElement.then(curry2(reducer, result, __))
28
+ : reducer(result, mappingReducerElement)
29
29
  }
30
30
 
31
31
  module.exports = reducerMap
@@ -6,11 +6,11 @@ export = reducerSome;
6
6
  * ```coffeescript [specscript]
7
7
  * reducerSome(
8
8
  * predicate any=>boolean,
9
- * ) -> anyReducer (result boolean, item any)=>boolean
9
+ * ) -> anyReducer (result boolean, element any)=>boolean
10
10
  * ```
11
11
  *
12
12
  * @related foldableAllReducer
13
13
  *
14
14
  * @TODO throw to break early?
15
15
  */
16
- declare function reducerSome(predicate: any): (result: any, item: any) => any;
16
+ declare function reducerSome(predicate: any): (result: any, element: any) => any;
@@ -10,17 +10,17 @@ const isPromise = require('./isPromise')
10
10
  * ```coffeescript [specscript]
11
11
  * reducerSome(
12
12
  * predicate any=>boolean,
13
- * ) -> anyReducer (result boolean, item any)=>boolean
13
+ * ) -> anyReducer (result boolean, element any)=>boolean
14
14
  * ```
15
15
  *
16
16
  * @related foldableAllReducer
17
17
  *
18
18
  * @TODO throw to break early?
19
19
  */
20
- const reducerSome = predicate => function anyReducer(result, item) {
20
+ const reducerSome = predicate => function anyReducer(result, element) {
21
21
  return result === true ? result
22
- : isPromise(result) ? result.then(curry2(reducerAnySync(predicate), __, item))
23
- : result ? true : predicate(item)
22
+ : isPromise(result) ? result.then(curry2(reducerAnySync(predicate), __, element))
23
+ : result ? true : predicate(element)
24
24
  }
25
25
 
26
26
  module.exports = reducerSome
@@ -4,7 +4,7 @@ export = reducerTryCatch;
4
4
  *
5
5
  * @synopsis
6
6
  * ```coffeescript [specscript]
7
- * type Reducer = (accum any, item any)=>(nextAccumulator Promise|any)
7
+ * type Reducer = (accum any, element any)=>(nextAccumulator Promise|any)
8
8
  *
9
9
  * reducerTryCatch(
10
10
  * reducer function,
@@ -12,4 +12,4 @@ export = reducerTryCatch;
12
12
  * ) -> errorHandlingReducer function
13
13
  * ```
14
14
  */
15
- declare function reducerTryCatch(reducer: any, transducerTryer: any, catcher: any): (accum: any, item: any) => any;
15
+ declare function reducerTryCatch(reducer: any, transducerTryer: any, catcher: any): (accum: any, element: any) => any;
@@ -12,14 +12,14 @@ const curry2 = require('./curry2')
12
12
  * reducer function,
13
13
  * error Error,
14
14
  * accum any,
15
- * item any,
15
+ * element any,
16
16
  * ) -> Promise|any
17
17
  * ```
18
18
  */
19
19
  const _reducerTryCatchErrorHandler = function (
20
- catcher, reducer, error, accum, item,
20
+ catcher, reducer, error, accum, element,
21
21
  ) {
22
- const c = catcher(error, item)
22
+ const c = catcher(error, element)
23
23
  return isPromise(c) ? c.then(curry2(reducer, accum, __)) : reducer(accum, c)
24
24
  }
25
25
 
@@ -28,7 +28,7 @@ const _reducerTryCatchErrorHandler = function (
28
28
  *
29
29
  * @synopsis
30
30
  * ```coffeescript [specscript]
31
- * type Reducer = (accum any, item any)=>(nextAccumulator Promise|any)
31
+ * type Reducer = (accum any, element any)=>(nextAccumulator Promise|any)
32
32
  *
33
33
  * reducerTryCatch(
34
34
  * reducer function,
@@ -38,15 +38,15 @@ const _reducerTryCatchErrorHandler = function (
38
38
  */
39
39
  const reducerTryCatch = function (reducer, transducerTryer, catcher) {
40
40
  const finalReducer = transducerTryer(reducer)
41
- return function errorHandlingReducer(accum, item) {
41
+ return function errorHandlingReducer(accum, element) {
42
42
  try {
43
- const ret = finalReducer(accum, item)
43
+ const ret = finalReducer(accum, element)
44
44
  return isPromise(ret) ? ret.catch(curry5(
45
- _reducerTryCatchErrorHandler, catcher, reducer, __, accum, item,
45
+ _reducerTryCatchErrorHandler, catcher, reducer, __, accum, element,
46
46
  )) : ret
47
47
  } catch (error) {
48
48
  return _reducerTryCatchErrorHandler(
49
- catcher, reducer, error, accum, item,
49
+ catcher, reducer, error, accum, element,
50
50
  )
51
51
  }
52
52
  }
@@ -11,6 +11,6 @@ export = setFilter;
11
11
  * ```
12
12
  *
13
13
  * @description
14
- * Filter items of a Set concurrently by predicate. `predicate` may be asynchronous.
14
+ * Filter elements of a Set concurrently by predicate. `predicate` may be asynchronous.
15
15
  */
16
16
  declare function setFilter(value: any, predicate: any): any;
@@ -19,19 +19,19 @@ const noop = require('./noop')
19
19
  * ```
20
20
  *
21
21
  * @description
22
- * Filter items of a Set concurrently by predicate. `predicate` may be asynchronous.
22
+ * Filter elements of a Set concurrently by predicate. `predicate` may be asynchronous.
23
23
  */
24
24
  const setFilter = function (value, predicate) {
25
25
  const result = new Set(),
26
26
  resultAdd = result.add.bind(result),
27
27
  promises = []
28
- for (const item of value) {
29
- const predication = predicate(item, item, value)
28
+ for (const element of value) {
29
+ const predication = predicate(element, element, value)
30
30
  if (isPromise(predication)) {
31
31
  promises.push(predication.then(curry3(
32
- thunkConditional, __, thunkify1(resultAdd, item), noop)))
32
+ thunkConditional, __, thunkify1(resultAdd, element), noop)))
33
33
  } else if (predication) {
34
- result.add(item)
34
+ result.add(element)
35
35
  }
36
36
  }
37
37
  return promises.length == 0
@@ -30,45 +30,45 @@ const setFlatten = function (set) {
30
30
  const size = set.size,
31
31
  promises = [],
32
32
  result = new Set(),
33
- resultAddReducer = (_, subItem) => result.add(subItem),
33
+ resultAddReducer = (_, subElement) => result.add(subElement),
34
34
  resultAdd = curry3(callPropUnary, result, 'add', __),
35
35
  getResult = () => result
36
36
 
37
- for (const item of set) {
38
- if (isArray(item)) {
39
- const itemLength = item.length
40
- let itemIndex = -1
41
- while (++itemIndex < itemLength) {
42
- result.add(item[itemIndex])
37
+ for (const element of set) {
38
+ if (isArray(element)) {
39
+ const elementLength = element.length
40
+ let elementIndex = -1
41
+ while (++elementIndex < elementLength) {
42
+ result.add(element[elementIndex])
43
43
  }
44
- } else if (item == null) {
45
- result.add(item)
46
- } else if (typeof item[symbolIterator] == 'function') {
47
- for (const subItem of item) {
48
- result.add(subItem)
44
+ } else if (element == null) {
45
+ result.add(element)
46
+ } else if (typeof element[symbolIterator] == 'function') {
47
+ for (const subElement of element) {
48
+ result.add(subElement)
49
49
  }
50
- } else if (typeof item[symbolAsyncIterator] == 'function') {
50
+ } else if (typeof element[symbolAsyncIterator] == 'function') {
51
51
  promises.push(
52
- asyncIteratorForEach(item[symbolAsyncIterator](), resultAdd))
53
- } else if (typeof item.chain == 'function') {
54
- const monadValue = item.chain(identity)
52
+ asyncIteratorForEach(element[symbolAsyncIterator](), resultAdd))
53
+ } else if (typeof element.chain == 'function') {
54
+ const monadValue = element.chain(identity)
55
55
  isPromise(monadValue)
56
56
  ? promises.push(monadValue.then(resultAdd))
57
57
  : result.add(monadValue)
58
- } else if (typeof item.flatMap == 'function') {
59
- const monadValue = item.flatMap(identity)
58
+ } else if (typeof element.flatMap == 'function') {
59
+ const monadValue = element.flatMap(identity)
60
60
  isPromise(monadValue)
61
61
  ? promises.push(monadValue.then(resultAdd))
62
62
  : result.add(monadValue)
63
- } else if (typeof item.reduce == 'function') {
64
- const folded = item.reduce(resultAddReducer, null)
63
+ } else if (typeof element.reduce == 'function') {
64
+ const folded = element.reduce(resultAddReducer, null)
65
65
  isPromise(folded) && promises.push(folded)
66
- } else if (item.constructor == Object) {
67
- for (const key in item) {
68
- result.add(item[key])
66
+ } else if (element.constructor == Object) {
67
+ for (const key in element) {
68
+ result.add(element[key])
69
69
  }
70
70
  } else {
71
- result.add(item)
71
+ result.add(element)
72
72
  }
73
73
  }
74
74
  return promises.length == 0 ? result : promiseAll(promises).then(getResult)
@@ -12,6 +12,6 @@ export = setMap;
12
12
  * ```
13
13
  *
14
14
  * @description
15
- * Apply a mapper concurrently to each item of a set, returning a set of results.
15
+ * Apply a mapper concurrently to each element of a set, returning a set of results.
16
16
  */
17
17
  declare function setMap(set: any, mapper: any): any;
@@ -18,17 +18,17 @@ const callPropUnary = require('./callPropUnary')
18
18
  * ```
19
19
  *
20
20
  * @description
21
- * Apply a mapper concurrently to each item of a set, returning a set of results.
21
+ * Apply a mapper concurrently to each element of a set, returning a set of results.
22
22
  */
23
23
  const setMap = function (set, mapper) {
24
24
  const result = new Set(),
25
25
  promises = []
26
- for (const item of set) {
27
- const resultItem = mapper(item, item, set)
28
- if (isPromise(resultItem)) {
29
- promises.push(resultItem.then(curry3(callPropUnary, result, 'add', __)))
26
+ for (const element of set) {
27
+ const resultElement = mapper(element, element, set)
28
+ if (isPromise(resultElement)) {
29
+ promises.push(resultElement.then(curry3(callPropUnary, result, 'add', __)))
30
30
  } else {
31
- result.add(resultItem)
31
+ result.add(resultElement)
32
32
  }
33
33
  }
34
34
  return promises.length == 0
@@ -26,15 +26,15 @@ const _setMapPoolAsync = async function (
26
26
  if (promises.size >= concurrency) {
27
27
  await promiseRace(promises)
28
28
  }
29
- const resultItem = f(iteration.value, iteration.value, s)
30
- if (isPromise(resultItem)) {
31
- const selfDeletingPromise = resultItem.then(resolvedValue => {
29
+ const resultElement = f(iteration.value, iteration.value, s)
30
+ if (isPromise(resultElement)) {
31
+ const selfDeletingPromise = resultElement.then(resolvedValue => {
32
32
  promises.delete(selfDeletingPromise)
33
33
  result.add(resolvedValue)
34
34
  })
35
35
  promises.add(selfDeletingPromise)
36
36
  } else {
37
- result.add(resultItem)
37
+ result.add(resultElement)
38
38
  }
39
39
  iteration = iterator.next()
40
40
  }
@@ -53,24 +53,24 @@ const _setMapPoolAsync = async function (
53
53
  * ```
54
54
  *
55
55
  * @description
56
- * Apply a function `f` with limited concurrency to each item of a set `s`, returning an array of results.
56
+ * Apply a function `f` with limited concurrency to each element of a set `s`, returning an array of results.
57
57
  */
58
58
  const setMapPool = function (s, concurrency, f) {
59
59
  const result = new Set()
60
60
  const iterator = s[symbolIterator]()
61
61
  let iteration = iterator.next()
62
62
  while (!iteration.done) {
63
- const resultItem = f(iteration.value, iteration.value, s)
64
- if (isPromise(resultItem)) {
63
+ const resultElement = f(iteration.value, iteration.value, s)
64
+ if (isPromise(resultElement)) {
65
65
  const promises = new Set()
66
- const selfDeletingPromise = resultItem.then(resolvedValue => {
66
+ const selfDeletingPromise = resultElement.then(resolvedValue => {
67
67
  promises.delete(selfDeletingPromise)
68
68
  result.add(resolvedValue)
69
69
  })
70
70
  promises.add(selfDeletingPromise)
71
71
  return _setMapPoolAsync(s, iterator, concurrency, f, result, promises)
72
72
  }
73
- result.add(resultItem)
73
+ result.add(resultElement)
74
74
  iteration = iterator.next()
75
75
  }
76
76
  return result
@@ -14,11 +14,11 @@ const symbolIterator = require('./symbolIterator')
14
14
  const _setMapSeriesAsync = async function (iterator, f, result) {
15
15
  let iteration = iterator.next()
16
16
  while (!iteration.done) {
17
- let resultItem = f(iteration.value)
18
- if (isPromise(resultItem)) {
19
- resultItem = await resultItem
17
+ let resultElement = f(iteration.value)
18
+ if (isPromise(resultElement)) {
19
+ resultElement = await resultElement
20
20
  }
21
- result.add(resultItem)
21
+ result.add(resultElement)
22
22
  iteration = iterator.next()
23
23
  }
24
24
  return result
@@ -33,27 +33,27 @@ const _setMapSeriesAsync = async function (iterator, f, result) {
33
33
  * value any,
34
34
  * key any,
35
35
  * collection Set
36
- * )=>(resultItem Promise|any)
36
+ * )=>(resultElement Promise|any)
37
37
  *
38
38
  * setMapSeries(set Set, f SetMapper) -> Promise|Set
39
39
  * ```
40
40
  *
41
41
  * @description
42
- * Apply a mapper in series to each value of a set, returning a new set of mapped items. Mapper may be asynchronous.
42
+ * Apply a mapper in series to each value of a set, returning a new set of mapped elements. Mapper may be asynchronous.
43
43
  */
44
44
  const setMapSeries = function (set, f) {
45
45
  const result = new Set()
46
46
  const iterator = set[symbolIterator]()
47
47
  let iteration = iterator.next()
48
48
  while (!iteration.done) {
49
- const resultItem = f(iteration.value)
50
- if (isPromise(resultItem)) {
51
- return resultItem.then(funcConcat(
49
+ const resultElement = f(iteration.value)
50
+ if (isPromise(resultElement)) {
51
+ return resultElement.then(funcConcat(
52
52
  curry2(setAdd, result, __),
53
53
  thunkify3(_setMapSeriesAsync, iterator, f, result),
54
54
  ))
55
55
  }
56
- result.add(resultItem)
56
+ result.add(resultElement)
57
57
  iteration = iterator.next()
58
58
  }
59
59
  return result
@@ -26,49 +26,49 @@ const symbolAsyncIterator = require('./symbolAsyncIterator')
26
26
  *
27
27
  * streamFlatExtend<T>(
28
28
  * stream Stream<T>,
29
- * item <Monad<T>|Foldable<T>|T>
29
+ * element <Monad<T>|Foldable<T>|T>
30
30
  * ) -> stream
31
31
  * ```
32
32
  */
33
- const streamFlatExtend = async function (stream, item) {
33
+ const streamFlatExtend = async function (stream, element) {
34
34
  const resultStreamWrite = curry2(streamWrite, stream, __),
35
- // resultStreamWriteReducer = (_, subItem) => stream.write(subItem),
35
+ // resultStreamWriteReducer = (_, subElement) => stream.write(subElement),
36
36
  resultStreamWriteReducer = funcConcatSync(getArg1, resultStreamWrite),
37
37
  promises = []
38
- if (isArray(item)) {
39
- const itemLength = item.length
40
- let itemIndex = -1
41
- while (++itemIndex < itemLength) {
42
- stream.write(item[itemIndex])
38
+ if (isArray(element)) {
39
+ const elementLength = element.length
40
+ let elementIndex = -1
41
+ while (++elementIndex < elementLength) {
42
+ stream.write(element[elementIndex])
43
43
  }
44
- } else if (item == null) {
45
- stream.write(item)
46
- } else if (typeof item[symbolIterator] == 'function') {
47
- for (const subItem of item) {
48
- stream.write(subItem)
44
+ } else if (element == null) {
45
+ stream.write(element)
46
+ } else if (typeof element[symbolIterator] == 'function') {
47
+ for (const subElement of element) {
48
+ stream.write(subElement)
49
49
  }
50
- } else if (typeof item[symbolAsyncIterator] == 'function') {
50
+ } else if (typeof element[symbolAsyncIterator] == 'function') {
51
51
  promises.push(
52
- asyncIteratorForEach(item[symbolAsyncIterator](), resultStreamWrite))
53
- } else if (typeof item.chain == 'function') {
54
- const monadValue = item.chain(identity)
52
+ asyncIteratorForEach(element[symbolAsyncIterator](), resultStreamWrite))
53
+ } else if (typeof element.chain == 'function') {
54
+ const monadValue = element.chain(identity)
55
55
  isPromise(monadValue)
56
56
  ? promises.push(monadValue.then(resultStreamWrite))
57
57
  : stream.write(monadValue)
58
- } else if (typeof item.flatMap == 'function') {
59
- const monadValue = item.flatMap(identity)
58
+ } else if (typeof element.flatMap == 'function') {
59
+ const monadValue = element.flatMap(identity)
60
60
  isPromise(monadValue)
61
61
  ? promises.push(monadValue.then(resultStreamWrite))
62
62
  : stream.write(monadValue)
63
- } else if (typeof item.reduce == 'function') {
64
- const folded = item.reduce(resultStreamWriteReducer, null)
63
+ } else if (typeof element.reduce == 'function') {
64
+ const folded = element.reduce(resultStreamWriteReducer, null)
65
65
  isPromise(folded) && promises.push(folded)
66
- } else if (item.constructor == Object) {
67
- for (const key in item) {
68
- stream.write(item[key])
66
+ } else if (element.constructor == Object) {
67
+ for (const key in element) {
68
+ stream.write(element[key])
69
69
  }
70
70
  } else {
71
- stream.write(item)
71
+ stream.write(element)
72
72
  }
73
73
  return promises.length == 0
74
74
  ? stream
@@ -24,8 +24,8 @@ const promiseAll = require('./promiseAll')
24
24
  */
25
25
  const streamFlatMap = async function (stream, flatMapper) {
26
26
  const promises = new Set()
27
- for await (const item of stream) {
28
- const monad = flatMapper(item)
27
+ for await (const element of stream) {
28
+ const monad = flatMapper(element)
29
29
  if (isPromise(monad)) {
30
30
  const selfDeletingPromise = monad.then(
31
31
  curry2(streamFlatExtend, stream, __)).then(
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 SyncOrAsyncResolver = (...args)=>Promise|any
43
+ *
44
+ * arrayResolversOrPromisesOrValues Array<SyncOrAsyncResolver|Promise|any>
45
+ * objectResolversOrPromisesOrValues Object<SyncOrAsyncResolver|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,52 @@ 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>
101
102
  *
102
- * and(...args, predicatesOrValues Array<function|boolean>) -> Promise|boolean
103
+ * type SyncOrAsyncPredicate = (...args)=>Promise|boolean|any
103
104
  *
104
- * and(predicatesOrValues Array<function|boolean>)(...args) -> Promise|boolean
105
+ * predicatesOrValues Array<SyncOrAsyncPredicate|boolean|any>
106
+ *
107
+ * and(values Array<boolean|any>) -> result boolean
108
+ * and(...argsOrPromises, predicatesOrValues) -> Promise|boolean
109
+ * and(predicatesOrValues)(...args) -> Promise|boolean
105
110
  * ```
106
111
  *
107
112
  * @description
108
- * Tests an array of boolean values, returning true if all boolean values are truthy.
113
+ * 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.
114
+ *
115
+ * If provided an array of boolean values, `and` returns true if all boolean values are true.
109
116
  *
110
117
  * ```javascript [playground]
111
118
  * const oneIsLessThanThree = 1 < 3
112
119
  * const twoIsGreaterThanOne = 2 > 1
113
120
  * const threeIsEqualToThree = 3 === 3
114
121
  *
115
- * console.log(
116
- * and([oneIsLessThanThree, twoIsGreaterThanOne, threeIsEqualToThree]),
117
- * ) // true
122
+ * const condition = and([
123
+ * oneIsLessThanThree,
124
+ * twoIsGreaterThanOne,
125
+ * threeIsEqualToThree
126
+ * ])
127
+ * console.log(condition) // true
118
128
  * ```
119
129
  *
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.
130
+ * 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
131
  *
122
132
  * ```javascript [playground]
123
133
  * const isOdd = number => number % 2 == 1
124
- *
125
134
  * const isPositive = number => number > 0
135
+ * const asyncIsLessThan3 = async number => number < 3
126
136
  *
127
- * const isLessThan3 = number => number < 3
137
+ * const aggregatePredicate = and([
138
+ * true,
139
+ * isOdd,
140
+ * isPositive,
141
+ * asyncIsLessThan3,
142
+ * ])
128
143
  *
129
- * console.log(
130
- * and([isOdd, isPositive, isLessThan3])(1),
131
- * ) // true
144
+ * const condition = await aggregatePredicate(1)
145
+ * console.log(condition) // true
132
146
  * ```
133
147
  *
134
148
  * Any promises passed in argument position are resolved for their values before further execution. This only applies to the eager version of the API.