rubico 1.9.7 → 2.0.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 (587) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +3 -2
  3. package/.github/workflows/nodejs.yml +1 -1
  4. package/AggregateReducer.js +19 -0
  5. package/AggregateReducer.test.js +82 -0
  6. package/CHANGELOG.md +22 -1
  7. package/Transducer.js +75 -26
  8. package/Transducer.test.js +117 -0
  9. package/_internal/ComparisonOperator.js +68 -0
  10. package/_internal/File.js +41 -0
  11. package/_internal/FlatMappingAsyncIterator.js +4 -4
  12. package/_internal/FlatMappingIterator.js +1 -1
  13. package/_internal/TimeInLoopSuite.js +138 -0
  14. package/_internal/areAnyValuesPromises.js +23 -0
  15. package/_internal/{arrayAll.js → arrayEvery.js} +4 -4
  16. package/_internal/arrayExtend.js +3 -2
  17. package/_internal/arrayFilter.js +3 -4
  18. package/_internal/{arrayAny.js → arraySome.js} +8 -8
  19. package/_internal/{asyncIteratorAll.js → asyncIteratorEvery.js} +4 -4
  20. package/_internal/{asyncIteratorAny.js → asyncIteratorSome.js} +4 -4
  21. package/_internal/curry4.test.js +25 -0
  22. package/_internal/curry5.test.js +29 -0
  23. package/_internal/curryArgs2.js +43 -0
  24. package/_internal/curryArgs3.test.js +21 -0
  25. package/_internal/curryArgs4.js +65 -0
  26. package/_internal/curryArgs4.test.js +25 -0
  27. package/_internal/equals.js +13 -0
  28. package/_internal/findAllFilePaths.js +22 -0
  29. package/_internal/funcApply.js +2 -0
  30. package/_internal/funcCall.js +14 -0
  31. package/_internal/functionArrayAll.js +26 -0
  32. package/_internal/functionArrayAllSeries.js +55 -0
  33. package/_internal/functionObjectAll.js +32 -0
  34. package/_internal/genericReduce.js +4 -22
  35. package/_internal/genericTransform.js +15 -15
  36. package/_internal/improvedGenericTransform.js +93 -0
  37. package/_internal/{iteratorAll.js → iteratorEvery.js} +4 -4
  38. package/_internal/{iteratorAny.js → iteratorSome.js} +6 -6
  39. package/_internal/leftResolverRightResolverCompare.js +19 -0
  40. package/_internal/leftResolverRightValueCompare.js +16 -0
  41. package/_internal/leftValueRightResolverCompare.js +16 -0
  42. package/_internal/objectReduce.js +0 -1
  43. package/_internal/pathResolve.js +6 -0
  44. package/_internal/{reducerAll.js → reducerEvery.js} +4 -4
  45. package/_internal/reducerFlatMap.js +4 -4
  46. package/_internal/reducerFlatten.js +1 -1
  47. package/_internal/{reducerAny.js → reducerSome.js} +4 -4
  48. package/_internal/timeInLoop.js +37 -0
  49. package/_internal/timeInLoop.test.js +18 -0
  50. package/_internal/timeInLoopAsync.js +35 -0
  51. package/_internal/timeInLoopAsync.test.js +22 -0
  52. package/all.js +106 -40
  53. package/and.js +54 -36
  54. package/archive/{FlatMappingIteratorCool.js → FlatMappingIterator-2020-09-28.js} +1 -1
  55. package/archive/_Promise-2023-05-29.js +93 -0
  56. package/archive/arrayMap2-2023-05-29.js +73 -0
  57. package/archive/benchmarks-v1.9.7/all.js +34 -0
  58. package/archive/benchmarks-v1.9.7/and.js +24 -0
  59. package/archive/benchmarks-v1.9.7/assign.js +174 -0
  60. package/archive/benchmarks-v1.9.7/curry.js +55 -0
  61. package/archive/benchmarks-v1.9.7/eq.js +25 -0
  62. package/archive/benchmarks-v1.9.7/filter.js +1322 -0
  63. package/archive/benchmarks-v1.9.7/flatMap.js +48 -0
  64. package/archive/benchmarks-v1.9.7/get.js +44 -0
  65. package/archive/benchmarks-v1.9.7/gt.js +25 -0
  66. package/archive/benchmarks-v1.9.7/gte.js +25 -0
  67. package/archive/benchmarks-v1.9.7/lt.js +25 -0
  68. package/archive/benchmarks-v1.9.7/lte.js +25 -0
  69. package/archive/benchmarks-v1.9.7/map.js +892 -0
  70. package/archive/benchmarks-v1.9.7/omit.js +28 -0
  71. package/archive/benchmarks-v1.9.7/or.js +51 -0
  72. package/archive/benchmarks-v1.9.7/pick.js +24 -0
  73. package/archive/benchmarks-v1.9.7/pipe.js +152 -0
  74. package/archive/benchmarks-v1.9.7/reduce.js +739 -0
  75. package/archive/benchmarks-v1.9.7/switchCase.js +256 -0
  76. package/archive/benchmarks-v1.9.7/tap.js +90 -0
  77. package/archive/benchmarks-v1.9.7/transform.js +218 -0
  78. package/archive/benchmarks-v1.9.7/tryCatch.js +108 -0
  79. package/assign.js +18 -8
  80. package/bench +65 -0
  81. package/benchmark-output/v1.9.7 +268 -0
  82. package/benchmarks/all.async.js +43 -0
  83. package/benchmarks/all.js +42 -33
  84. package/benchmarks/always.js +15 -0
  85. package/benchmarks/and.async.js +25 -0
  86. package/benchmarks/and.js +20 -19
  87. package/benchmarks/assign.async.js +27 -0
  88. package/benchmarks/assign.js +20 -167
  89. package/benchmarks/curry.js +34 -54
  90. package/benchmarks/eq.async.js +23 -0
  91. package/benchmarks/eq.js +17 -19
  92. package/benchmarks/every.async.js +19 -0
  93. package/benchmarks/every.js +19 -0
  94. package/benchmarks/filter.async.js +32 -0
  95. package/benchmarks/filter.js +27 -1311
  96. package/benchmarks/flatMap.async.js +26 -0
  97. package/benchmarks/flatMap.js +26 -36
  98. package/benchmarks/get.async.js +19 -0
  99. package/benchmarks/get.js +27 -32
  100. package/benchmarks/gt.async.js +23 -0
  101. package/benchmarks/gt.js +17 -19
  102. package/benchmarks/gte.async.js +23 -0
  103. package/benchmarks/gte.js +17 -19
  104. package/benchmarks/lt.async.js +23 -0
  105. package/benchmarks/lt.js +17 -19
  106. package/benchmarks/lte.async.js +23 -0
  107. package/benchmarks/lte.js +17 -19
  108. package/benchmarks/map.async.js +43 -0
  109. package/benchmarks/map.js +24 -876
  110. package/benchmarks/misc/Promise.js +26 -0
  111. package/benchmarks/misc/isPromise.js +30 -0
  112. package/benchmarks/misc/promiseAll.js +36 -0
  113. package/benchmarks/not.js +23 -0
  114. package/benchmarks/omit.js +30 -20
  115. package/benchmarks/or.async.js +25 -0
  116. package/benchmarks/or.js +23 -49
  117. package/benchmarks/pick.js +30 -16
  118. package/benchmarks/pipe.async.js +47 -0
  119. package/benchmarks/pipe.js +46 -151
  120. package/benchmarks/reduce.async.js +32 -0
  121. package/benchmarks/reduce.js +27 -728
  122. package/benchmarks/set.async.js +19 -0
  123. package/benchmarks/set.js +41 -0
  124. package/benchmarks/some.async.js +19 -0
  125. package/benchmarks/some.js +19 -0
  126. package/benchmarks/switchCase.async.js +27 -0
  127. package/benchmarks/switchCase.js +55 -256
  128. package/benchmarks/tap.js +10 -85
  129. package/benchmarks/thunkify.js +15 -0
  130. package/benchmarks/transform.async.js +27 -0
  131. package/benchmarks/transform.js +28 -206
  132. package/benchmarks/tryCatch.async.js +25 -0
  133. package/benchmarks/tryCatch.js +24 -100
  134. package/{distributor.js → build} +50 -50
  135. package/compose.js +46 -0
  136. package/dist/__.es.js +2 -2
  137. package/dist/__.es.min.js +2 -2
  138. package/dist/__.js +2 -2
  139. package/dist/__.min.js +2 -2
  140. package/dist/__.min.mjs +2 -2
  141. package/dist/__.mjs +2 -2
  142. package/dist/all.es.js +173 -92
  143. package/dist/all.es.min.js +3 -3
  144. package/dist/all.js +173 -92
  145. package/dist/all.min.js +3 -3
  146. package/dist/all.min.mjs +3 -3
  147. package/dist/all.mjs +173 -92
  148. package/dist/always.es.js +2 -2
  149. package/dist/always.es.min.js +2 -2
  150. package/dist/always.js +2 -2
  151. package/dist/always.min.js +2 -2
  152. package/dist/always.min.mjs +2 -2
  153. package/dist/always.mjs +2 -2
  154. package/dist/and.es.js +101 -32
  155. package/dist/and.es.min.js +3 -3
  156. package/dist/and.js +101 -32
  157. package/dist/and.min.js +3 -3
  158. package/dist/and.min.mjs +3 -3
  159. package/dist/and.mjs +101 -32
  160. package/dist/assign.es.js +37 -10
  161. package/dist/assign.es.min.js +3 -3
  162. package/dist/assign.js +37 -10
  163. package/dist/assign.min.js +3 -3
  164. package/dist/assign.min.mjs +3 -3
  165. package/dist/assign.mjs +37 -10
  166. package/dist/compose.es.js +71 -0
  167. package/dist/compose.es.min.js +7 -0
  168. package/dist/compose.js +78 -0
  169. package/dist/compose.min.js +8 -0
  170. package/dist/compose.min.mjs +7 -0
  171. package/dist/compose.mjs +71 -0
  172. package/dist/curry.es.js +2 -2
  173. package/dist/curry.es.min.js +2 -2
  174. package/dist/curry.js +2 -2
  175. package/dist/curry.min.js +2 -2
  176. package/dist/curry.min.mjs +2 -2
  177. package/dist/curry.mjs +2 -2
  178. package/dist/eq.es.js +172 -49
  179. package/dist/eq.es.min.js +3 -3
  180. package/dist/eq.js +172 -49
  181. package/dist/eq.min.js +3 -3
  182. package/dist/eq.min.mjs +3 -3
  183. package/dist/eq.mjs +172 -49
  184. package/dist/every.es.js +194 -0
  185. package/dist/every.es.min.js +7 -0
  186. package/dist/every.js +201 -0
  187. package/dist/every.min.js +8 -0
  188. package/dist/every.min.mjs +7 -0
  189. package/dist/every.mjs +194 -0
  190. package/dist/filter.es.js +14 -108
  191. package/dist/filter.es.min.js +3 -3
  192. package/dist/filter.js +14 -108
  193. package/dist/filter.min.js +3 -3
  194. package/dist/filter.min.mjs +3 -3
  195. package/dist/filter.mjs +14 -108
  196. package/dist/flatMap.es.js +27 -214
  197. package/dist/flatMap.es.min.js +3 -3
  198. package/dist/flatMap.js +27 -214
  199. package/dist/flatMap.min.js +3 -3
  200. package/dist/flatMap.min.mjs +3 -3
  201. package/dist/flatMap.mjs +27 -214
  202. package/dist/{x/forEach.es.js → forEach.es.js} +52 -70
  203. package/dist/forEach.es.min.js +7 -0
  204. package/dist/{x/forEach.js → forEach.js} +52 -70
  205. package/dist/forEach.min.js +8 -0
  206. package/dist/forEach.min.mjs +7 -0
  207. package/dist/{x/forEach.mjs → forEach.mjs} +52 -70
  208. package/dist/get.es.js +60 -5
  209. package/dist/get.es.min.js +3 -3
  210. package/dist/get.js +60 -5
  211. package/dist/get.min.js +3 -3
  212. package/dist/get.min.mjs +3 -3
  213. package/dist/get.mjs +60 -5
  214. package/dist/gt.es.js +171 -48
  215. package/dist/gt.es.min.js +3 -3
  216. package/dist/gt.js +171 -48
  217. package/dist/gt.min.js +3 -3
  218. package/dist/gt.min.mjs +3 -3
  219. package/dist/gt.mjs +171 -48
  220. package/dist/gte.es.js +171 -48
  221. package/dist/gte.es.min.js +3 -3
  222. package/dist/gte.js +171 -48
  223. package/dist/gte.min.js +3 -3
  224. package/dist/gte.min.mjs +3 -3
  225. package/dist/gte.mjs +171 -48
  226. package/dist/lt.es.js +171 -48
  227. package/dist/lt.es.min.js +3 -3
  228. package/dist/lt.js +171 -48
  229. package/dist/lt.min.js +3 -3
  230. package/dist/lt.min.mjs +3 -3
  231. package/dist/lt.mjs +171 -48
  232. package/dist/lte.es.js +171 -48
  233. package/dist/lte.es.min.js +3 -3
  234. package/dist/lte.js +171 -48
  235. package/dist/lte.min.js +3 -3
  236. package/dist/lte.min.mjs +3 -3
  237. package/dist/lte.mjs +171 -48
  238. package/dist/map.es.js +12 -101
  239. package/dist/map.es.min.js +3 -3
  240. package/dist/map.js +12 -101
  241. package/dist/map.min.js +3 -3
  242. package/dist/map.min.mjs +3 -3
  243. package/dist/map.mjs +12 -101
  244. package/dist/not.es.js +75 -14
  245. package/dist/not.es.min.js +3 -3
  246. package/dist/not.js +75 -14
  247. package/dist/not.min.js +3 -3
  248. package/dist/not.min.mjs +3 -3
  249. package/dist/not.mjs +75 -14
  250. package/dist/omit.es.js +7 -2
  251. package/dist/omit.es.min.js +3 -3
  252. package/dist/omit.js +7 -2
  253. package/dist/omit.min.js +3 -3
  254. package/dist/omit.min.mjs +3 -3
  255. package/dist/omit.mjs +7 -2
  256. package/dist/or.es.js +99 -31
  257. package/dist/or.es.min.js +3 -3
  258. package/dist/or.js +99 -31
  259. package/dist/or.min.js +3 -3
  260. package/dist/or.min.mjs +3 -3
  261. package/dist/or.mjs +99 -31
  262. package/dist/pick.es.js +8 -3
  263. package/dist/pick.es.min.js +3 -3
  264. package/dist/pick.js +8 -3
  265. package/dist/pick.min.js +3 -3
  266. package/dist/pick.min.mjs +3 -3
  267. package/dist/pick.mjs +8 -3
  268. package/dist/pipe.es.js +42 -46
  269. package/dist/pipe.es.min.js +3 -3
  270. package/dist/pipe.js +42 -46
  271. package/dist/pipe.min.js +3 -3
  272. package/dist/pipe.min.mjs +3 -3
  273. package/dist/pipe.mjs +42 -46
  274. package/dist/reduce.es.js +52 -94
  275. package/dist/reduce.es.min.js +3 -3
  276. package/dist/reduce.js +52 -94
  277. package/dist/reduce.min.js +3 -3
  278. package/dist/reduce.min.mjs +3 -3
  279. package/dist/reduce.mjs +52 -94
  280. package/dist/rubico.es.js +730 -869
  281. package/dist/rubico.es.min.js +3 -3
  282. package/dist/rubico.js +730 -869
  283. package/dist/rubico.min.js +3 -3
  284. package/dist/rubico.min.mjs +3 -3
  285. package/dist/rubico.mjs +730 -869
  286. package/dist/set.es.js +18 -3
  287. package/dist/set.es.min.js +3 -3
  288. package/dist/set.js +18 -3
  289. package/dist/set.min.js +3 -3
  290. package/dist/set.min.mjs +3 -3
  291. package/dist/set.mjs +18 -3
  292. package/dist/{any.js → some.es.js} +64 -54
  293. package/dist/some.es.min.js +7 -0
  294. package/dist/{any.mjs → some.js} +72 -48
  295. package/dist/some.min.js +8 -0
  296. package/dist/some.min.mjs +7 -0
  297. package/dist/{any.es.js → some.mjs} +65 -48
  298. package/dist/switchCase.es.js +55 -5
  299. package/dist/switchCase.es.min.js +3 -3
  300. package/dist/switchCase.js +55 -5
  301. package/dist/switchCase.min.js +3 -3
  302. package/dist/switchCase.min.mjs +3 -3
  303. package/dist/switchCase.mjs +55 -5
  304. package/dist/tap.es.js +2 -9
  305. package/dist/tap.es.min.js +3 -3
  306. package/dist/tap.js +2 -9
  307. package/dist/tap.min.js +3 -3
  308. package/dist/tap.min.mjs +3 -3
  309. package/dist/tap.mjs +2 -9
  310. package/dist/thunkify.es.js +45 -2
  311. package/dist/thunkify.es.min.js +3 -3
  312. package/dist/thunkify.js +45 -2
  313. package/dist/thunkify.min.js +3 -3
  314. package/dist/thunkify.min.mjs +3 -3
  315. package/dist/thunkify.mjs +45 -2
  316. package/dist/transform.es.js +35 -71
  317. package/dist/transform.es.min.js +3 -3
  318. package/dist/transform.js +35 -71
  319. package/dist/transform.min.js +3 -3
  320. package/dist/transform.min.mjs +3 -3
  321. package/dist/transform.mjs +35 -71
  322. package/dist/tryCatch.es.js +33 -17
  323. package/dist/tryCatch.es.min.js +3 -3
  324. package/dist/tryCatch.js +33 -17
  325. package/dist/tryCatch.min.js +3 -3
  326. package/dist/tryCatch.min.mjs +3 -3
  327. package/dist/tryCatch.mjs +33 -17
  328. package/dist/x/append.es.js +2 -2
  329. package/dist/x/append.es.min.js +2 -2
  330. package/dist/x/append.js +2 -2
  331. package/dist/x/append.min.js +2 -2
  332. package/dist/x/append.min.mjs +2 -2
  333. package/dist/x/append.mjs +2 -2
  334. package/dist/x/callProp.es.js +2 -2
  335. package/dist/x/callProp.es.min.js +2 -2
  336. package/dist/x/callProp.js +2 -2
  337. package/dist/x/callProp.min.js +2 -2
  338. package/dist/x/callProp.min.mjs +2 -2
  339. package/dist/x/callProp.mjs +2 -2
  340. package/dist/x/defaultsDeep.es.js +2 -2
  341. package/dist/x/defaultsDeep.es.min.js +2 -2
  342. package/dist/x/defaultsDeep.js +2 -2
  343. package/dist/x/defaultsDeep.min.js +2 -2
  344. package/dist/x/defaultsDeep.min.mjs +2 -2
  345. package/dist/x/defaultsDeep.mjs +2 -2
  346. package/dist/x/differenceWith.es.js +7 -7
  347. package/dist/x/differenceWith.es.min.js +3 -3
  348. package/dist/x/differenceWith.js +7 -7
  349. package/dist/x/differenceWith.min.js +2 -2
  350. package/dist/x/differenceWith.min.mjs +3 -3
  351. package/dist/x/differenceWith.mjs +7 -7
  352. package/dist/x/filterOut.es.js +60 -117
  353. package/dist/x/filterOut.es.min.js +3 -3
  354. package/dist/x/filterOut.js +60 -117
  355. package/dist/x/filterOut.min.js +3 -3
  356. package/dist/x/filterOut.min.mjs +3 -3
  357. package/dist/x/filterOut.mjs +60 -117
  358. package/dist/x/find.es.js +2 -2
  359. package/dist/x/find.es.min.js +2 -2
  360. package/dist/x/find.js +2 -2
  361. package/dist/x/find.min.js +2 -2
  362. package/dist/x/find.min.mjs +2 -2
  363. package/dist/x/find.mjs +2 -2
  364. package/dist/x/findIndex.es.js +2 -2
  365. package/dist/x/findIndex.es.min.js +2 -2
  366. package/dist/x/findIndex.js +2 -2
  367. package/dist/x/findIndex.min.js +2 -2
  368. package/dist/x/findIndex.min.mjs +2 -2
  369. package/dist/x/findIndex.mjs +2 -2
  370. package/dist/x/first.es.js +2 -2
  371. package/dist/x/first.es.min.js +2 -2
  372. package/dist/x/first.js +2 -2
  373. package/dist/x/first.min.js +2 -2
  374. package/dist/x/first.min.mjs +2 -2
  375. package/dist/x/first.mjs +2 -2
  376. package/dist/x/flatten.es.js +20 -207
  377. package/dist/x/flatten.es.min.js +3 -3
  378. package/dist/x/flatten.js +20 -207
  379. package/dist/x/flatten.min.js +3 -3
  380. package/dist/x/flatten.min.mjs +3 -3
  381. package/dist/x/flatten.mjs +20 -207
  382. package/dist/x/groupBy.es.js +52 -94
  383. package/dist/x/groupBy.es.min.js +3 -3
  384. package/dist/x/groupBy.js +52 -94
  385. package/dist/x/groupBy.min.js +3 -3
  386. package/dist/x/groupBy.min.mjs +3 -3
  387. package/dist/x/groupBy.mjs +52 -94
  388. package/dist/x/has.es.js +2 -2
  389. package/dist/x/has.es.min.js +2 -2
  390. package/dist/x/has.js +2 -2
  391. package/dist/x/has.min.js +2 -2
  392. package/dist/x/has.min.mjs +2 -2
  393. package/dist/x/has.mjs +2 -2
  394. package/dist/x/identity.es.js +2 -2
  395. package/dist/x/identity.es.min.js +2 -2
  396. package/dist/x/identity.js +2 -2
  397. package/dist/x/identity.min.js +2 -2
  398. package/dist/x/identity.min.mjs +2 -2
  399. package/dist/x/identity.mjs +2 -2
  400. package/dist/x/includes.es.js +2 -2
  401. package/dist/x/includes.es.min.js +2 -2
  402. package/dist/x/includes.js +2 -2
  403. package/dist/x/includes.min.js +2 -2
  404. package/dist/x/includes.min.mjs +2 -2
  405. package/dist/x/includes.mjs +2 -2
  406. package/dist/x/isDeepEqual.es.js +2 -2
  407. package/dist/x/isDeepEqual.es.min.js +2 -2
  408. package/dist/x/isDeepEqual.js +2 -2
  409. package/dist/x/isDeepEqual.min.js +2 -2
  410. package/dist/x/isDeepEqual.min.mjs +2 -2
  411. package/dist/x/isDeepEqual.mjs +2 -2
  412. package/dist/x/isEmpty.es.js +2 -2
  413. package/dist/x/isEmpty.es.min.js +2 -2
  414. package/dist/x/isEmpty.js +2 -2
  415. package/dist/x/isEmpty.min.js +2 -2
  416. package/dist/x/isEmpty.min.mjs +2 -2
  417. package/dist/x/isEmpty.mjs +2 -2
  418. package/dist/x/isEqual.es.js +2 -2
  419. package/dist/x/isEqual.es.min.js +2 -2
  420. package/dist/x/isEqual.js +2 -2
  421. package/dist/x/isEqual.min.js +2 -2
  422. package/dist/x/isEqual.min.mjs +2 -2
  423. package/dist/x/isEqual.mjs +2 -2
  424. package/dist/x/isFunction.es.js +2 -2
  425. package/dist/x/isFunction.es.min.js +2 -2
  426. package/dist/x/isFunction.js +2 -2
  427. package/dist/x/isFunction.min.js +2 -2
  428. package/dist/x/isFunction.min.mjs +2 -2
  429. package/dist/x/isFunction.mjs +2 -2
  430. package/dist/x/isIn.es.js +2 -2
  431. package/dist/x/isIn.es.min.js +2 -2
  432. package/dist/x/isIn.js +2 -2
  433. package/dist/x/isIn.min.js +2 -2
  434. package/dist/x/isIn.min.mjs +2 -2
  435. package/dist/x/isIn.mjs +2 -2
  436. package/dist/x/isObject.es.js +2 -2
  437. package/dist/x/isObject.es.min.js +2 -2
  438. package/dist/x/isObject.js +2 -2
  439. package/dist/x/isObject.min.js +2 -2
  440. package/dist/x/isObject.min.mjs +2 -2
  441. package/dist/x/isObject.mjs +2 -2
  442. package/dist/x/isString.es.js +2 -2
  443. package/dist/x/isString.es.min.js +2 -2
  444. package/dist/x/isString.js +2 -2
  445. package/dist/x/isString.min.js +2 -2
  446. package/dist/x/isString.min.mjs +2 -2
  447. package/dist/x/isString.mjs +2 -2
  448. package/dist/x/keys.es.js +2 -2
  449. package/dist/x/keys.es.min.js +2 -2
  450. package/dist/x/keys.js +2 -2
  451. package/dist/x/keys.min.js +2 -2
  452. package/dist/x/keys.min.mjs +2 -2
  453. package/dist/x/keys.mjs +2 -2
  454. package/dist/x/last.es.js +2 -2
  455. package/dist/x/last.es.min.js +2 -2
  456. package/dist/x/last.js +2 -2
  457. package/dist/x/last.min.js +2 -2
  458. package/dist/x/last.min.mjs +2 -2
  459. package/dist/x/last.mjs +2 -2
  460. package/dist/x/maxBy.es.js +59 -6
  461. package/dist/x/maxBy.es.min.js +3 -3
  462. package/dist/x/maxBy.js +59 -6
  463. package/dist/x/maxBy.min.js +3 -3
  464. package/dist/x/maxBy.min.mjs +3 -3
  465. package/dist/x/maxBy.mjs +59 -6
  466. package/dist/x/noop.es.js +2 -2
  467. package/dist/x/noop.es.min.js +2 -2
  468. package/dist/x/noop.js +2 -2
  469. package/dist/x/noop.min.js +2 -2
  470. package/dist/x/noop.min.mjs +2 -2
  471. package/dist/x/noop.mjs +2 -2
  472. package/dist/x/pluck.es.js +32 -103
  473. package/dist/x/pluck.es.min.js +3 -3
  474. package/dist/x/pluck.js +32 -103
  475. package/dist/x/pluck.min.js +3 -3
  476. package/dist/x/pluck.min.mjs +3 -3
  477. package/dist/x/pluck.mjs +32 -103
  478. package/dist/x/prepend.es.js +2 -2
  479. package/dist/x/prepend.es.min.js +2 -2
  480. package/dist/x/prepend.js +2 -2
  481. package/dist/x/prepend.min.js +2 -2
  482. package/dist/x/prepend.min.mjs +2 -2
  483. package/dist/x/prepend.mjs +2 -2
  484. package/dist/x/size.es.js +2 -2
  485. package/dist/x/size.es.min.js +2 -2
  486. package/dist/x/size.js +2 -2
  487. package/dist/x/size.min.js +2 -2
  488. package/dist/x/size.min.mjs +2 -2
  489. package/dist/x/size.mjs +2 -2
  490. package/dist/x/trace.es.js +2 -9
  491. package/dist/x/trace.es.min.js +3 -3
  492. package/dist/x/trace.js +2 -9
  493. package/dist/x/trace.min.js +3 -3
  494. package/dist/x/trace.min.mjs +3 -3
  495. package/dist/x/trace.mjs +2 -9
  496. package/dist/x/unionWith.es.js +2 -2
  497. package/dist/x/unionWith.es.min.js +2 -2
  498. package/dist/x/unionWith.js +2 -2
  499. package/dist/x/unionWith.min.js +2 -2
  500. package/dist/x/unionWith.min.mjs +2 -2
  501. package/dist/x/unionWith.mjs +2 -2
  502. package/dist/x/uniq.es.js +2 -2
  503. package/dist/x/uniq.es.min.js +2 -2
  504. package/dist/x/uniq.js +2 -2
  505. package/dist/x/uniq.min.js +2 -2
  506. package/dist/x/uniq.min.mjs +2 -2
  507. package/dist/x/uniq.mjs +2 -2
  508. package/dist/x/unless.es.js +2 -2
  509. package/dist/x/unless.es.min.js +2 -2
  510. package/dist/x/unless.js +2 -2
  511. package/dist/x/unless.min.js +2 -2
  512. package/dist/x/unless.min.mjs +2 -2
  513. package/dist/x/unless.mjs +2 -2
  514. package/dist/x/values.es.js +2 -2
  515. package/dist/x/values.es.min.js +2 -2
  516. package/dist/x/values.js +2 -2
  517. package/dist/x/values.min.js +2 -2
  518. package/dist/x/values.min.mjs +2 -2
  519. package/dist/x/values.mjs +2 -2
  520. package/dist/x/when.es.js +2 -2
  521. package/dist/x/when.es.min.js +2 -2
  522. package/dist/x/when.js +2 -2
  523. package/dist/x/when.min.js +2 -2
  524. package/dist/x/when.min.mjs +2 -2
  525. package/dist/x/when.mjs +2 -2
  526. package/dist-test.js +9 -2042
  527. package/eq.js +21 -63
  528. package/es.js +730 -869
  529. package/every.js +94 -0
  530. package/filter.js +23 -91
  531. package/flatMap.js +75 -70
  532. package/forEach.js +82 -0
  533. package/get.js +23 -6
  534. package/global.js +6 -4
  535. package/gt.js +15 -58
  536. package/gte.js +14 -57
  537. package/index.js +730 -869
  538. package/lt.js +17 -60
  539. package/lte.js +14 -57
  540. package/map.js +9 -94
  541. package/memory-usage/reduce.js +2 -2
  542. package/not.js +27 -45
  543. package/omit.js +4 -0
  544. package/or.js +50 -33
  545. package/package.json +7 -7
  546. package/pick.js +5 -1
  547. package/pipe.js +13 -50
  548. package/reduce.js +42 -51
  549. package/rubico.js +10 -8
  550. package/set.js +43 -10
  551. package/some.js +105 -0
  552. package/switchCase.js +13 -3
  553. package/tap.js +0 -24
  554. package/test.js +847 -1096
  555. package/thunkify.js +9 -0
  556. package/transform.js +31 -16
  557. package/tryCatch.js +19 -15
  558. package/x/differenceWith.js +3 -3
  559. package/x/filterOut.test.js +6 -6
  560. package/x/flatten.js +1 -1
  561. package/x/flatten.test.js +0 -8
  562. package/x/index.js +0 -2
  563. package/x/pluck.js +18 -27
  564. package/x/pluck.test.js +3 -7
  565. package/x/timeInLoop.js +16 -25
  566. package/x/timeInLoop.test.js +8 -4
  567. package/any.js +0 -82
  568. package/dist/any.es.min.js +0 -7
  569. package/dist/any.min.js +0 -8
  570. package/dist/any.min.mjs +0 -7
  571. package/dist/fork.es.js +0 -159
  572. package/dist/fork.es.min.js +0 -7
  573. package/dist/fork.js +0 -166
  574. package/dist/fork.min.js +0 -8
  575. package/dist/fork.min.mjs +0 -7
  576. package/dist/fork.mjs +0 -159
  577. package/dist/x/forEach.es.min.js +0 -7
  578. package/dist/x/forEach.min.js +0 -8
  579. package/dist/x/forEach.min.mjs +0 -7
  580. package/fork.js +0 -101
  581. package/x/forEach.js +0 -93
  582. package/x/forEach.test.js +0 -218
  583. /package/{benchmarks → archive/benchmarks-v1.9.7}/any.js +0 -0
  584. /package/{x/forEach.benchmark.js → archive/benchmarks-v1.9.7/forEach.js} +0 -0
  585. /package/{benchmarks → archive/benchmarks-v1.9.7}/fork.js +0 -0
  586. /package/{benchmarks → archive/benchmarks-v1.9.7}/integration.js +0 -0
  587. /package/{benchmarks → archive/benchmarks-v1.9.7}/misc.js +0 -0
@@ -1,10 +1,34 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
+ const isPromise = value => value != null && typeof value.then == 'function'
9
+
10
+ const __ = Symbol.for('placeholder')
11
+
12
+ // argument resolver for curry2
13
+ const curry2ResolveArg0 = (
14
+ baseFunc, arg1,
15
+ ) => function arg0Resolver(arg0) {
16
+ return baseFunc(arg0, arg1)
17
+ }
18
+
19
+ // argument resolver for curry2
20
+ const curry2ResolveArg1 = (
21
+ baseFunc, arg0,
22
+ ) => function arg1Resolver(arg1) {
23
+ return baseFunc(arg0, arg1)
24
+ }
25
+
26
+ const curry2 = function (baseFunc, arg0, arg1) {
27
+ return arg0 == __
28
+ ? curry2ResolveArg0(baseFunc, arg1)
29
+ : curry2ResolveArg1(baseFunc, arg0)
30
+ }
31
+
8
32
  const isArray = Array.isArray
9
33
 
10
34
  const objectProto = Object.prototype
@@ -21,8 +45,6 @@ const asyncGeneratorFunctionTag = '[object AsyncGeneratorFunction]'
21
45
 
22
46
  const isAsyncGeneratorFunction = value => objectToString(value) == asyncGeneratorFunctionTag
23
47
 
24
- const isPromise = value => value != null && typeof value.then == 'function'
25
-
26
48
  const promiseAll = Promise.all.bind(Promise)
27
49
 
28
50
  const always = value => function getter() { return value }
@@ -74,83 +96,43 @@ const asyncIteratorForEach = async function (asyncIterator, callback) {
74
96
  : promiseAll(promises).then(always(asyncIterator))
75
97
  }
76
98
 
77
- const generatorFunctionForEach = (
78
- generatorFunction, callback,
79
- ) => function* executingCallbackForEach(...args) {
80
- const promises = [],
81
- generator = generatorFunction(...args)
82
- for (const item of generator) {
83
- const operation = callback(item)
84
- if (isPromise(operation)) {
85
- promises.push(operation)
86
- }
87
- }
88
- return promises.length == 0 ? generator
89
- : promiseAll(promises).then(always(generator))
90
- }
91
-
92
- const asyncGeneratorFunctionForEach = (
93
- asyncGeneratorFunction, callback,
94
- ) => async function* executingCallbackForEach(...args) {
95
- const promises = [],
96
- asyncIterator = asyncGeneratorFunction(...args)
97
- for await (const item of asyncIterator) {
98
- const operation = callback(item)
99
- if (isPromise(operation)) {
100
- promises.push(operation)
101
- }
102
- }
103
- return promises.length == 0 ? asyncIterator
104
- : promiseAll(promises).then(always(asyncIterator))
105
- }
106
-
107
- const thunkify2 = (func, arg0, arg1) => function thunk() {
108
- return func(arg0, arg1)
109
- }
110
-
111
- const reducerForEach = (
112
- reducer, callback,
113
- ) => function executingForEach(result, item) {
114
- const operation = callback(item)
115
- if (isPromise(operation)) {
116
- return operation.then(thunkify2(reducer, result, item))
117
- }
118
- return reducer(result, item)
119
- }
120
-
121
99
  const symbolIterator = Symbol.iterator
122
100
 
123
101
  const symbolAsyncIterator = Symbol.asyncIterator
124
102
 
125
- const forEach = callback => function executingCallbackForEach(value) {
126
- if (isArray(value)) {
127
- return arrayForEach(value, callback)
103
+ // type Collection = Array|Iterable|AsyncIterable|{ forEach: function }|Object
104
+ // _forEach(collection Collection, callback function) -> collection Collection
105
+ const _forEach = function (collection, callback) {
106
+ if (isArray(collection)) {
107
+ return arrayForEach(collection, callback)
128
108
  }
129
- if (typeof value == 'function') {
130
- if (isGeneratorFunction(value)) {
131
- return generatorFunctionForEach(value, callback)
132
- }
133
- if (isAsyncGeneratorFunction(value)) {
134
- return asyncGeneratorFunctionForEach(value, callback)
135
- }
136
- return reducerForEach(value, callback)
109
+ if (collection == null) {
110
+ return collection
137
111
  }
138
- if (value == null) {
139
- return value
112
+ if (typeof collection.forEach == 'function') {
113
+ return collection.forEach(callback)
140
114
  }
141
- if (typeof value.forEach == 'function') {
142
- return value.forEach(callback)
115
+ if (typeof collection[symbolIterator] == 'function') {
116
+ return iteratorForEach(collection[symbolIterator](), callback)
143
117
  }
144
- if (typeof value[symbolIterator] == 'function') {
145
- return iteratorForEach(value[symbolIterator](), callback)
118
+ if (typeof collection[symbolAsyncIterator] == 'function') {
119
+ return asyncIteratorForEach(collection[symbolAsyncIterator](), callback)
146
120
  }
147
- if (typeof value[symbolAsyncIterator] == 'function') {
148
- return asyncIteratorForEach(value[symbolAsyncIterator](), callback)
121
+ if (collection.constructor == Object) {
122
+ return objectForEach(collection, callback)
149
123
  }
150
- if (value.constructor == Object) {
151
- return objectForEach(value, callback)
124
+ return collection
125
+ }
126
+
127
+ const forEach = function (...args) {
128
+ const callback = args.pop()
129
+ if (args.length == 0) {
130
+ return curry2(_forEach, __, callback)
152
131
  }
153
- return value
132
+ const collection = args[0]
133
+ return isPromise(collection)
134
+ ? collection.then(curry2(_forEach, __, callback))
135
+ : _forEach(collection, callback)
154
136
  }
155
137
 
156
138
  export default forEach
package/dist/get.es.js CHANGED
@@ -1,12 +1,56 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
+ const isPromise = value => value != null && typeof value.then == 'function'
9
+
10
+ const __ = Symbol.for('placeholder')
11
+
12
+ // argument resolver for curry3
13
+ const curry3ResolveArg0 = (
14
+ baseFunc, arg1, arg2,
15
+ ) => function arg0Resolver(arg0) {
16
+ return baseFunc(arg0, arg1, arg2)
17
+ }
18
+
19
+ // argument resolver for curry3
20
+ const curry3ResolveArg1 = (
21
+ baseFunc, arg0, arg2,
22
+ ) => function arg1Resolver(arg1) {
23
+ return baseFunc(arg0, arg1, arg2)
24
+ }
25
+
26
+ // argument resolver for curry3
27
+ const curry3ResolveArg2 = (
28
+ baseFunc, arg0, arg1,
29
+ ) => function arg2Resolver(arg2) {
30
+ return baseFunc(arg0, arg1, arg2)
31
+ }
32
+
33
+ const curry3 = function (baseFunc, arg0, arg1, arg2) {
34
+ if (arg0 == __) {
35
+ return curry3ResolveArg0(baseFunc, arg1, arg2)
36
+ }
37
+ if (arg1 == __) {
38
+ return curry3ResolveArg1(baseFunc, arg0, arg2)
39
+ }
40
+ return curry3ResolveArg2(baseFunc, arg0, arg1)
41
+ }
42
+
8
43
  const isArray = Array.isArray
9
44
 
45
+ const isObject = value => {
46
+ if (value == null) {
47
+ return false
48
+ }
49
+
50
+ const typeofValue = typeof value
51
+ return (typeofValue == 'object') || (typeofValue == 'function')
52
+ }
53
+
10
54
  const memoizeCappedUnary = function (func, cap) {
11
55
  const cache = new Map(),
12
56
  memoized = function memoized(arg0) {
@@ -65,11 +109,22 @@ const getByPath = function (value, path) {
65
109
  return result
66
110
  }
67
111
 
68
- const get = (path, defaultValue) => function getter(value) {
69
- const result = value == null ? undefined : getByPath(value, path)
112
+ // _get(object Object, path string, defaultValue function|any)
113
+ const _get = function (object, path, defaultValue) {
114
+ const result = object == null ? undefined : getByPath(object, path)
70
115
  return result === undefined
71
- ? typeof defaultValue == 'function' ? defaultValue(value) : defaultValue
116
+ ? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
72
117
  : result
73
118
  }
74
119
 
120
+ const get = function (arg0, arg1, arg2) {
121
+ if (isPromise(arg0)) {
122
+ return arg0.then(curry3(_get, __, arg1, arg2))
123
+ }
124
+ if (isObject(arg0) && !isArray(arg0)) {
125
+ return _get(arg0, arg1, arg2)
126
+ }
127
+ return curry3(_get, __, arg0, arg1)
128
+ }
129
+
75
130
  export default get
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isArray=Array.isArray,memoizeCappedUnary=function(t,e){const r=new Map,i=function(i){if(r.has(i))return r.get(i);const a=t(i);return r.set(i,a),r.size>e&&r.clear(),a};return i.cache=r,i},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(t){const e=t.length-1,r="["==t[0],i="]"==t[e];return r&&i?t.slice(1,e).split(pathDelimiters):r?t.slice(1).split(pathDelimiters):i?t.slice(0,e).split(pathDelimiters):t.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=t=>isArray(t)?t:"string"==typeof t?memoizedCappedParsePropertyPath(t):[t],getByPath=function(t,e){const r=propertyPathToArray(e),i=r.length;let a=-1,n=t;for(;++a<i;)if(n=n[r[a]],null==n)return;return n},get=(t,e)=>function(r){const i=null==r?void 0:getByPath(r,t);return void 0===i?"function"==typeof e?e(r):e:i};export default get;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?r.slice(0,e).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,e){const t=propertyPathToArray(e),n=t.length;let o=-1,i=r;for(;++o<n;)if(i=i[t[o]],null==i)return;return i},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return null!=(n=r)&&"function"==typeof n.then?r.then(curry3(_get,__,e,t)):isObject(r)&&!isArray(r)?_get(r,e,t):curry3(_get,__,r,e);var n};export default get;
package/dist/get.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
@@ -11,8 +11,52 @@
11
11
  else (root.get = get) // Browser
12
12
  }(typeof globalThis == 'object' ? globalThis : this, (function () { 'use strict'
13
13
 
14
+ const isPromise = value => value != null && typeof value.then == 'function'
15
+
16
+ const __ = Symbol.for('placeholder')
17
+
18
+ // argument resolver for curry3
19
+ const curry3ResolveArg0 = (
20
+ baseFunc, arg1, arg2,
21
+ ) => function arg0Resolver(arg0) {
22
+ return baseFunc(arg0, arg1, arg2)
23
+ }
24
+
25
+ // argument resolver for curry3
26
+ const curry3ResolveArg1 = (
27
+ baseFunc, arg0, arg2,
28
+ ) => function arg1Resolver(arg1) {
29
+ return baseFunc(arg0, arg1, arg2)
30
+ }
31
+
32
+ // argument resolver for curry3
33
+ const curry3ResolveArg2 = (
34
+ baseFunc, arg0, arg1,
35
+ ) => function arg2Resolver(arg2) {
36
+ return baseFunc(arg0, arg1, arg2)
37
+ }
38
+
39
+ const curry3 = function (baseFunc, arg0, arg1, arg2) {
40
+ if (arg0 == __) {
41
+ return curry3ResolveArg0(baseFunc, arg1, arg2)
42
+ }
43
+ if (arg1 == __) {
44
+ return curry3ResolveArg1(baseFunc, arg0, arg2)
45
+ }
46
+ return curry3ResolveArg2(baseFunc, arg0, arg1)
47
+ }
48
+
14
49
  const isArray = Array.isArray
15
50
 
51
+ const isObject = value => {
52
+ if (value == null) {
53
+ return false
54
+ }
55
+
56
+ const typeofValue = typeof value
57
+ return (typeofValue == 'object') || (typeofValue == 'function')
58
+ }
59
+
16
60
  const memoizeCappedUnary = function (func, cap) {
17
61
  const cache = new Map(),
18
62
  memoized = function memoized(arg0) {
@@ -71,12 +115,23 @@ const getByPath = function (value, path) {
71
115
  return result
72
116
  }
73
117
 
74
- const get = (path, defaultValue) => function getter(value) {
75
- const result = value == null ? undefined : getByPath(value, path)
118
+ // _get(object Object, path string, defaultValue function|any)
119
+ const _get = function (object, path, defaultValue) {
120
+ const result = object == null ? undefined : getByPath(object, path)
76
121
  return result === undefined
77
- ? typeof defaultValue == 'function' ? defaultValue(value) : defaultValue
122
+ ? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
78
123
  : result
79
124
  }
80
125
 
126
+ const get = function (arg0, arg1, arg2) {
127
+ if (isPromise(arg0)) {
128
+ return arg0.then(curry3(_get, __, arg1, arg2))
129
+ }
130
+ if (isObject(arg0) && !isArray(arg0)) {
131
+ return _get(arg0, arg1, arg2)
132
+ }
133
+ return curry3(_get, __, arg0, arg1)
134
+ }
135
+
81
136
  return get
82
137
  }())))
package/dist/get.min.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
- !function(t,n){"object"==typeof module?module.exports=n:"function"==typeof define?define((()=>n)):t.get=n}("object"==typeof globalThis?globalThis:this,function(){"use strict";const t=Array.isArray,n=/[.|[|\]]+/,e=function(t,n){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const i=t(o);return e.set(o,i),e.size>n&&e.clear(),i};return o.cache=e,o}((function(t){const e=t.length-1,o="["==t[0],i="]"==t[e];return o&&i?t.slice(1,e).split(n):o?t.slice(1).split(n):i?t.slice(0,e).split(n):t.split(n)}),500),o=function(n,o){const i=(n=>t(n)?n:"string"==typeof n?e(n):[n])(o),r=i.length;let c=-1,s=n;for(;++c<r;)if(s=s[i[c]],null==s)return;return s};return(t,n)=>function(e){const i=null==e?void 0:o(e,t);return void 0===i?"function"==typeof n?n(e):n:i}}());
8
+ !function(n,t){"object"==typeof module?module.exports=t:"function"==typeof define?define((()=>t)):n.get=t}("object"==typeof globalThis?globalThis:this,function(){"use strict";const n=Symbol.for("placeholder"),t=function(t,e,o,r){return e==n?((n,t,e)=>function(o){return n(o,t,e)})(t,o,r):o==n?((n,t,e)=>function(o){return n(t,o,e)})(t,e,r):((n,t,e)=>function(o){return n(t,e,o)})(t,e,o)},e=Array.isArray,o=/[.|[|\]]+/,r=function(n,t){const e=new Map,o=function(o){if(e.has(o))return e.get(o);const r=n(o);return e.set(o,r),e.size>t&&e.clear(),r};return o.cache=e,o}((function(n){const t=n.length-1,e="["==n[0],r="]"==n[t];return e&&r?n.slice(1,t).split(o):e?n.slice(1).split(o):r?n.slice(0,t).split(o):n.split(o)}),500),u=function(n,t){const o=(n=>e(n)?n:"string"==typeof n?r(n):[n])(t),u=o.length;let i=-1,c=n;for(;++i<u;)if(c=c[o[i]],null==c)return;return c},i=function(n,t,e){const o=null==n?void 0:u(n,t);return void 0===o?"function"==typeof e?e(n):e:o};return function(o,r,u){return null!=(c=o)&&"function"==typeof c.then?o.then(t(i,n,r,u)):(n=>{if(null==n)return!1;const t=typeof n;return"object"==t||"function"==t})(o)&&!e(o)?i(o,r,u):t(i,n,o,r);var c}}());
package/dist/get.min.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
- const isArray=Array.isArray,memoizeCappedUnary=function(t,e){const r=new Map,i=function(i){if(r.has(i))return r.get(i);const a=t(i);return r.set(i,a),r.size>e&&r.clear(),a};return i.cache=r,i},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(t){const e=t.length-1,r="["==t[0],i="]"==t[e];return r&&i?t.slice(1,e).split(pathDelimiters):r?t.slice(1).split(pathDelimiters):i?t.slice(0,e).split(pathDelimiters):t.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=t=>isArray(t)?t:"string"==typeof t?memoizedCappedParsePropertyPath(t):[t],getByPath=function(t,e){const r=propertyPathToArray(e),i=r.length;let a=-1,n=t;for(;++a<i;)if(n=n[r[a]],null==n)return;return n},get=(t,e)=>function(r){const i=null==r?void 0:getByPath(r,t);return void 0===i?"function"==typeof e?e(r):e:i};export default get;
7
+ const isPromise=r=>null!=r&&"function"==typeof r.then,__=Symbol.for("placeholder"),curry3ResolveArg0=(r,e,t)=>function(n){return r(n,e,t)},curry3ResolveArg1=(r,e,t)=>function(n){return r(e,n,t)},curry3ResolveArg2=(r,e,t)=>function(n){return r(e,t,n)},curry3=function(r,e,t,n){return e==__?curry3ResolveArg0(r,t,n):t==__?curry3ResolveArg1(r,e,n):curry3ResolveArg2(r,e,t)},isArray=Array.isArray,isObject=r=>{if(null==r)return!1;const e=typeof r;return"object"==e||"function"==e},memoizeCappedUnary=function(r,e){const t=new Map,n=function(n){if(t.has(n))return t.get(n);const o=r(n);return t.set(n,o),t.size>e&&t.clear(),o};return n.cache=t,n},pathDelimiters=/[.|[|\]]+/,parsePropertyPath=function(r){const e=r.length-1,t="["==r[0],n="]"==r[e];return t&&n?r.slice(1,e).split(pathDelimiters):t?r.slice(1).split(pathDelimiters):n?r.slice(0,e).split(pathDelimiters):r.split(pathDelimiters)},memoizedCappedParsePropertyPath=memoizeCappedUnary(parsePropertyPath,500),propertyPathToArray=r=>isArray(r)?r:"string"==typeof r?memoizedCappedParsePropertyPath(r):[r],getByPath=function(r,e){const t=propertyPathToArray(e),n=t.length;let o=-1,i=r;for(;++o<n;)if(i=i[t[o]],null==i)return;return i},_get=function(r,e,t){const n=null==r?void 0:getByPath(r,e);return void 0===n?"function"==typeof t?t(r):t:n},get=function(r,e,t){return null!=(n=r)&&"function"==typeof n.then?r.then(curry3(_get,__,e,t)):isObject(r)&&!isArray(r)?_get(r,e,t):curry3(_get,__,r,e);var n};export default get;
package/dist/get.mjs CHANGED
@@ -1,12 +1,56 @@
1
1
  /**
2
- * rubico v1.9.7
2
+ * rubico v2.0.0
3
3
  * https://github.com/a-synchronous/rubico
4
- * (c) 2019-2021 Richard Tong
4
+ * (c) 2019-2023 Richard Tong
5
5
  * rubico may be freely distributed under the MIT license.
6
6
  */
7
7
 
8
+ const isPromise = value => value != null && typeof value.then == 'function'
9
+
10
+ const __ = Symbol.for('placeholder')
11
+
12
+ // argument resolver for curry3
13
+ const curry3ResolveArg0 = (
14
+ baseFunc, arg1, arg2,
15
+ ) => function arg0Resolver(arg0) {
16
+ return baseFunc(arg0, arg1, arg2)
17
+ }
18
+
19
+ // argument resolver for curry3
20
+ const curry3ResolveArg1 = (
21
+ baseFunc, arg0, arg2,
22
+ ) => function arg1Resolver(arg1) {
23
+ return baseFunc(arg0, arg1, arg2)
24
+ }
25
+
26
+ // argument resolver for curry3
27
+ const curry3ResolveArg2 = (
28
+ baseFunc, arg0, arg1,
29
+ ) => function arg2Resolver(arg2) {
30
+ return baseFunc(arg0, arg1, arg2)
31
+ }
32
+
33
+ const curry3 = function (baseFunc, arg0, arg1, arg2) {
34
+ if (arg0 == __) {
35
+ return curry3ResolveArg0(baseFunc, arg1, arg2)
36
+ }
37
+ if (arg1 == __) {
38
+ return curry3ResolveArg1(baseFunc, arg0, arg2)
39
+ }
40
+ return curry3ResolveArg2(baseFunc, arg0, arg1)
41
+ }
42
+
8
43
  const isArray = Array.isArray
9
44
 
45
+ const isObject = value => {
46
+ if (value == null) {
47
+ return false
48
+ }
49
+
50
+ const typeofValue = typeof value
51
+ return (typeofValue == 'object') || (typeofValue == 'function')
52
+ }
53
+
10
54
  const memoizeCappedUnary = function (func, cap) {
11
55
  const cache = new Map(),
12
56
  memoized = function memoized(arg0) {
@@ -65,11 +109,22 @@ const getByPath = function (value, path) {
65
109
  return result
66
110
  }
67
111
 
68
- const get = (path, defaultValue) => function getter(value) {
69
- const result = value == null ? undefined : getByPath(value, path)
112
+ // _get(object Object, path string, defaultValue function|any)
113
+ const _get = function (object, path, defaultValue) {
114
+ const result = object == null ? undefined : getByPath(object, path)
70
115
  return result === undefined
71
- ? typeof defaultValue == 'function' ? defaultValue(value) : defaultValue
116
+ ? typeof defaultValue == 'function' ? defaultValue(object) : defaultValue
72
117
  : result
73
118
  }
74
119
 
120
+ const get = function (arg0, arg1, arg2) {
121
+ if (isPromise(arg0)) {
122
+ return arg0.then(curry3(_get, __, arg1, arg2))
123
+ }
124
+ if (isObject(arg0) && !isArray(arg0)) {
125
+ return _get(arg0, arg1, arg2)
126
+ }
127
+ return curry3(_get, __, arg0, arg1)
128
+ }
129
+
75
130
  export default get