rubico 2.11.0 → 2.13.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 (369) hide show
  1. package/README.md +16 -20
  2. package/Transducer.js +87 -72
  3. package/__.js +3 -3
  4. package/_internal/functionArrayAllSeries.js +4 -3
  5. package/_internal/functionObjectAllSeries.js +65 -0
  6. package/_internal/genericTransform.js +0 -1
  7. package/all.js +36 -16
  8. package/always.js +4 -4
  9. package/and.js +34 -26
  10. package/assign.js +5 -5
  11. package/compose.js +7 -6
  12. package/curry.js +48 -28
  13. package/dist/Transducer.es.js +1 -1
  14. package/dist/Transducer.es.min.js +1 -1
  15. package/dist/Transducer.js +1 -1
  16. package/dist/Transducer.min.js +1 -1
  17. package/dist/Transducer.mjs +1 -1
  18. package/dist/__.es.js +1 -1
  19. package/dist/__.es.min.js +1 -1
  20. package/dist/__.js +1 -1
  21. package/dist/__.min.js +1 -1
  22. package/dist/__.mjs +1 -1
  23. package/dist/all.es.js +112 -8
  24. package/dist/all.es.min.js +2 -2
  25. package/dist/all.js +112 -8
  26. package/dist/all.min.js +2 -2
  27. package/dist/all.mjs +112 -8
  28. package/dist/always.es.js +1 -1
  29. package/dist/always.es.min.js +1 -1
  30. package/dist/always.js +1 -1
  31. package/dist/always.min.js +1 -1
  32. package/dist/always.mjs +1 -1
  33. package/dist/and.es.js +1 -1
  34. package/dist/and.es.min.js +1 -1
  35. package/dist/and.js +1 -1
  36. package/dist/and.min.js +1 -1
  37. package/dist/and.mjs +1 -1
  38. package/dist/assign.es.js +1 -1
  39. package/dist/assign.es.min.js +1 -1
  40. package/dist/assign.js +1 -1
  41. package/dist/assign.min.js +1 -1
  42. package/dist/assign.mjs +1 -1
  43. package/dist/compose.es.js +1 -1
  44. package/dist/compose.es.min.js +1 -1
  45. package/dist/compose.js +1 -1
  46. package/dist/compose.min.js +1 -1
  47. package/dist/compose.mjs +1 -1
  48. package/dist/curry.es.js +1 -1
  49. package/dist/curry.es.min.js +1 -1
  50. package/dist/curry.js +1 -1
  51. package/dist/curry.min.js +1 -1
  52. package/dist/curry.mjs +1 -1
  53. package/dist/eq.es.js +1 -1
  54. package/dist/eq.es.min.js +1 -1
  55. package/dist/eq.js +1 -1
  56. package/dist/eq.min.js +1 -1
  57. package/dist/eq.mjs +1 -1
  58. package/dist/every.es.js +1 -1
  59. package/dist/every.es.min.js +1 -1
  60. package/dist/every.js +1 -1
  61. package/dist/every.min.js +1 -1
  62. package/dist/every.mjs +1 -1
  63. package/dist/filter.es.js +113 -19
  64. package/dist/filter.es.min.js +2 -2
  65. package/dist/filter.js +113 -19
  66. package/dist/filter.min.js +2 -2
  67. package/dist/filter.mjs +113 -19
  68. package/dist/flatMap.es.js +1 -1
  69. package/dist/flatMap.es.min.js +1 -1
  70. package/dist/flatMap.js +1 -1
  71. package/dist/flatMap.min.js +1 -1
  72. package/dist/flatMap.mjs +1 -1
  73. package/dist/forEach.es.js +1 -1
  74. package/dist/forEach.es.min.js +1 -1
  75. package/dist/forEach.js +1 -1
  76. package/dist/forEach.min.js +1 -1
  77. package/dist/forEach.mjs +1 -1
  78. package/dist/get.es.js +1 -1
  79. package/dist/get.es.min.js +1 -1
  80. package/dist/get.js +1 -1
  81. package/dist/get.min.js +1 -1
  82. package/dist/get.mjs +1 -1
  83. package/dist/gt.es.js +1 -1
  84. package/dist/gt.es.min.js +1 -1
  85. package/dist/gt.js +1 -1
  86. package/dist/gt.min.js +1 -1
  87. package/dist/gt.mjs +1 -1
  88. package/dist/gte.es.js +1 -1
  89. package/dist/gte.es.min.js +1 -1
  90. package/dist/gte.js +1 -1
  91. package/dist/gte.min.js +1 -1
  92. package/dist/gte.mjs +1 -1
  93. package/dist/lt.es.js +1 -1
  94. package/dist/lt.es.min.js +1 -1
  95. package/dist/lt.js +1 -1
  96. package/dist/lt.min.js +1 -1
  97. package/dist/lt.mjs +1 -1
  98. package/dist/lte.es.js +1 -1
  99. package/dist/lte.es.min.js +1 -1
  100. package/dist/lte.js +1 -1
  101. package/dist/lte.min.js +1 -1
  102. package/dist/lte.mjs +1 -1
  103. package/dist/map.es.js +1 -1
  104. package/dist/map.es.min.js +1 -1
  105. package/dist/map.js +1 -1
  106. package/dist/map.min.js +1 -1
  107. package/dist/map.mjs +1 -1
  108. package/dist/not.es.js +1 -1
  109. package/dist/not.es.min.js +1 -1
  110. package/dist/not.js +1 -1
  111. package/dist/not.min.js +1 -1
  112. package/dist/not.mjs +1 -1
  113. package/dist/omit.es.js +1 -1
  114. package/dist/omit.es.min.js +1 -1
  115. package/dist/omit.js +1 -1
  116. package/dist/omit.min.js +1 -1
  117. package/dist/omit.mjs +1 -1
  118. package/dist/or.es.js +1 -1
  119. package/dist/or.es.min.js +1 -1
  120. package/dist/or.js +1 -1
  121. package/dist/or.min.js +1 -1
  122. package/dist/or.mjs +1 -1
  123. package/dist/pick.es.js +1 -1
  124. package/dist/pick.es.min.js +1 -1
  125. package/dist/pick.js +1 -1
  126. package/dist/pick.min.js +1 -1
  127. package/dist/pick.mjs +1 -1
  128. package/dist/pipe.es.js +1 -1
  129. package/dist/pipe.es.min.js +1 -1
  130. package/dist/pipe.js +1 -1
  131. package/dist/pipe.min.js +1 -1
  132. package/dist/pipe.mjs +1 -1
  133. package/dist/reduce.es.js +1 -1
  134. package/dist/reduce.es.min.js +1 -1
  135. package/dist/reduce.js +1 -1
  136. package/dist/reduce.min.js +1 -1
  137. package/dist/reduce.mjs +1 -1
  138. package/dist/rubico.es.js +168 -79
  139. package/dist/rubico.es.min.js +2 -2
  140. package/dist/rubico.global.js +168 -79
  141. package/dist/rubico.global.min.js +2 -2
  142. package/dist/rubico.js +168 -79
  143. package/dist/rubico.min.js +2 -2
  144. package/dist/rubico.mjs +168 -79
  145. package/dist/set.es.js +1 -1
  146. package/dist/set.es.min.js +1 -1
  147. package/dist/set.js +1 -1
  148. package/dist/set.min.js +1 -1
  149. package/dist/set.mjs +1 -1
  150. package/dist/some.es.js +1 -1
  151. package/dist/some.es.min.js +1 -1
  152. package/dist/some.js +1 -1
  153. package/dist/some.min.js +1 -1
  154. package/dist/some.mjs +1 -1
  155. package/dist/switchCase.es.js +1 -1
  156. package/dist/switchCase.es.min.js +1 -1
  157. package/dist/switchCase.js +1 -1
  158. package/dist/switchCase.min.js +1 -1
  159. package/dist/switchCase.mjs +1 -1
  160. package/dist/tap.es.js +1 -1
  161. package/dist/tap.es.min.js +1 -1
  162. package/dist/tap.js +1 -1
  163. package/dist/tap.min.js +1 -1
  164. package/dist/tap.mjs +1 -1
  165. package/dist/thunkify.es.js +1 -1
  166. package/dist/thunkify.es.min.js +1 -1
  167. package/dist/thunkify.js +1 -1
  168. package/dist/thunkify.min.js +1 -1
  169. package/dist/thunkify.mjs +1 -1
  170. package/dist/transform.es.js +1 -3
  171. package/dist/transform.es.min.js +2 -2
  172. package/dist/transform.js +1 -3
  173. package/dist/transform.min.js +1 -1
  174. package/dist/transform.mjs +1 -3
  175. package/dist/tryCatch.es.js +1 -1
  176. package/dist/tryCatch.es.min.js +1 -1
  177. package/dist/tryCatch.js +1 -1
  178. package/dist/tryCatch.min.js +1 -1
  179. package/dist/tryCatch.mjs +1 -1
  180. package/dist/x/append.es.js +1 -1
  181. package/dist/x/append.es.min.js +1 -1
  182. package/dist/x/append.js +1 -1
  183. package/dist/x/append.min.js +1 -1
  184. package/dist/x/append.mjs +1 -1
  185. package/dist/x/callProp.es.js +1 -1
  186. package/dist/x/callProp.es.min.js +1 -1
  187. package/dist/x/callProp.js +1 -1
  188. package/dist/x/callProp.min.js +1 -1
  189. package/dist/x/callProp.mjs +1 -1
  190. package/dist/x/defaultsDeep.es.js +1 -1
  191. package/dist/x/defaultsDeep.es.min.js +1 -1
  192. package/dist/x/defaultsDeep.js +1 -1
  193. package/dist/x/defaultsDeep.min.js +1 -1
  194. package/dist/x/defaultsDeep.mjs +1 -1
  195. package/dist/x/differenceWith.es.js +1 -1
  196. package/dist/x/differenceWith.es.min.js +1 -1
  197. package/dist/x/differenceWith.js +1 -1
  198. package/dist/x/differenceWith.min.js +1 -1
  199. package/dist/x/differenceWith.mjs +1 -1
  200. package/dist/x/filterOut.es.js +113 -19
  201. package/dist/x/filterOut.es.min.js +2 -2
  202. package/dist/x/filterOut.js +113 -19
  203. package/dist/x/filterOut.min.js +2 -2
  204. package/dist/x/filterOut.mjs +113 -19
  205. package/dist/x/find.es.js +1 -1
  206. package/dist/x/find.es.min.js +1 -1
  207. package/dist/x/find.js +1 -1
  208. package/dist/x/find.min.js +1 -1
  209. package/dist/x/find.mjs +1 -1
  210. package/dist/x/findIndex.es.js +1 -1
  211. package/dist/x/findIndex.es.min.js +1 -1
  212. package/dist/x/findIndex.js +1 -1
  213. package/dist/x/findIndex.min.js +1 -1
  214. package/dist/x/findIndex.mjs +1 -1
  215. package/dist/x/first.es.js +1 -1
  216. package/dist/x/first.es.min.js +1 -1
  217. package/dist/x/first.js +1 -1
  218. package/dist/x/first.min.js +1 -1
  219. package/dist/x/first.mjs +1 -1
  220. package/dist/x/flatten.es.js +1 -1
  221. package/dist/x/flatten.es.min.js +1 -1
  222. package/dist/x/flatten.js +1 -1
  223. package/dist/x/flatten.min.js +1 -1
  224. package/dist/x/flatten.mjs +1 -1
  225. package/dist/x/groupBy.es.js +1 -1
  226. package/dist/x/groupBy.es.min.js +1 -1
  227. package/dist/x/groupBy.js +1 -1
  228. package/dist/x/groupBy.min.js +1 -1
  229. package/dist/x/groupBy.mjs +1 -1
  230. package/dist/x/has.es.js +1 -1
  231. package/dist/x/has.es.min.js +1 -1
  232. package/dist/x/has.js +1 -1
  233. package/dist/x/has.min.js +1 -1
  234. package/dist/x/has.mjs +1 -1
  235. package/dist/x/identity.es.js +1 -1
  236. package/dist/x/identity.es.min.js +1 -1
  237. package/dist/x/identity.js +1 -1
  238. package/dist/x/identity.min.js +1 -1
  239. package/dist/x/identity.mjs +1 -1
  240. package/dist/x/includes.es.js +1 -1
  241. package/dist/x/includes.es.min.js +1 -1
  242. package/dist/x/includes.js +1 -1
  243. package/dist/x/includes.min.js +1 -1
  244. package/dist/x/includes.mjs +1 -1
  245. package/dist/x/isDeepEqual.es.js +1 -1
  246. package/dist/x/isDeepEqual.es.min.js +1 -1
  247. package/dist/x/isDeepEqual.js +1 -1
  248. package/dist/x/isDeepEqual.min.js +1 -1
  249. package/dist/x/isDeepEqual.mjs +1 -1
  250. package/dist/x/isEmpty.es.js +1 -1
  251. package/dist/x/isEmpty.es.min.js +1 -1
  252. package/dist/x/isEmpty.js +1 -1
  253. package/dist/x/isEmpty.min.js +1 -1
  254. package/dist/x/isEmpty.mjs +1 -1
  255. package/dist/x/isEqual.es.js +1 -1
  256. package/dist/x/isEqual.es.min.js +1 -1
  257. package/dist/x/isEqual.js +1 -1
  258. package/dist/x/isEqual.min.js +1 -1
  259. package/dist/x/isEqual.mjs +1 -1
  260. package/dist/x/isFunction.es.js +1 -1
  261. package/dist/x/isFunction.es.min.js +1 -1
  262. package/dist/x/isFunction.js +1 -1
  263. package/dist/x/isFunction.min.js +1 -1
  264. package/dist/x/isFunction.mjs +1 -1
  265. package/dist/x/isIn.es.js +1 -1
  266. package/dist/x/isIn.es.min.js +1 -1
  267. package/dist/x/isIn.js +1 -1
  268. package/dist/x/isIn.min.js +1 -1
  269. package/dist/x/isIn.mjs +1 -1
  270. package/dist/x/isObject.es.js +1 -1
  271. package/dist/x/isObject.es.min.js +1 -1
  272. package/dist/x/isObject.js +1 -1
  273. package/dist/x/isObject.min.js +1 -1
  274. package/dist/x/isObject.mjs +1 -1
  275. package/dist/x/isString.es.js +1 -1
  276. package/dist/x/isString.es.min.js +1 -1
  277. package/dist/x/isString.js +1 -1
  278. package/dist/x/isString.min.js +1 -1
  279. package/dist/x/isString.mjs +1 -1
  280. package/dist/x/keys.es.js +1 -1
  281. package/dist/x/keys.es.min.js +1 -1
  282. package/dist/x/keys.js +1 -1
  283. package/dist/x/keys.min.js +1 -1
  284. package/dist/x/keys.mjs +1 -1
  285. package/dist/x/last.es.js +1 -1
  286. package/dist/x/last.es.min.js +1 -1
  287. package/dist/x/last.js +1 -1
  288. package/dist/x/last.min.js +1 -1
  289. package/dist/x/last.mjs +1 -1
  290. package/dist/x/maxBy.es.js +1 -1
  291. package/dist/x/maxBy.es.min.js +1 -1
  292. package/dist/x/maxBy.js +1 -1
  293. package/dist/x/maxBy.min.js +1 -1
  294. package/dist/x/maxBy.mjs +1 -1
  295. package/dist/x/noop.es.js +1 -1
  296. package/dist/x/noop.es.min.js +1 -1
  297. package/dist/x/noop.js +1 -1
  298. package/dist/x/noop.min.js +1 -1
  299. package/dist/x/noop.mjs +1 -1
  300. package/dist/x/pluck.es.js +1 -1
  301. package/dist/x/pluck.es.min.js +1 -1
  302. package/dist/x/pluck.js +1 -1
  303. package/dist/x/pluck.min.js +1 -1
  304. package/dist/x/pluck.mjs +1 -1
  305. package/dist/x/prepend.es.js +1 -1
  306. package/dist/x/prepend.es.min.js +1 -1
  307. package/dist/x/prepend.js +1 -1
  308. package/dist/x/prepend.min.js +1 -1
  309. package/dist/x/prepend.mjs +1 -1
  310. package/dist/x/size.es.js +1 -1
  311. package/dist/x/size.es.min.js +1 -1
  312. package/dist/x/size.js +1 -1
  313. package/dist/x/size.min.js +1 -1
  314. package/dist/x/size.mjs +1 -1
  315. package/dist/x/trace.es.js +1 -1
  316. package/dist/x/trace.es.min.js +1 -1
  317. package/dist/x/trace.js +1 -1
  318. package/dist/x/trace.min.js +1 -1
  319. package/dist/x/trace.mjs +1 -1
  320. package/dist/x/unionWith.es.js +1 -1
  321. package/dist/x/unionWith.es.min.js +1 -1
  322. package/dist/x/unionWith.js +1 -1
  323. package/dist/x/unionWith.min.js +1 -1
  324. package/dist/x/unionWith.mjs +1 -1
  325. package/dist/x/uniq.es.js +1 -1
  326. package/dist/x/uniq.es.min.js +1 -1
  327. package/dist/x/uniq.js +1 -1
  328. package/dist/x/uniq.min.js +1 -1
  329. package/dist/x/uniq.mjs +1 -1
  330. package/dist/x/unless.es.js +1 -1
  331. package/dist/x/unless.es.min.js +1 -1
  332. package/dist/x/unless.js +1 -1
  333. package/dist/x/unless.min.js +1 -1
  334. package/dist/x/unless.mjs +1 -1
  335. package/dist/x/values.es.js +1 -1
  336. package/dist/x/values.es.min.js +1 -1
  337. package/dist/x/values.js +1 -1
  338. package/dist/x/values.min.js +1 -1
  339. package/dist/x/values.mjs +1 -1
  340. package/dist/x/when.es.js +1 -1
  341. package/dist/x/when.es.min.js +1 -1
  342. package/dist/x/when.js +1 -1
  343. package/dist/x/when.min.js +1 -1
  344. package/dist/x/when.mjs +1 -1
  345. package/eq.js +29 -30
  346. package/es.js +168 -79
  347. package/every.js +16 -22
  348. package/filter.js +41 -78
  349. package/flatMap.js +16 -16
  350. package/forEach.js +14 -14
  351. package/get.js +3 -3
  352. package/gt.js +18 -25
  353. package/gte.js +22 -29
  354. package/index.js +168 -79
  355. package/lt.js +33 -31
  356. package/lte.js +24 -31
  357. package/map.js +43 -46
  358. package/not.js +12 -17
  359. package/or.js +34 -26
  360. package/package.json +1 -1
  361. package/pipe.js +6 -6
  362. package/reduce.js +62 -69
  363. package/some.js +13 -36
  364. package/switchCase.js +9 -9
  365. package/tap.js +7 -12
  366. package/thunkify.js +42 -12
  367. package/transform.js +62 -61
  368. package/tryCatch.js +4 -7
  369. package/_internal/add.js +0 -12
package/forEach.js CHANGED
@@ -47,19 +47,27 @@ const _forEach = function (collection, callback) {
47
47
  * ```coffeescript [specscript]
48
48
  * type Iterable = Array|Set|Map|Generator|AsyncGenerator|{ forEach: function }|Object
49
49
  *
50
- * type SyncOrAsyncCallback = (
50
+ * type Callback = (
51
51
  * item any,
52
52
  * indexOrKey number|string|any,
53
53
  * iterable Iterable
54
54
  * )=>Promise|undefined
55
55
  *
56
- * forEach(iterable Promise|Iterable, callback SyncOrAsyncCallback) -> iterable Promise|Iterable
57
- * forEach(callback SyncOrAsyncCallback)(iterable Iterable) -> iterable Promise|Iterable
56
+ * forEach(iterable Promise|Iterable, callback Callback) -> iterable Promise|Iterable
57
+ * forEach(callback Callback)(iterable Iterable) -> iterable Promise|Iterable
58
58
  * ```
59
59
  *
60
60
  * @description
61
61
  * Executes a callback function for each item of an iterable, returning the original iterable unmodified.
62
62
  *
63
+ * ```javascript [playground]
64
+ * console.log('array')
65
+ * forEach([1, 2, 3, 4, 5], num => console.log(num))
66
+ *
67
+ * console.log('object')
68
+ * forEach({ a: 1, b: 2, c: 3 }, num => console.log(num))
69
+ * ```
70
+ *
63
71
  * The following data types are considered to be iterable:
64
72
  * * `array`
65
73
  * * `set`
@@ -101,14 +109,6 @@ const _forEach = function (collection, callback) {
101
109
  * callback(item any, key string, iterable Object) -> Promise|undefined
102
110
  * ```
103
111
  *
104
- * ```javascript [playground]
105
- * console.log('array')
106
- * forEach([1, 2, 3, 4, 5], num => console.log(num))
107
- *
108
- * console.log('object')
109
- * forEach({ a: 1, b: 2, c: 3 }, num => console.log(num))
110
- * ```
111
- *
112
112
  * If the iterable is an object with a `.forEach` method, the callback function signature is defined externally.
113
113
  *
114
114
  * If the callback function is asynchronous, it is executed concurrently.
@@ -190,14 +190,14 @@ const _forEachSeries = function (collection, callback) {
190
190
  * ```coffeescript [specscript]
191
191
  * type Iterable = Array|Set|Map|Generator|AsyncGenerator|{ forEach: function }|Object
192
192
  *
193
- * type SyncOrAsyncCallback = (
193
+ * type Callback = (
194
194
  * item any,
195
195
  * indexOrKey number|string|any,
196
196
  * iter Iterable
197
197
  * )=>Promise|undefined
198
198
  *
199
- * forEach.series(iterable Promise|Iterable, callback SyncOrAsyncCallback) -> iterable Promise|Iterable
200
- * forEach.series(callback SyncOrAsyncCallback)(iterable Iterable) -> iterable Promise|Iterable
199
+ * forEach.series(iterable Promise|Iterable, callback Callback) -> iterable Promise|Iterable
200
+ * forEach.series(callback Callback)(iterable Iterable) -> iterable Promise|Iterable
201
201
  * ```
202
202
  *
203
203
  * @description
package/get.js CHANGED
@@ -74,9 +74,9 @@ const _get = function (object, path, defaultValue) {
74
74
  * ```javascript [playground]
75
75
  * const asyncDefaultResolver = async object => object.a
76
76
  *
77
- * const promise = get({ a: 1 }, 'notfound', asyncDefaultResolver)
77
+ * const result = await get({ a: 1 }, 'notfound', asyncDefaultResolver)
78
78
  *
79
- * promise.then(console.log)
79
+ * console.log(result)
80
80
  * ```
81
81
  *
82
82
  * `get` supports three types of path patterns for nested property access.
@@ -96,7 +96,7 @@ const _get = function (object, path, defaultValue) {
96
96
  * const get00000BracketNotation = get('[0][0][0][0][0]')
97
97
  * const get00000ArrayNotation = get([0, 0, 0, 0, 0])
98
98
  *
99
- * const nested = [[[[['foo']]]]]
99
+ * const nested = [[[[[1]]]]]
100
100
  *
101
101
  * console.log(get00000DotNotation(nested))
102
102
  * console.log(get00000BracketNotation(nested))
package/gt.js CHANGED
@@ -6,44 +6,37 @@ const greaterThan = require('./_internal/greaterThan')
6
6
  *
7
7
  * @synopsis
8
8
  * ```coffeescript [specscript]
9
- * args Array<any>
10
- * argsOrPromises Array<Promise|any>
11
- *
12
- * type SyncOrAsyncResolver = (...args)=>Promise|any
13
- *
14
- * leftValue Promise|any
15
- * rightValue Promise|any
16
- * leftResolver SyncOrAsyncResolver
17
- * rightResolver SyncOrAsyncResolver
18
- *
19
- * gt(leftValue, rightValue) -> Promise|boolean
20
- * gt(...argsOrPromises, leftResolver, rightValue) -> Promise|boolean
21
- * gt(...argsOrPromises, leftValue, rightResolver) -> Promise|boolean
22
- * gt(...argsOrPromises, leftResolver, rightResolver) -> Promise|boolean
23
- * gt(leftResolver, rightValue)(...args) -> Promise|boolean
24
- * gt(leftValue, rightResolver)(...args) -> Promise|boolean
25
- * gt(leftResolver, rightResolver)(...args) -> Promise|boolean
9
+ * type Resolver = (...arguments)=>Promise|any
10
+ *
11
+ * gt(leftValue Promise|any, rightValue Promise|any) -> Promise|boolean
12
+ * gt(...arguments, leftResolver Resolver, rightValue Promise|any) -> Promise|boolean
13
+ * gt(...arguments, leftValue Promise|any, rightResolver Resolver) -> Promise|boolean
14
+ * gt(...arguments, leftResolver Resolver, rightResolver Resolver) -> Promise|boolean
15
+ *
16
+ * gt(leftResolver Resolver, rightValue Promise|any)(...arguments) -> Promise|boolean
17
+ * gt(leftValue Promise|any, rightResolver Resolver)(...arguments) -> Promise|boolean
18
+ * gt(leftResolver Resolver, rightResolver Resolver)(...arguments) -> Promise|boolean
26
19
  * ```
27
20
  *
28
21
  * @description
29
- * Functional equivalent of the [Greater than (>)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Greater_than) operator. Tests if a value is greater than (`>`) another value.
22
+ * Comparison operator. Tests if a value is greater than (`>`) another value.
30
23
  *
31
24
  * ```javascript [playground]
32
25
  * const age = 40
33
26
  *
34
27
  * const isAgeGreaterThan21 = gt(age, 21)
35
28
  *
36
- * console.log(isAgeGreaterThan21) // true
29
+ * console.log(isAgeGreaterThan21)
37
30
  * ```
38
31
  *
39
- * If either of the two values are resolver functions, `gt` returns a function that resolves the value(s) to compare.
32
+ * If either of the two values are resolver functions, `gt` returns a function that resolves the values to compare.
40
33
  *
41
34
  * ```javascript [playground]
42
35
  * const isOfLegalAge = gt(get('age'), 21)
43
36
  *
44
37
  * const juvenile = { age: 16 }
45
38
  *
46
- * console.log(isOfLegalAge(juvenile)) // false
39
+ * console.log(isOfLegalAge(juvenile))
47
40
  * ```
48
41
  *
49
42
  * If either of the resolver functions is asynchronous, `gt` returns an asynchronous function.
@@ -53,7 +46,7 @@ const greaterThan = require('./_internal/greaterThan')
53
46
  *
54
47
  * const juvenile = { age: 16 }
55
48
  *
56
- * asyncIsOfLegalAge(juvenile).then(console.log) // false
49
+ * asyncIsOfLegalAge(juvenile).then(console.log)
57
50
  * ```
58
51
  *
59
52
  * `gt` supports a lazy interface for composability.
@@ -61,14 +54,14 @@ const greaterThan = require('./_internal/greaterThan')
61
54
  * ```javascript [playground]
62
55
  * pipe({ value: 1 }, [
63
56
  * gt(5, get('value')),
64
- * console.log, // true
57
+ * console.log,
65
58
  * ])
66
59
  * ```
67
60
  *
68
- * Any promises passed in data argument position are resolved for their values before further execution.
61
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
69
62
  *
70
63
  * ```javascript [playground]
71
- * gt(Promise.resolve({ a: 2, b: 1 }), get('a'), get('b')).then(console.log) // true
64
+ * gt(Promise.resolve({ a: 2, b: 1 }), get('a'), get('b')).then(console.log)
72
65
  * ```
73
66
  *
74
67
  * See also:
package/gte.js CHANGED
@@ -6,46 +6,39 @@ const greaterThanOrEqual = require('./_internal/greaterThanOrEqual')
6
6
  *
7
7
  * @synopsis
8
8
  * ```coffeescript [specscript]
9
- * args Array<any>
10
- * argsOrPromises Array<Promise|any>
11
- *
12
- * type SyncOrAsyncResolver = (...args)=>Promise|any
13
- *
14
- * leftValue Promise|any
15
- * rightValue Promise|any
16
- * leftResolver SyncOrAsyncResolver
17
- * rightResolver SyncOrAsyncResolver
18
- *
19
- * gte(leftValue, rightValue) -> Promise|boolean
20
- * gte(...argsOrPromises, leftResolver, rightValue) -> Promise|boolean
21
- * gte(...argsOrPromises, leftValue, rightResolver) -> Promise|boolean
22
- * gte(...argsOrPromises, leftResolver, rightResolver) -> Promise|boolean
23
- * gte(leftResolver, rightValue)(...args) -> Promise|boolean
24
- * gte(leftValue, rightResolver)(...args) -> Promise|boolean
25
- * gte(leftResolver, rightResolver)(...args) -> Promise|boolean
9
+ * type Resolver = (...arguments)=>Promise|any
10
+ *
11
+ * gte(leftValue Promise|any, rightValue Promise|any) -> Promise|boolean
12
+ * gte(...arguments, leftResolver Resolver, rightValue Promise|any) -> Promise|boolean
13
+ * gte(...arguments, leftValue Promise|any, rightResolver Resolver) -> Promise|boolean
14
+ * gte(...arguments, leftResolver Resolver, rightResolver Resolver) -> Promise|boolean
15
+ *
16
+ * gte(leftResolver Resolver, rightValue Promise|any)(...arguments) -> Promise|boolean
17
+ * gte(leftValue Promise|any, rightResolver Resolver)(...arguments) -> Promise|boolean
18
+ * gte(leftResolver Resolver, rightResolver Resolver)(...arguments) -> Promise|boolean
26
19
  * ```
27
20
  *
28
21
  * @description
29
- * Functional equivalent of the [Greater than or equal (>=)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Greater_than_or_equal) operator. Tests if a value is greater than or equal (`>=`) to another value.
22
+ * Comparison operator. Tests if a value is greater than or equal (`>=`) to another value.
30
23
  *
31
24
  * ```javascript [playground]
32
25
  * const age = 20
33
26
  *
34
27
  * const isAdultAge = gte(age, 18)
35
28
  *
36
- * console.log(isAdultAge) // true
29
+ * console.log(isAdultAge)
37
30
  * ```
38
31
  *
39
- * If either of the two values are resolver functions, `gte` returns a function that resolves the value(s) to compare.
32
+ * If either of the two values are resolver functions, `gte` returns a function that resolves the values to compare.
40
33
  *
41
34
  * ```javascript [playground]
42
35
  * const identity = value => value
43
36
  *
44
37
  * const isAtLeast100 = gte(identity, 100)
45
38
  *
46
- * console.log(isAtLeast100(99)) // false
47
- * console.log(isAtLeast100(100)) // true
48
- * console.log(isAtLeast100(101)) // true
39
+ * console.log(isAtLeast100(99))
40
+ * console.log(isAtLeast100(100))
41
+ * console.log(isAtLeast100(101))
49
42
  * ```
50
43
  *
51
44
  * If either of the two resolver functions is asynchronous, `gte` returns an asynchronous function.
@@ -55,9 +48,9 @@ const greaterThanOrEqual = require('./_internal/greaterThanOrEqual')
55
48
  *
56
49
  * const asyncIsAtLeast100 = gte(asyncIdentity, 100)
57
50
  *
58
- * asyncIsAtLeast100(99).then(console.log) // false
59
- * asyncIsAtLeast100(100).then(console.log) // true
60
- * asyncIsAtLeast100(101).then(console.log) // true
51
+ * asyncIsAtLeast100(99).then(console.log)
52
+ * asyncIsAtLeast100(100).then(console.log)
53
+ * asyncIsAtLeast100(101).then(console.log)
61
54
  * ```
62
55
  *
63
56
  * `gte` supports a lazy interface for composability.
@@ -65,14 +58,14 @@ const greaterThanOrEqual = require('./_internal/greaterThanOrEqual')
65
58
  * ```javascript [playground]
66
59
  * pipe({ value: 1 }, [
67
60
  * gte(1, get('value')),
68
- * console.log, // true
61
+ * console.log,
69
62
  * ])
70
63
  * ```
71
64
  *
72
- * Any promises passed in data argument position are resolved for their values before further execution.
65
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
73
66
  *
74
67
  * ```javascript [playground]
75
- * gte(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log) // true
68
+ * gte(Promise.resolve({ a: 1, b: 1 }), get('a'), get('b')).then(console.log)
76
69
  * ```
77
70
  *
78
71
  * See also:
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.13.0
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -374,7 +374,8 @@ const functionArrayAllSeries = function (funcs, args) {
374
374
  const funcsLength = funcs.length, result = []
375
375
  let funcsIndex = -1
376
376
  while (++funcsIndex < funcsLength) {
377
- const resultElement = funcs[funcsIndex](...args)
377
+ const f = funcs[funcsIndex]
378
+ const resultElement = typeof f == 'function' ? f(...args) : f
378
379
  if (isPromise(resultElement)) {
379
380
  return resultElement.then(funcConcat(
380
381
  curry3(objectSet, result, funcsIndex, __),
@@ -385,6 +386,90 @@ const functionArrayAllSeries = function (funcs, args) {
385
386
  return result
386
387
  }
387
388
 
389
+ // argument resolver for curry5
390
+ const curry5ResolveArg0 = (
391
+ baseFunc, arg1, arg2, arg3, arg4,
392
+ ) => function arg0Resolver(arg0) {
393
+ return baseFunc(arg0, arg1, arg2, arg3, arg4)
394
+ }
395
+
396
+ // argument resolver for curry5
397
+ const curry5ResolveArg1 = (
398
+ baseFunc, arg0, arg2, arg3, arg4,
399
+ ) => function arg1Resolver(arg1) {
400
+ return baseFunc(arg0, arg1, arg2, arg3, arg4)
401
+ }
402
+
403
+ // argument resolver for curry5
404
+ const curry5ResolveArg2 = (
405
+ baseFunc, arg0, arg1, arg3, arg4,
406
+ ) => function arg2Resolver(arg2) {
407
+ return baseFunc(arg0, arg1, arg2, arg3, arg4)
408
+ }
409
+
410
+ // argument resolver for curry5
411
+ const curry5ResolveArg3 = (
412
+ baseFunc, arg0, arg1, arg2, arg4,
413
+ ) => function arg3Resolver(arg3) {
414
+ return baseFunc(arg0, arg1, arg2, arg3, arg4)
415
+ }
416
+
417
+ // argument resolver for curry5
418
+ const curry5ResolveArg4 = (
419
+ baseFunc, arg0, arg1, arg2, arg3,
420
+ ) => function arg3Resolver(arg4) {
421
+ return baseFunc(arg0, arg1, arg2, arg3, arg4)
422
+ }
423
+
424
+ const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
425
+ if (arg0 == __) {
426
+ return curry5ResolveArg0(baseFunc, arg1, arg2, arg3, arg4)
427
+ }
428
+ if (arg1 == __) {
429
+ return curry5ResolveArg1(baseFunc, arg0, arg2, arg3, arg4)
430
+ }
431
+ if (arg2 == __) {
432
+ return curry5ResolveArg2(baseFunc, arg0, arg1, arg3, arg4)
433
+ }
434
+ if (arg3 == __) {
435
+ return curry5ResolveArg3(baseFunc, arg0, arg1, arg2, arg4)
436
+ }
437
+ return curry5ResolveArg4(baseFunc, arg0, arg1, arg2, arg3)
438
+ }
439
+
440
+ const asyncFunctionObjectAllSeries = async function (funcs, args, result, keys, keysIndex) {
441
+ const keysLength = keys.length
442
+ while (++keysIndex < keysLength) {
443
+ const key = keys[keysIndex]
444
+ const f = funcs[key]
445
+ let resultElement = typeof f == 'function' ? f(...args) : f
446
+ if (isPromise(resultElement)) {
447
+ resultElement = await resultElement
448
+ }
449
+ result[key] = resultElement
450
+ }
451
+ return result
452
+ }
453
+
454
+ const functionObjectAllSeries = function (funcs, args) {
455
+ const result = {}
456
+ const keys = Object.keys(funcs)
457
+ const keysLength = keys.length
458
+ let keysIndex = -1
459
+ while (++keysIndex < keysLength) {
460
+ const key = keys[keysIndex]
461
+ const f = funcs[key]
462
+ const resultElement = typeof f == 'function' ? f(...args) : f
463
+ if (isPromise(resultElement)) {
464
+ return resultElement.then(funcConcat(
465
+ curry3(objectSet, result, key, __),
466
+ curry5(asyncFunctionObjectAllSeries, funcs, args, __, keys, keysIndex)))
467
+ }
468
+ result[key] = resultElement
469
+ }
470
+ return result
471
+ }
472
+
388
473
  const functionObjectAll = function (funcs, args) {
389
474
  const result = {}, promises = []
390
475
  for (const key in funcs) {
@@ -441,14 +526,33 @@ const all = function (...args) {
441
526
  }
442
527
 
443
528
  all.series = function allSeries(...args) {
444
- const funcs = args.pop()
445
- if (args.length == 0) {
446
- return curryArgs2(functionArrayAllSeries, funcs, __)
529
+ if (args.length == 1) {
530
+ const resolversOrValues = args[0]
531
+ if (isPromise(resolversOrValues)) {
532
+ return resolversOrValues.then(_allValues)
533
+ }
534
+ if (areAllValuesNonfunctions(resolversOrValues)) {
535
+ return _allValues(resolversOrValues)
536
+ }
537
+ return isArray(resolversOrValues)
538
+ ? curryArgs2(functionArrayAllSeries, resolversOrValues, __)
539
+ : curryArgs2(functionObjectAllSeries, resolversOrValues, __)
447
540
  }
448
- if (areAnyValuesPromises(args)) {
449
- return promiseAll(args).then(curry2(functionArrayAllSeries, funcs, __))
541
+
542
+ const resolversOrValues = args[args.length - 1]
543
+ const argValues = args.slice(0, -1)
544
+
545
+ if (areAnyValuesPromises(argValues)) {
546
+ return isArray(resolversOrValues)
547
+ ? promiseAll(argValues)
548
+ .then(curry2(functionArrayAllSeries, resolversOrValues, __))
549
+ : promiseAll(argValues)
550
+ .then(curry2(functionObjectAllSeries, resolversOrValues, __))
450
551
  }
451
- return functionArrayAllSeries(funcs, args)
552
+
553
+ return isArray(resolversOrValues)
554
+ ? functionArrayAllSeries(resolversOrValues, argValues)
555
+ : functionObjectAllSeries(resolversOrValues, argValues)
452
556
  }
453
557
 
454
558
  const objectAssign = Object.assign
@@ -1480,26 +1584,64 @@ const FilteringIterator = (iterator, predicate) => ({
1480
1584
  },
1481
1585
  })
1482
1586
 
1483
- const FilteringAsyncIterator = (asyncIterator, predicate) => ({
1484
- isAsyncIteratorDone: false,
1485
- [symbolAsyncIterator]() {
1486
- return this
1487
- },
1488
- async next() {
1489
- while (!this.isAsyncIteratorDone) {
1490
- const { value, done } = await asyncIterator.next()
1491
- if (done) {
1492
- this.isAsyncIteratorDone = true
1493
- } else {
1494
- const predication = predicate(value)
1495
- if (isPromise(predication) ? await predication : predication) {
1496
- return { value, done: false }
1587
+ const FilteringAsyncIterator = (asyncIterator, predicate) => {
1588
+ const buffer = new LinkedList()
1589
+
1590
+ let index = -1
1591
+ let consumingAsyncIterator = false
1592
+ let isAsyncIteratorDone = false
1593
+
1594
+ return {
1595
+ [symbolAsyncIterator]() {
1596
+ return this
1597
+ },
1598
+
1599
+ // _consumeAsyncIterator() -> Promise<>
1600
+ async _consumeAsyncIterator() {
1601
+ for await (const item of asyncIterator) {
1602
+ index += 1
1603
+ const booleanResult = predicate(item)
1604
+ buffer.append([booleanResult, item])
1605
+ }
1606
+ isAsyncIteratorDone = true
1607
+ },
1608
+
1609
+
1610
+ async next() {
1611
+ if (!consumingAsyncIterator) {
1612
+ this._consumeAsyncIterator()
1613
+ consumingAsyncIterator = true
1614
+ }
1615
+
1616
+ while (!isAsyncIteratorDone) {
1617
+ if (buffer.length > 0) {
1618
+ let [booleanResult, item] = buffer.popFirst()
1619
+ if (isPromise(booleanResult)) {
1620
+ booleanResult = await booleanResult
1621
+ }
1622
+ if (booleanResult) {
1623
+ return { value: item, done: false }
1624
+ }
1625
+ continue
1497
1626
  }
1627
+ await sleep(10)
1498
1628
  }
1499
- }
1500
- return { value: undefined, done: true }
1501
- },
1502
- })
1629
+
1630
+ while (buffer.length > 0) {
1631
+ let [booleanResult, item] = buffer.popFirst()
1632
+ if (isPromise(booleanResult)) {
1633
+ booleanResult = await booleanResult
1634
+ }
1635
+ if (booleanResult) {
1636
+ return { value: item, done: false }
1637
+ }
1638
+ }
1639
+
1640
+ return { value: undefined, done: true }
1641
+ },
1642
+
1643
+ }
1644
+ }
1503
1645
 
1504
1646
  const arrayExtendMap = function (
1505
1647
  array, values, valuesMapper, valuesIndex,
@@ -1759,57 +1901,6 @@ const arrayReduce = function (array, reducer, result) {
1759
1901
  return result
1760
1902
  }
1761
1903
 
1762
- // argument resolver for curry5
1763
- const curry5ResolveArg0 = (
1764
- baseFunc, arg1, arg2, arg3, arg4,
1765
- ) => function arg0Resolver(arg0) {
1766
- return baseFunc(arg0, arg1, arg2, arg3, arg4)
1767
- }
1768
-
1769
- // argument resolver for curry5
1770
- const curry5ResolveArg1 = (
1771
- baseFunc, arg0, arg2, arg3, arg4,
1772
- ) => function arg1Resolver(arg1) {
1773
- return baseFunc(arg0, arg1, arg2, arg3, arg4)
1774
- }
1775
-
1776
- // argument resolver for curry5
1777
- const curry5ResolveArg2 = (
1778
- baseFunc, arg0, arg1, arg3, arg4,
1779
- ) => function arg2Resolver(arg2) {
1780
- return baseFunc(arg0, arg1, arg2, arg3, arg4)
1781
- }
1782
-
1783
- // argument resolver for curry5
1784
- const curry5ResolveArg3 = (
1785
- baseFunc, arg0, arg1, arg2, arg4,
1786
- ) => function arg3Resolver(arg3) {
1787
- return baseFunc(arg0, arg1, arg2, arg3, arg4)
1788
- }
1789
-
1790
- // argument resolver for curry5
1791
- const curry5ResolveArg4 = (
1792
- baseFunc, arg0, arg1, arg2, arg3,
1793
- ) => function arg3Resolver(arg4) {
1794
- return baseFunc(arg0, arg1, arg2, arg3, arg4)
1795
- }
1796
-
1797
- const curry5 = function (baseFunc, arg0, arg1, arg2, arg3, arg4) {
1798
- if (arg0 == __) {
1799
- return curry5ResolveArg0(baseFunc, arg1, arg2, arg3, arg4)
1800
- }
1801
- if (arg1 == __) {
1802
- return curry5ResolveArg1(baseFunc, arg0, arg2, arg3, arg4)
1803
- }
1804
- if (arg2 == __) {
1805
- return curry5ResolveArg2(baseFunc, arg0, arg1, arg3, arg4)
1806
- }
1807
- if (arg3 == __) {
1808
- return curry5ResolveArg3(baseFunc, arg0, arg1, arg2, arg4)
1809
- }
1810
- return curry5ResolveArg4(baseFunc, arg0, arg1, arg2, arg3)
1811
- }
1812
-
1813
1904
  const objectKeys = Object.keys
1814
1905
 
1815
1906
  const objectReduceAsync = async function (object, reducer, result, keys, index) {
@@ -1944,8 +2035,6 @@ const reduce = function (...args) {
1944
2035
 
1945
2036
  const isBinary = ArrayBuffer.isView
1946
2037
 
1947
- const add = (a, b) => a + b
1948
-
1949
2038
  const _arrayExtend = function (array, values) {
1950
2039
  const arrayLength = array.length,
1951
2040
  valuesLength = values.length
package/lt.js CHANGED
@@ -6,44 +6,37 @@ const lessThan = require('./_internal/lessThan')
6
6
  *
7
7
  * @synopsis
8
8
  * ```coffeescript [specscript]
9
- * args Array<any>
10
- * argsOrPromises Array<Promise|any>
11
- *
12
- * type SyncOrAsyncResolver = (...args)=>Promise|any
13
- *
14
- * leftValue Promise|any
15
- * rightValue Promise|any
16
- * leftResolver SyncOrAsyncResolver
17
- * rightResolver SyncOrAsyncResolver
18
- *
19
- * lt(leftValue, rightValue) -> Promise|boolean
20
- * lt(...argsOrPromises, leftResolver, rightValue) -> Promise|boolean
21
- * lt(...argsOrPromises, leftValue, rightResolver) -> Promise|boolean
22
- * lt(...argsOrPromises, leftResolver, rightResolver) -> Promise|boolean
23
- * lt(leftResolver, rightValue)(...args) -> Promise|boolean
24
- * lt(leftValue, rightResolver)(...args) -> Promise|boolean
25
- * lt(leftResolver, rightResolver)(...args) -> Promise|boolean
9
+ * type Resolver = (...arguments)=>Promise|any
10
+ *
11
+ * lt(leftValue Promise|any, rightValue Promise|any) -> Promise|boolean
12
+ * lt(...arguments, leftResolver Resolver, rightValue Promise|any) -> Promise|boolean
13
+ * lt(...arguments, leftValue Promise|any, rightResolver Resolver) -> Promise|boolean
14
+ * lt(...arguments, leftResolver Resolver, rightResolver Resolver) -> Promise|boolean
15
+ *
16
+ * lt(leftResolver Resolver, rightValue Promise|any)(...arguments) -> Promise|boolean
17
+ * lt(leftValue Promise|any, rightResolver Resolver)(...arguments) -> Promise|boolean
18
+ * lt(leftResolver Resolver, rightResolver Resolver)(...arguments) -> Promise|boolean
26
19
  * ```
27
20
  *
28
21
  * @description
29
- * Functional equivalent of the [Less than (<)](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Less_than) operator. Tests if a value is less than (`<`) another value.
22
+ * Comparison operator. Tests if a value is less than (`<`) another value.
30
23
  *
31
24
  * ```javascript [playground]
32
- * console.log(lt(1, 3)) // true
33
- * console.log(lt(3, 3)) // false
34
- * console.log(lt(4, 3)) // false
25
+ * console.log(lt(1, 3))
26
+ * console.log(lt(3, 3))
27
+ * console.log(lt(4, 3))
35
28
  * ```
36
29
  *
37
- * If either of the two values are resolver functions, `lt` returns a function that resolves the value(s) to compare.
30
+ * If either of the two values are resolver functions, `lt` returns a function that resolves the values to compare.
38
31
  *
39
32
  * ```javascript [playground]
40
33
  * const identity = value => value
41
34
  *
42
35
  * const isLessThan3 = lt(identity, 3)
43
36
  *
44
- * console.log(isLessThan3(1)) // true
45
- * console.log(isLessThan3(3)) // false
46
- * console.log(isLessThan3(5)) // false
37
+ * console.log(isLessThan3(1))
38
+ * console.log(isLessThan3(3))
39
+ * console.log(isLessThan3(5))
47
40
  * ```
48
41
  *
49
42
  * If either of the resolver functions is asynchronous, `lt` returns an asynchronous function.
@@ -53,9 +46,9 @@ const lessThan = require('./_internal/lessThan')
53
46
  *
54
47
  * const asyncIsLessThan3 = lt(asyncIdentity, 3)
55
48
  *
56
- * asyncIsLessThan3(1).then(console.log) // true
57
- * asyncIsLessThan3(3).then(console.log) // false
58
- * asyncIsLessThan3(5).then(console.log) // false
49
+ * asyncIsLessThan3(1).then(console.log)
50
+ * asyncIsLessThan3(3).then(console.log)
51
+ * asyncIsLessThan3(5).then(console.log)
59
52
  * ```
60
53
  *
61
54
  * `lt` supports a lazy interface for composability.
@@ -63,15 +56,24 @@ const lessThan = require('./_internal/lessThan')
63
56
  * ```javascript [playground]
64
57
  * pipe({ value: 1 }, [
65
58
  * lt(0, get('value')),
66
- * console.log, // true
59
+ * console.log,
67
60
  * ])
68
61
  * ```
69
62
  *
70
- * Any promises passed in data argument position are resolved for their values before further execution.
63
+ * Any promises in `arguments` are resolved for their values before further execution for the eager interface only.
71
64
  *
72
65
  * ```javascript [playground]
73
- * lt(Promise.resolve({ a: 1, b: 2 }), get('a'), get('b')).then(console.log) // true
66
+ * lt(Promise.resolve({ a: 1, b: 2 }), get('a'), get('b')).then(console.log)
74
67
  * ```
68
+ *
69
+ * See also:
70
+ * * [and](/docs/and)
71
+ * * [eq](/docs/eq)
72
+ * * [gt](/docs/lt)
73
+ * * [gte](/docs/gte)
74
+ * * [lte](/docs/lte)
75
+ * * [thunkify](/docs/thunkify)
76
+ *
75
77
  */
76
78
  const lt = ComparisonOperator(lessThan)
77
79