rubico 2.8.6 → 2.10.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 (378) hide show
  1. package/README.md +1 -1
  2. package/_internal/FlatMappingAsyncIterator.js +41 -30
  3. package/_internal/LinkedList.js +54 -0
  4. package/_internal/LinkedList.test.js +34 -0
  5. package/_internal/MappingAsyncIterator.js +65 -15
  6. package/_internal/SerialMappingAsyncIterator.js +79 -0
  7. package/_internal/iteratorFind.js +0 -2
  8. package/_internal/iteratorForEachSeries.js +1 -1
  9. package/_internal/objectFlatten.js +4 -1
  10. package/all.js +7 -8
  11. package/and.js +1 -1
  12. package/assign.js +1 -1
  13. package/compose.js +1 -1
  14. package/curry.js +1 -1
  15. package/dist/Transducer.es.js +1 -1
  16. package/dist/Transducer.es.min.js +1 -1
  17. package/dist/Transducer.js +1 -1
  18. package/dist/Transducer.min.js +1 -1
  19. package/dist/Transducer.mjs +1 -1
  20. package/dist/__.es.js +1 -1
  21. package/dist/__.es.min.js +1 -1
  22. package/dist/__.js +1 -1
  23. package/dist/__.min.js +1 -1
  24. package/dist/__.mjs +1 -1
  25. package/dist/all.es.js +1 -1
  26. package/dist/all.es.min.js +1 -1
  27. package/dist/all.js +1 -1
  28. package/dist/all.min.js +1 -1
  29. package/dist/all.mjs +1 -1
  30. package/dist/always.es.js +1 -1
  31. package/dist/always.es.min.js +1 -1
  32. package/dist/always.js +1 -1
  33. package/dist/always.min.js +1 -1
  34. package/dist/always.mjs +1 -1
  35. package/dist/and.es.js +1 -1
  36. package/dist/and.es.min.js +1 -1
  37. package/dist/and.js +1 -1
  38. package/dist/and.min.js +1 -1
  39. package/dist/and.mjs +1 -1
  40. package/dist/assign.es.js +1 -1
  41. package/dist/assign.es.min.js +1 -1
  42. package/dist/assign.js +1 -1
  43. package/dist/assign.min.js +1 -1
  44. package/dist/assign.mjs +1 -1
  45. package/dist/compose.es.js +1 -1
  46. package/dist/compose.es.min.js +1 -1
  47. package/dist/compose.js +1 -1
  48. package/dist/compose.min.js +1 -1
  49. package/dist/compose.mjs +1 -1
  50. package/dist/curry.es.js +1 -1
  51. package/dist/curry.es.min.js +1 -1
  52. package/dist/curry.js +1 -1
  53. package/dist/curry.min.js +1 -1
  54. package/dist/curry.mjs +1 -1
  55. package/dist/eq.es.js +1 -1
  56. package/dist/eq.es.min.js +1 -1
  57. package/dist/eq.js +1 -1
  58. package/dist/eq.min.js +1 -1
  59. package/dist/eq.mjs +1 -1
  60. package/dist/every.es.js +1 -1
  61. package/dist/every.es.min.js +1 -1
  62. package/dist/every.js +1 -1
  63. package/dist/every.min.js +1 -1
  64. package/dist/every.mjs +1 -1
  65. package/dist/filter.es.js +4 -4
  66. package/dist/filter.es.min.js +2 -2
  67. package/dist/filter.js +4 -4
  68. package/dist/filter.min.js +2 -2
  69. package/dist/filter.mjs +4 -4
  70. package/dist/flatMap.es.js +44 -28
  71. package/dist/flatMap.es.min.js +2 -2
  72. package/dist/flatMap.js +44 -28
  73. package/dist/flatMap.min.js +2 -2
  74. package/dist/flatMap.mjs +44 -28
  75. package/dist/forEach.es.js +6 -6
  76. package/dist/forEach.es.min.js +2 -2
  77. package/dist/forEach.js +6 -6
  78. package/dist/forEach.min.js +2 -2
  79. package/dist/forEach.mjs +6 -6
  80. package/dist/get.es.js +1 -1
  81. package/dist/get.es.min.js +1 -1
  82. package/dist/get.js +1 -1
  83. package/dist/get.min.js +1 -1
  84. package/dist/get.mjs +1 -1
  85. package/dist/gt.es.js +1 -1
  86. package/dist/gt.es.min.js +1 -1
  87. package/dist/gt.js +1 -1
  88. package/dist/gt.min.js +1 -1
  89. package/dist/gt.mjs +1 -1
  90. package/dist/gte.es.js +1 -1
  91. package/dist/gte.es.min.js +1 -1
  92. package/dist/gte.js +1 -1
  93. package/dist/gte.min.js +1 -1
  94. package/dist/gte.mjs +1 -1
  95. package/dist/lt.es.js +1 -1
  96. package/dist/lt.es.min.js +1 -1
  97. package/dist/lt.js +1 -1
  98. package/dist/lt.min.js +1 -1
  99. package/dist/lt.mjs +1 -1
  100. package/dist/lte.es.js +1 -1
  101. package/dist/lte.es.min.js +1 -1
  102. package/dist/lte.js +1 -1
  103. package/dist/lte.min.js +1 -1
  104. package/dist/lte.mjs +1 -1
  105. package/dist/map.es.js +187 -39
  106. package/dist/map.es.min.js +2 -2
  107. package/dist/map.js +187 -39
  108. package/dist/map.min.js +2 -2
  109. package/dist/map.mjs +187 -39
  110. package/dist/not.es.js +1 -1
  111. package/dist/not.es.min.js +1 -1
  112. package/dist/not.js +1 -1
  113. package/dist/not.min.js +1 -1
  114. package/dist/not.mjs +1 -1
  115. package/dist/omit.es.js +1 -1
  116. package/dist/omit.es.min.js +1 -1
  117. package/dist/omit.js +1 -1
  118. package/dist/omit.min.js +1 -1
  119. package/dist/omit.mjs +1 -1
  120. package/dist/or.es.js +1 -1
  121. package/dist/or.es.min.js +1 -1
  122. package/dist/or.js +1 -1
  123. package/dist/or.min.js +1 -1
  124. package/dist/or.mjs +1 -1
  125. package/dist/pick.es.js +1 -1
  126. package/dist/pick.es.min.js +1 -1
  127. package/dist/pick.js +1 -1
  128. package/dist/pick.min.js +1 -1
  129. package/dist/pick.mjs +1 -1
  130. package/dist/pipe.es.js +1 -1
  131. package/dist/pipe.es.min.js +1 -1
  132. package/dist/pipe.js +1 -1
  133. package/dist/pipe.min.js +1 -1
  134. package/dist/pipe.mjs +1 -1
  135. package/dist/reduce.es.js +1 -1
  136. package/dist/reduce.es.min.js +1 -1
  137. package/dist/reduce.js +1 -1
  138. package/dist/reduce.min.js +1 -1
  139. package/dist/reduce.mjs +1 -1
  140. package/dist/rubico.es.js +233 -78
  141. package/dist/rubico.es.min.js +2 -2
  142. package/dist/rubico.global.js +233 -78
  143. package/dist/rubico.global.min.js +2 -2
  144. package/dist/rubico.js +233 -78
  145. package/dist/rubico.min.js +2 -2
  146. package/dist/rubico.mjs +233 -78
  147. package/dist/set.es.js +1 -1
  148. package/dist/set.es.min.js +1 -1
  149. package/dist/set.js +1 -1
  150. package/dist/set.min.js +1 -1
  151. package/dist/set.mjs +1 -1
  152. package/dist/some.es.js +1 -1
  153. package/dist/some.es.min.js +1 -1
  154. package/dist/some.js +1 -1
  155. package/dist/some.min.js +1 -1
  156. package/dist/some.mjs +1 -1
  157. package/dist/switchCase.es.js +1 -1
  158. package/dist/switchCase.es.min.js +1 -1
  159. package/dist/switchCase.js +1 -1
  160. package/dist/switchCase.min.js +1 -1
  161. package/dist/switchCase.mjs +1 -1
  162. package/dist/tap.es.js +1 -1
  163. package/dist/tap.es.min.js +1 -1
  164. package/dist/tap.js +1 -1
  165. package/dist/tap.min.js +1 -1
  166. package/dist/tap.mjs +1 -1
  167. package/dist/thunkify.es.js +1 -1
  168. package/dist/thunkify.es.min.js +1 -1
  169. package/dist/thunkify.js +1 -1
  170. package/dist/thunkify.min.js +1 -1
  171. package/dist/thunkify.mjs +1 -1
  172. package/dist/transform.es.js +1 -1
  173. package/dist/transform.es.min.js +1 -1
  174. package/dist/transform.js +1 -1
  175. package/dist/transform.min.js +1 -1
  176. package/dist/transform.mjs +1 -1
  177. package/dist/tryCatch.es.js +1 -1
  178. package/dist/tryCatch.es.min.js +1 -1
  179. package/dist/tryCatch.js +1 -1
  180. package/dist/tryCatch.min.js +1 -1
  181. package/dist/tryCatch.mjs +1 -1
  182. package/dist/x/append.es.js +1 -1
  183. package/dist/x/append.es.min.js +1 -1
  184. package/dist/x/append.js +1 -1
  185. package/dist/x/append.min.js +1 -1
  186. package/dist/x/append.mjs +1 -1
  187. package/dist/x/callProp.es.js +1 -1
  188. package/dist/x/callProp.es.min.js +1 -1
  189. package/dist/x/callProp.js +1 -1
  190. package/dist/x/callProp.min.js +1 -1
  191. package/dist/x/callProp.mjs +1 -1
  192. package/dist/x/defaultsDeep.es.js +1 -1
  193. package/dist/x/defaultsDeep.es.min.js +1 -1
  194. package/dist/x/defaultsDeep.js +1 -1
  195. package/dist/x/defaultsDeep.min.js +1 -1
  196. package/dist/x/defaultsDeep.mjs +1 -1
  197. package/dist/x/differenceWith.es.js +1 -1
  198. package/dist/x/differenceWith.es.min.js +1 -1
  199. package/dist/x/differenceWith.js +1 -1
  200. package/dist/x/differenceWith.min.js +1 -1
  201. package/dist/x/differenceWith.mjs +1 -1
  202. package/dist/x/filterOut.es.js +4 -4
  203. package/dist/x/filterOut.es.min.js +2 -2
  204. package/dist/x/filterOut.js +4 -4
  205. package/dist/x/filterOut.min.js +2 -2
  206. package/dist/x/filterOut.mjs +4 -4
  207. package/dist/x/find.es.js +1 -3
  208. package/dist/x/find.es.min.js +1 -1
  209. package/dist/x/find.js +1 -3
  210. package/dist/x/find.min.js +1 -1
  211. package/dist/x/find.mjs +1 -3
  212. package/dist/x/findIndex.es.js +1 -1
  213. package/dist/x/findIndex.es.min.js +1 -1
  214. package/dist/x/findIndex.js +1 -1
  215. package/dist/x/findIndex.min.js +1 -1
  216. package/dist/x/findIndex.mjs +1 -1
  217. package/dist/x/first.es.js +1 -1
  218. package/dist/x/first.es.min.js +1 -1
  219. package/dist/x/first.js +1 -1
  220. package/dist/x/first.min.js +1 -1
  221. package/dist/x/first.mjs +1 -1
  222. package/dist/x/flatten.es.js +44 -28
  223. package/dist/x/flatten.es.min.js +2 -2
  224. package/dist/x/flatten.js +44 -28
  225. package/dist/x/flatten.min.js +2 -2
  226. package/dist/x/flatten.mjs +44 -28
  227. package/dist/x/groupBy.es.js +1 -1
  228. package/dist/x/groupBy.es.min.js +1 -1
  229. package/dist/x/groupBy.js +1 -1
  230. package/dist/x/groupBy.min.js +1 -1
  231. package/dist/x/groupBy.mjs +1 -1
  232. package/dist/x/has.es.js +1 -1
  233. package/dist/x/has.es.min.js +1 -1
  234. package/dist/x/has.js +1 -1
  235. package/dist/x/has.min.js +1 -1
  236. package/dist/x/has.mjs +1 -1
  237. package/dist/x/identity.es.js +1 -1
  238. package/dist/x/identity.es.min.js +1 -1
  239. package/dist/x/identity.js +1 -1
  240. package/dist/x/identity.min.js +1 -1
  241. package/dist/x/identity.mjs +1 -1
  242. package/dist/x/includes.es.js +1 -1
  243. package/dist/x/includes.es.min.js +1 -1
  244. package/dist/x/includes.js +1 -1
  245. package/dist/x/includes.min.js +1 -1
  246. package/dist/x/includes.mjs +1 -1
  247. package/dist/x/isDeepEqual.es.js +1 -1
  248. package/dist/x/isDeepEqual.es.min.js +1 -1
  249. package/dist/x/isDeepEqual.js +1 -1
  250. package/dist/x/isDeepEqual.min.js +1 -1
  251. package/dist/x/isDeepEqual.mjs +1 -1
  252. package/dist/x/isEmpty.es.js +1 -1
  253. package/dist/x/isEmpty.es.min.js +1 -1
  254. package/dist/x/isEmpty.js +1 -1
  255. package/dist/x/isEmpty.min.js +1 -1
  256. package/dist/x/isEmpty.mjs +1 -1
  257. package/dist/x/isEqual.es.js +1 -1
  258. package/dist/x/isEqual.es.min.js +1 -1
  259. package/dist/x/isEqual.js +1 -1
  260. package/dist/x/isEqual.min.js +1 -1
  261. package/dist/x/isEqual.mjs +1 -1
  262. package/dist/x/isFunction.es.js +1 -1
  263. package/dist/x/isFunction.es.min.js +1 -1
  264. package/dist/x/isFunction.js +1 -1
  265. package/dist/x/isFunction.min.js +1 -1
  266. package/dist/x/isFunction.mjs +1 -1
  267. package/dist/x/isIn.es.js +1 -1
  268. package/dist/x/isIn.es.min.js +1 -1
  269. package/dist/x/isIn.js +1 -1
  270. package/dist/x/isIn.min.js +1 -1
  271. package/dist/x/isIn.mjs +1 -1
  272. package/dist/x/isObject.es.js +1 -1
  273. package/dist/x/isObject.es.min.js +1 -1
  274. package/dist/x/isObject.js +1 -1
  275. package/dist/x/isObject.min.js +1 -1
  276. package/dist/x/isObject.mjs +1 -1
  277. package/dist/x/isString.es.js +1 -1
  278. package/dist/x/isString.es.min.js +1 -1
  279. package/dist/x/isString.js +1 -1
  280. package/dist/x/isString.min.js +1 -1
  281. package/dist/x/isString.mjs +1 -1
  282. package/dist/x/keys.es.js +1 -1
  283. package/dist/x/keys.es.min.js +1 -1
  284. package/dist/x/keys.js +1 -1
  285. package/dist/x/keys.min.js +1 -1
  286. package/dist/x/keys.mjs +1 -1
  287. package/dist/x/last.es.js +1 -1
  288. package/dist/x/last.es.min.js +1 -1
  289. package/dist/x/last.js +1 -1
  290. package/dist/x/last.min.js +1 -1
  291. package/dist/x/last.mjs +1 -1
  292. package/dist/x/maxBy.es.js +1 -1
  293. package/dist/x/maxBy.es.min.js +1 -1
  294. package/dist/x/maxBy.js +1 -1
  295. package/dist/x/maxBy.min.js +1 -1
  296. package/dist/x/maxBy.mjs +1 -1
  297. package/dist/x/noop.es.js +1 -1
  298. package/dist/x/noop.es.min.js +1 -1
  299. package/dist/x/noop.js +1 -1
  300. package/dist/x/noop.min.js +1 -1
  301. package/dist/x/noop.mjs +1 -1
  302. package/dist/x/pluck.es.js +187 -39
  303. package/dist/x/pluck.es.min.js +2 -2
  304. package/dist/x/pluck.js +187 -39
  305. package/dist/x/pluck.min.js +2 -2
  306. package/dist/x/pluck.mjs +187 -39
  307. package/dist/x/prepend.es.js +1 -1
  308. package/dist/x/prepend.es.min.js +1 -1
  309. package/dist/x/prepend.js +1 -1
  310. package/dist/x/prepend.min.js +1 -1
  311. package/dist/x/prepend.mjs +1 -1
  312. package/dist/x/size.es.js +1 -1
  313. package/dist/x/size.es.min.js +1 -1
  314. package/dist/x/size.js +1 -1
  315. package/dist/x/size.min.js +1 -1
  316. package/dist/x/size.mjs +1 -1
  317. package/dist/x/trace.es.js +1 -1
  318. package/dist/x/trace.es.min.js +1 -1
  319. package/dist/x/trace.js +1 -1
  320. package/dist/x/trace.min.js +1 -1
  321. package/dist/x/trace.mjs +1 -1
  322. package/dist/x/unionWith.es.js +1 -1
  323. package/dist/x/unionWith.es.min.js +1 -1
  324. package/dist/x/unionWith.js +1 -1
  325. package/dist/x/unionWith.min.js +1 -1
  326. package/dist/x/unionWith.mjs +1 -1
  327. package/dist/x/uniq.es.js +1 -1
  328. package/dist/x/uniq.es.min.js +1 -1
  329. package/dist/x/uniq.js +1 -1
  330. package/dist/x/uniq.min.js +1 -1
  331. package/dist/x/uniq.mjs +1 -1
  332. package/dist/x/unless.es.js +1 -1
  333. package/dist/x/unless.es.min.js +1 -1
  334. package/dist/x/unless.js +1 -1
  335. package/dist/x/unless.min.js +1 -1
  336. package/dist/x/unless.mjs +1 -1
  337. package/dist/x/values.es.js +1 -1
  338. package/dist/x/values.es.min.js +1 -1
  339. package/dist/x/values.js +1 -1
  340. package/dist/x/values.min.js +1 -1
  341. package/dist/x/values.mjs +1 -1
  342. package/dist/x/when.es.js +1 -1
  343. package/dist/x/when.es.min.js +1 -1
  344. package/dist/x/when.js +1 -1
  345. package/dist/x/when.min.js +1 -1
  346. package/dist/x/when.mjs +1 -1
  347. package/eq.js +2 -2
  348. package/es.js +233 -78
  349. package/every.js +2 -2
  350. package/filter.js +4 -4
  351. package/flatMap.js +61 -54
  352. package/forEach.js +33 -56
  353. package/get.js +5 -3
  354. package/gt.js +2 -2
  355. package/gte.js +2 -2
  356. package/index.js +233 -78
  357. package/lt.js +2 -2
  358. package/lte.js +2 -2
  359. package/map.js +115 -151
  360. package/monad/README.md +1 -1
  361. package/not.js +1 -1
  362. package/omit.js +22 -19
  363. package/or.js +1 -1
  364. package/package.json +1 -1
  365. package/pick.js +14 -11
  366. package/pipe.js +1 -1
  367. package/reduce.js +1 -1
  368. package/set.js +17 -18
  369. package/some.js +2 -2
  370. package/switchCase.js +12 -4
  371. package/tap.js +6 -4
  372. package/transform.js +1 -1
  373. package/tryCatch.js +1 -1
  374. package/x/defaultsDeep.js +1 -1
  375. package/x/defaultsDeep.test.js +1 -1
  376. package/_internal/NextIteration.js +0 -12
  377. package/_internal/generatorFunctionFilter.js +0 -28
  378. package/_internal/iterationMap.js +0 -27
package/pick.js CHANGED
@@ -27,17 +27,21 @@ const _pick = function (source, keys) {
27
27
  *
28
28
  * @synopsis
29
29
  * ```coffeescript [specscript]
30
- * pick(source Promise|Object, keys Array<string>) -> result Object
31
- * pick(keys Array<string>)(source Object) -> result Object
30
+ * keys Array<string>
31
+ *
32
+ * pick(Promise|Object, keys) -> Object
33
+ * pick(keys)(Object) -> Object
32
34
  * ```
33
35
  *
34
36
  * @description
35
- * Creates a new object from a source object by selecting provided keys. If a provided key does not exist on the source object, excludes it from the resulting object.
37
+ * Object constructor. Creates a new object from an argument object by selecting keys from an array. If a key does not exist on the argument object, it is excluded from the new object.
36
38
  *
37
39
  * ```javascript [playground]
38
- * console.log(
39
- * pick({ goodbye: 1, world: 2 }, ['hello', 'world']),
40
- * ) // { world: 2 }
40
+ * const argumentObject = { goodbye: 1, world: 2 }
41
+ *
42
+ * const newObject = pick(argumentObject, ['hello', 'world'])
43
+ *
44
+ * console.log(newObject)
41
45
  * ```
42
46
  *
43
47
  * `pick` supports three types of path patterns for nested property access
@@ -49,24 +53,23 @@ const _pick = function (source, keys) {
49
53
  * ```javascript [playground]
50
54
  * const nested = { a: { b: { c: { d: 1, e: [2, 3] } } } }
51
55
  *
52
- * console.log(pick(['a.b.c.d'])(nested)) // { a: { b: { c: { d: 1 } } } }
56
+ * console.log(pick(nested, ['a.b.c.d']))
53
57
  * ```
54
58
  *
55
- * Compose `pick` inside a `pipe` with its lazy API.
59
+ * `pick` supports a lazy interface for composability.
56
60
  *
57
61
  * ```javascript [playground]
58
62
  * pipe({ a: 1, b: 2, c: 3 }, [
59
63
  * map(number => number ** 2),
60
64
  * pick(['a', 'c']),
61
- * console.log, // { a: 1, c: 9 }
65
+ * console.log,
62
66
  * ])
63
67
  * ```
64
68
  *
65
- * Any promises passed in argument position are resolved for their values before further execution.
69
+ * If the argument object is a promise, it is resolved for its value before further execution for the eager interface only.
66
70
  *
67
71
  * ```javascript [playground]
68
72
  * pick(Promise.resolve({ a: 1, b: 2, c: 3 }), ['a', 'b']).then(console.log)
69
- * // { a: 1, b: 2 }
70
73
  * ```
71
74
  *
72
75
  * See also:
package/pipe.js CHANGED
@@ -49,7 +49,7 @@ const __ = require('./_internal/placeholder')
49
49
  * console.log(appendBC('a'))
50
50
  * ```
51
51
  *
52
- * Any promises passed in argument position are resolved for their values before further execution.
52
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
53
53
  *
54
54
  * ```javascript [playground]
55
55
  * pipe(Promise.resolve(1), 2, Promise.resolve(3), [
package/reduce.js CHANGED
@@ -193,7 +193,7 @@ const _reduce = function (collection, reducer, initial) {
193
193
  * reduce(asyncGenerate(), asyncAdd).then(console.log) // 15
194
194
  * ```
195
195
  *
196
- * Any promises passed in argument position are resolved for their values before further execution.
196
+ * Any promises passed in data argument position are resolved for their values before further execution.
197
197
  *
198
198
  * ```javascript [playground]
199
199
  * const add = (a, b) => a + b
package/set.js CHANGED
@@ -38,20 +38,19 @@ const _set = function (obj, path, value) {
38
38
  *
39
39
  * @synopsis
40
40
  * ```coffeescript [specscript]
41
- * set(
42
- * object Promise|Object,
43
- * path string|Array<string|number>,
44
- * value function|any,
45
- * ) -> result Promise|Object
41
+ * path string|Array<string|number>
42
+ * resolver (...arguments)=>Promise|any
43
+ * value any
46
44
  *
47
- * set(
48
- * path string|Array<string|number>,
49
- * value function|any,
50
- * )(object Object) -> result Promise|Object
45
+ * set(Promise|Object, path, value) -> Promise|Object
46
+ * set(Promise|Object, path, resolver) -> Promise|Object
47
+ *
48
+ * set(path, value)(Object) -> Promise|Object
49
+ * set(path, resolver)(Object) -> Promise|Object
51
50
  * ```
52
51
  *
53
52
  * @description
54
- * Sets a property on a new object shallow cloned from the argument object given a path denoted by a string, number, or an array of string or numbers.
53
+ * Property setter. Shallow clones the argument object and sets a property on the shallow cloned object at the path denoted by a string, number, or array of string or numbers.
55
54
  *
56
55
  * `set` supports three types of path patterns for nested property access.
57
56
  *
@@ -60,15 +59,15 @@ const _set = function (obj, path, value) {
60
59
  * * an array of keys or indices - `['a', 0, 'value']`
61
60
  *
62
61
  * ```javascript [playground]
63
- * console.log(set({ b: 2 }, 'a', 1)) // { a: 1, b: 2 }
62
+ * console.log(set({ b: 2 }, 'a', 1))
64
63
  *
65
64
  * const nestedAC2 = { a: { c: 2 } }
66
65
  *
67
- * console.log(set(nestedAC2, 'a.b', 1)) // { a : { b: 1, c: 2 }}
66
+ * console.log(set(nestedAC2, 'a.b', 1))
68
67
  *
69
68
  * const nestedA0BC3 = { a: [{ b: { c: 3 } }] }
70
69
  *
71
- * console.log(set(nestedA0BC3, 'a[0].b.c', 4)) // { a: [{ b: { c: 4 } }] }
70
+ * console.log(set(nestedA0BC3, 'a[0].b.c', 4))
72
71
  * ```
73
72
  *
74
73
  * The property value may be a function, in which case it is treated as a resolver and provided the argument object to resolve the value to set.
@@ -78,22 +77,22 @@ const _set = function (obj, path, value) {
78
77
  *
79
78
  * const myNewObj = set('b', obj => obj.a + 2)(myObj)
80
79
  *
81
- * console.log(myNewObj) // { a: 1, b: 3 }
80
+ * console.log(myNewObj)
82
81
  * ```
83
82
  *
84
- * `set` supports a lazy API for composability.
83
+ * `set` supports a lazy interface for composability.
85
84
  *
86
85
  * ```javascript [playground]
87
86
  * pipe({ a: 1 }, [
88
87
  * set('b', 2),
89
- * console.log, // { a: 1, b: 2 }
88
+ * console.log,
90
89
  * ])
91
90
  * ```
92
91
  *
93
- * Any promises passed in argument position are resolved for their values before further execution.
92
+ * If the argument object is a promise, it is resolved for its value before further execution for the eager interface only.
94
93
  *
95
94
  * ```javascript [playground]
96
- * set(Promise.resolve({}), 'a', 1).then(console.log) // { a: 1 }
95
+ * set(Promise.resolve({}), 'a', 1).then(console.log)
97
96
  * ```
98
97
  *
99
98
  * See also:
package/some.js CHANGED
@@ -94,7 +94,7 @@ const _some = function (collection, predicate) {
94
94
  * promise.then(console.log) // true
95
95
  * ```
96
96
  *
97
- * `some` supports a lazy API for composability.
97
+ * `some` supports a lazy interface for composability.
98
98
  *
99
99
  * ```javascript [playground]
100
100
  * pipe([1, 2, 3], [
@@ -103,7 +103,7 @@ const _some = function (collection, predicate) {
103
103
  * ])
104
104
  * ```
105
105
  *
106
- * Any promises passed in argument position are resolved for their values before further execution.
106
+ * Any promises passed in data argument position are resolved for their values before further execution.
107
107
  *
108
108
  * ```javascript [playground]
109
109
  * some(Promise.resolve([1, 2, 3, 4, 5]), n => n > 6).then(console.log) // false
package/switchCase.js CHANGED
@@ -38,7 +38,7 @@ const curryArgs3 = require('./_internal/curryArgs3')
38
38
  * ])
39
39
  * ```
40
40
  *
41
- * `switchCase` supports a lazy API for composability.
41
+ * `switchCase` supports a lazy interface for composability.
42
42
  *
43
43
  * ```javascript [playground]
44
44
  * const fruitsGuesser = switchCase([
@@ -80,16 +80,24 @@ const curryArgs3 = require('./_internal/curryArgs3')
80
80
  * console.log(myDrink)
81
81
  * ```
82
82
  *
83
- * Any promises passed in argument position are resolved for their values before further execution.
83
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only. Any promises in the conditional array are resolved before further execution for both the lazy and eager interface.
84
84
  *
85
85
  * ```javascript [playground]
86
86
  * switchCase(Promise.resolve(1), 2, Promise.resolve(3), [
87
87
  * function doValuesAddUpTo6(a, b, c) {
88
88
  * return a + b + c === 6
89
89
  * },
90
- * (a, b, c) => console.log(`${a} + ${b} + ${c} == 6`),
91
- * (a, b, c) => console.log(`${a} + ${b} + ${c} != 6`),
90
+ * (a, b, c) => console.log(`${a} + ${b} + ${c} === 6`),
91
+ * (a, b, c) => console.log(`${a} + ${b} + ${c} !== 6`),
92
92
  * ])
93
+ *
94
+ * const promise = switchCase(true, [
95
+ * bool => bool,
96
+ * Promise.resolve(1),
97
+ * Promise.resolve(2),
98
+ * ])
99
+ *
100
+ * promise.then(console.log)
93
101
  * ```
94
102
  *
95
103
  * See also:
package/tap.js CHANGED
@@ -31,7 +31,7 @@ const _tap = function (args, f) {
31
31
  * ```
32
32
  *
33
33
  * @description
34
- * Call a function with provided arguments, returning the first argument. The return value of the function call is discarded.
34
+ * Calls a function with provided arguments, returning the first argument. The return value of the function call is discarded.
35
35
  *
36
36
  * ```javascript [playground]
37
37
  * const pipeline = pipe([
@@ -43,7 +43,7 @@ const _tap = function (args, f) {
43
43
  * pipeline('foo')
44
44
  * ```
45
45
  *
46
- * Any promises passed in argument position are resolved for their values before further execution.
46
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
47
47
  *
48
48
  * ```javascript [playground]
49
49
  * tap(Promise.resolve(1), Promise.resolve(2), 3, console.log)
@@ -114,7 +114,9 @@ const _tapIf = function (predicate, f, args) {
114
114
  * ```
115
115
  *
116
116
  * @description
117
- * A version of `tap` that accepts a predicate function (a function that returns a boolean value) before the function `f` to execute. Only executes `f` if the predicate function tests true. The arguments are the same to both the predicate function and the function to execute `f`.
117
+ * A version of [tap](/docs/tap) that accepts a predicate function before the function to execute and only executes the function if the predicate function tests true.
118
+ *
119
+ * Arguments passed to `tap.if` are provided to both the predicate function and the function to execute.
118
120
  *
119
121
  * ```javascript [playground]
120
122
  * const isOdd = number => number % 2 == 1
@@ -125,7 +127,7 @@ const _tapIf = function (predicate, f, args) {
125
127
  * logIfOdd(3)
126
128
  * ```
127
129
  *
128
- * Any promises passed in argument position are resolved for their values before further execution.
130
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
129
131
  *
130
132
  * ```javascript [playground]
131
133
  * tap.if(Promise.resolve(1), n => n < 5, console.log)
package/transform.js CHANGED
@@ -201,7 +201,7 @@ const _transform = function (collection, transducer, initialValue) {
201
201
  * promise.then(console.log)
202
202
  * ```
203
203
  *
204
- * Any promises passed in argument position are resolved for their values before further execution.
204
+ * Any promises passed in data argument position are resolved for their values before further execution.
205
205
  *
206
206
  * ```javascript [playground]
207
207
  * const promise = transform(
package/tryCatch.js CHANGED
@@ -88,7 +88,7 @@ const _tryCatch = function (tryer, catcher, args) {
88
88
  * })
89
89
  * ```
90
90
  *
91
- * Any promises passed in argument position are resolved for their values before further execution.
91
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
92
92
  *
93
93
  * ```javascript [playground]
94
94
  * tryCatch(Promise.resolve(1), 2, Promise.resolve(3), (a, b, c) => {
package/x/defaultsDeep.js CHANGED
@@ -133,7 +133,7 @@ function _defaultsDeep(data, defaults) {
133
133
  * // }
134
134
  * ```
135
135
  *
136
- * The `defaults` array or object may be provided to `defaultsDeep` without `data` to create a lazy version of `defaultsDeep` that accepts `data` as a single argument. This "lazy" API can be used for function pipelines and function compositions.
136
+ * The `defaults` array or object may be provided to `defaultsDeep` without `data` to create a lazy version of `defaultsDeep` that accepts `data` as a single argument. This lazy interface can be used for function pipelines and function compositions.
137
137
  *
138
138
  * ```javascript [playground]
139
139
  * pipe({ a: 1 }, [
@@ -2,7 +2,7 @@ const assert = require('assert')
2
2
  const defaultsDeep = require('./defaultsDeep')
3
3
 
4
4
  describe('defaultsDeep', () => {
5
- it('eager API', async () => {
5
+ it('eager interface', async () => {
6
6
  assert.deepEqual(
7
7
  defaultsDeep([3], [1, 2, 3]),
8
8
  [3, 2, 3],
@@ -1,12 +0,0 @@
1
- /**
2
- * @name NextIteration
3
- *
4
- * @synopsis
5
- * NextIteration(value any) -> nextIteration { value, done: false }
6
- *
7
- * @description
8
- * Create an object to send for the next iteration
9
- */
10
- const NextIteration = value => ({ value, done: false })
11
-
12
- module.exports = NextIteration
@@ -1,28 +0,0 @@
1
- const FilteringIterator = require('./FilteringIterator')
2
-
3
- /**
4
- * @name generatorFunctionFilter
5
- *
6
- * @synopsis
7
- * ```coffeescript [specscript]
8
- * generatorFunctionFilter<
9
- * T any,
10
- * args ...any,
11
- * generatorFunction ...args=>Generator<T>,
12
- * predicate T=>boolean,
13
- * >(generatorFunction, predicate)
14
- * -> filteringGeneratorFunction ...args=>Generator
15
- * ```
16
- *
17
- * @description
18
- * Filter a generator function by predicate.
19
- *
20
- * Note: async predicates may beget unexpected results
21
- */
22
- const generatorFunctionFilter = (
23
- generatorFunction, predicate,
24
- ) => function* filteringGeneratorFunction(...args) {
25
- yield* FilteringIterator(generatorFunction(...args), predicate)
26
- }
27
-
28
- module.exports = generatorFunctionFilter
@@ -1,27 +0,0 @@
1
- const NextIteration = require('./NextIteration')
2
- const isPromise = require('./isPromise')
3
-
4
- /**
5
- * @name iterationMap
6
- *
7
- * @synopsis
8
- * iterationMap<
9
- * T any,
10
- * iteration { value: T, done: boolean },
11
- * mapper T=>any,
12
- * >(iteration, mapper) -> nextIteration { value: any, done: boolean }
13
- *
14
- * @description
15
- * Apply a mapper to an iteration. Noop if iteration is done.
16
- */
17
- const iterationMap = function (iteration, mapper) {
18
- if (iteration.done) {
19
- return iteration
20
- }
21
- const mappedValue = mapper(iteration.value)
22
- return isPromise(mappedValue)
23
- ? mappedValue.then(NextIteration)
24
- : { value: mappedValue, done: false }
25
- }
26
-
27
- module.exports = iterationMap