ramda-adjunct 2.34.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 (719) hide show
  1. package/.nvmrc +1 -0
  2. package/CHANGELOG.md +973 -0
  3. package/LICENSE.md +25 -0
  4. package/README.md +297 -0
  5. package/SECURITY.md +43 -0
  6. package/dist/RA.node.js +11172 -0
  7. package/dist/RA.node.min.js +2 -0
  8. package/dist/RA.node.min.js.LICENSE.txt +22 -0
  9. package/dist/RA.web.js +11172 -0
  10. package/dist/RA.web.min.js +2 -0
  11. package/dist/RA.web.min.js.LICENSE.txt +22 -0
  12. package/dist/RA.web.standalone.js +27797 -0
  13. package/dist/RA.web.standalone.min.js +2 -0
  14. package/dist/RA.web.standalone.min.js.LICENSE.txt +22 -0
  15. package/es/Y.js +38 -0
  16. package/es/allEqual.js +25 -0
  17. package/es/allEqualTo.js +26 -0
  18. package/es/allIdentical.js +24 -0
  19. package/es/allIdenticalTo.js +26 -0
  20. package/es/allP.js +26 -0
  21. package/es/allSettledP.js +29 -0
  22. package/es/allUnique.js +23 -0
  23. package/es/anyP.js +28 -0
  24. package/es/appendFlipped.js +23 -0
  25. package/es/argsPass.js +38 -0
  26. package/es/async.js +57 -0
  27. package/es/cata.js +101 -0
  28. package/es/catchP.js +24 -0
  29. package/es/ceil.js +26 -0
  30. package/es/compact.js +21 -0
  31. package/es/concatAll.js +30 -0
  32. package/es/concatRight.js +29 -0
  33. package/es/contained.js +29 -0
  34. package/es/curryRight.js +24 -0
  35. package/es/curryRightN.js +32 -0
  36. package/es/defaultWhen.js +25 -0
  37. package/es/delayP.js +44 -0
  38. package/es/dispatch.js +75 -0
  39. package/es/divideNum.js +19 -0
  40. package/es/dropArgs.js +22 -0
  41. package/es/ensureArray.js +22 -0
  42. package/es/escapeRegExp.js +20 -0
  43. package/es/fantasy-land/Identity.js +309 -0
  44. package/es/fantasy-land/mapping.js +20 -0
  45. package/es/fantasy-land/traits.js +41 -0
  46. package/es/fantasy-land/util.js +11 -0
  47. package/es/filterIndexed.js +27 -0
  48. package/es/findOr.js +28 -0
  49. package/es/flattenDepth.js +50 -0
  50. package/es/flattenPath.js +27 -0
  51. package/es/flattenProp.js +28 -0
  52. package/es/floor.js +25 -0
  53. package/es/fnull.js +37 -0
  54. package/es/hasPath.js +38 -0
  55. package/es/inRange.js +29 -0
  56. package/es/index.js +252 -0
  57. package/es/internal/ap.js +20 -0
  58. package/es/internal/compareLength.js +5 -0
  59. package/es/internal/isOfTypeObject.js +7 -0
  60. package/es/internal/makeFlat.js +46 -0
  61. package/es/internal/ponyfills/Array.from.js +40 -0
  62. package/es/internal/ponyfills/Math.sign.js +5 -0
  63. package/es/internal/ponyfills/Math.trunc.js +14 -0
  64. package/es/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +2 -0
  65. package/es/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +2 -0
  66. package/es/internal/ponyfills/Number.isFinite.js +5 -0
  67. package/es/internal/ponyfills/Number.isInteger.js +4 -0
  68. package/es/internal/ponyfills/Number.isNaN.js +5 -0
  69. package/es/internal/ponyfills/Number.isSafeInteger.js +7 -0
  70. package/es/internal/ponyfills/Promise.allSettled.js +38 -0
  71. package/es/internal/ponyfills/Promise.any.js +77 -0
  72. package/es/internal/ponyfills/String.padEnd.js +24 -0
  73. package/es/internal/ponyfills/String.padStart.js +26 -0
  74. package/es/internal/ponyfills/String.repeat.js +46 -0
  75. package/es/internal/ponyfills/String.replaceAll.js +34 -0
  76. package/es/internal/ponyfills/String.trimEnd.js +3 -0
  77. package/es/internal/ponyfills/String.trimStart.js +3 -0
  78. package/es/invoke.js +20 -0
  79. package/es/invokeArgs.js +30 -0
  80. package/es/isArray.js +22 -0
  81. package/es/isArrayLike.js +87 -0
  82. package/es/isAsyncFunction.js +22 -0
  83. package/es/isBigInt.js +23 -0
  84. package/es/isBoolean.js +21 -0
  85. package/es/isDate.js +20 -0
  86. package/es/isEmptyArray.js +26 -0
  87. package/es/isEmptyString.js +27 -0
  88. package/es/isError.js +20 -0
  89. package/es/isEven.js +29 -0
  90. package/es/isFalse.js +29 -0
  91. package/es/isFalsy.js +26 -0
  92. package/es/isFinite.js +33 -0
  93. package/es/isFloat.js +34 -0
  94. package/es/isFunction.js +26 -0
  95. package/es/isGeneratorFunction.js +33 -0
  96. package/es/isIndexed.js +21 -0
  97. package/es/isInteger.js +35 -0
  98. package/es/isInteger32.js +28 -0
  99. package/es/isIterable.js +33 -0
  100. package/es/isMap.js +23 -0
  101. package/es/isNaN.js +41 -0
  102. package/es/isNaturalNumber.js +25 -0
  103. package/es/isNegative.js +25 -0
  104. package/es/isNegativeZero.js +22 -0
  105. package/es/isNilOrEmpty.js +25 -0
  106. package/es/isNonEmptyArray.js +27 -0
  107. package/es/isNonEmptyString.js +30 -0
  108. package/es/isNonNegative.js +28 -0
  109. package/es/isNonPositive.js +28 -0
  110. package/es/isNotArray.js +22 -0
  111. package/es/isNotArrayLike.js +24 -0
  112. package/es/isNotAsyncFunction.js +27 -0
  113. package/es/isNotBoolean.js +22 -0
  114. package/es/isNotDate.js +21 -0
  115. package/es/isNotEmpty.js +25 -0
  116. package/es/isNotFinite.js +29 -0
  117. package/es/isNotFloat.js +33 -0
  118. package/es/isNotFunction.js +29 -0
  119. package/es/isNotGeneratorFunction.js +27 -0
  120. package/es/isNotInteger.js +34 -0
  121. package/es/isNotMap.js +24 -0
  122. package/es/isNotNaN.js +35 -0
  123. package/es/isNotNil.js +22 -0
  124. package/es/isNotNilOrEmpty.js +26 -0
  125. package/es/isNotNull.js +22 -0
  126. package/es/isNotNumber.js +23 -0
  127. package/es/isNotObj.js +29 -0
  128. package/es/isNotObjLike.js +29 -0
  129. package/es/isNotPair.js +25 -0
  130. package/es/isNotPlainObj.js +35 -0
  131. package/es/isNotPrimitive.js +22 -0
  132. package/es/isNotRegExp.js +22 -0
  133. package/es/isNotSet.js +23 -0
  134. package/es/isNotString.js +21 -0
  135. package/es/isNotUndefined.js +22 -0
  136. package/es/isNotValidDate.js +22 -0
  137. package/es/isNotValidNumber.js +25 -0
  138. package/es/isNull.js +21 -0
  139. package/es/isNumber.js +23 -0
  140. package/es/isObj.js +31 -0
  141. package/es/isObjLike.js +30 -0
  142. package/es/isOdd.js +24 -0
  143. package/es/isPair.js +25 -0
  144. package/es/isPlainObj.js +52 -0
  145. package/es/isPositive.js +24 -0
  146. package/es/isPositiveZero.js +22 -0
  147. package/es/isPrimitive.js +31 -0
  148. package/es/isPromise.js +27 -0
  149. package/es/isPrototypeOf.js +34 -0
  150. package/es/isRegExp.js +21 -0
  151. package/es/isSafeInteger.js +34 -0
  152. package/es/isSentinelValue.js +26 -0
  153. package/es/isSet.js +22 -0
  154. package/es/isSparseArray.js +30 -0
  155. package/es/isString.js +20 -0
  156. package/es/isSymbol.js +27 -0
  157. package/es/isThenable.js +26 -0
  158. package/es/isTrue.js +25 -0
  159. package/es/isTruthy.js +27 -0
  160. package/es/isUndefined.js +22 -0
  161. package/es/isValidDate.js +26 -0
  162. package/es/isValidNumber.js +26 -0
  163. package/es/lastP.js +63 -0
  164. package/es/lengthEq.js +22 -0
  165. package/es/lengthGt.js +22 -0
  166. package/es/lengthGte.js +24 -0
  167. package/es/lengthLt.js +22 -0
  168. package/es/lengthLte.js +23 -0
  169. package/es/lengthNotEq.js +22 -0
  170. package/es/lensEq.js +27 -0
  171. package/es/lensIso.js +55 -0
  172. package/es/lensNotEq.js +26 -0
  173. package/es/lensNotSatisfy.js +28 -0
  174. package/es/lensSatisfies.js +31 -0
  175. package/es/lensTraverse.js +42 -0
  176. package/es/liftF.js +37 -0
  177. package/es/liftFN.js +47 -0
  178. package/es/list.js +19 -0
  179. package/es/mapIndexed.js +26 -0
  180. package/es/mergePath.js +30 -0
  181. package/es/mergePaths.js +27 -0
  182. package/es/mergeProp.js +30 -0
  183. package/es/mergeProps.js +26 -0
  184. package/es/mergeRight.js +26 -0
  185. package/es/move.js +25 -0
  186. package/es/nand.js +27 -0
  187. package/es/neither.js +39 -0
  188. package/es/noneP.js +28 -0
  189. package/es/nonePass.js +31 -0
  190. package/es/noop.js +19 -0
  191. package/es/nor.js +28 -0
  192. package/es/notAllPass.js +31 -0
  193. package/es/notAllUnique.js +23 -0
  194. package/es/notBoth.js +39 -0
  195. package/es/notEqual.js +30 -0
  196. package/es/omitBy.js +26 -0
  197. package/es/omitIndexes.js +27 -0
  198. package/es/overlaps.js +29 -0
  199. package/es/padCharsEnd.js +31 -0
  200. package/es/padCharsStart.js +29 -0
  201. package/es/padEnd.js +24 -0
  202. package/es/padStart.js +22 -0
  203. package/es/pathNotEq.js +32 -0
  204. package/es/pathOrLazy.js +25 -0
  205. package/es/paths.js +27 -0
  206. package/es/pickIndexes.js +30 -0
  207. package/es/propNotEq.js +29 -0
  208. package/es/rangeStep.js +36 -0
  209. package/es/reduceIndexed.js +30 -0
  210. package/es/reduceP.js +111 -0
  211. package/es/reduceRightP.js +117 -0
  212. package/es/rejectP.js +23 -0
  213. package/es/renameKeyWith.js +28 -0
  214. package/es/renameKeys.js +42 -0
  215. package/es/renameKeysWith.js +26 -0
  216. package/es/repeatStr.js +24 -0
  217. package/es/replaceAll.js +29 -0
  218. package/es/resolveP.js +29 -0
  219. package/es/round.js +24 -0
  220. package/es/seq.js +44 -0
  221. package/es/sign.js +27 -0
  222. package/es/skipTake.js +22 -0
  223. package/es/sliceFrom.js +22 -0
  224. package/es/sliceTo.js +22 -0
  225. package/es/sortByProps.js +52 -0
  226. package/es/spreadPath.js +25 -0
  227. package/es/spreadProp.js +25 -0
  228. package/es/stubArray.js +19 -0
  229. package/es/stubNull.js +18 -0
  230. package/es/stubObj.js +20 -0
  231. package/es/stubString.js +18 -0
  232. package/es/stubUndefined.js +19 -0
  233. package/es/subtractNum.js +19 -0
  234. package/es/thenCatchP.js +26 -0
  235. package/es/thenP.js +28 -0
  236. package/es/toArray.js +27 -0
  237. package/es/toInteger32.js +24 -0
  238. package/es/toUinteger32.js +26 -0
  239. package/es/trimCharsEnd.js +22 -0
  240. package/es/trimCharsStart.js +22 -0
  241. package/es/trimEnd.js +23 -0
  242. package/es/trimStart.js +22 -0
  243. package/es/trunc.js +27 -0
  244. package/es/unzipObjWith.js +26 -0
  245. package/es/viewOr.js +30 -0
  246. package/es/weave.js +36 -0
  247. package/es/weaveLazy.js +38 -0
  248. package/es/zipObjWith.js +26 -0
  249. package/lib/Y.js +44 -0
  250. package/lib/allEqual.js +35 -0
  251. package/lib/allEqualTo.js +32 -0
  252. package/lib/allIdentical.js +33 -0
  253. package/lib/allIdenticalTo.js +32 -0
  254. package/lib/allP.js +32 -0
  255. package/lib/allSettledP.js +41 -0
  256. package/lib/allUnique.js +32 -0
  257. package/lib/anyP.js +47 -0
  258. package/lib/appendFlipped.js +29 -0
  259. package/lib/argsPass.js +48 -0
  260. package/lib/async.js +67 -0
  261. package/lib/cata.js +110 -0
  262. package/lib/catchP.js +30 -0
  263. package/lib/ceil.js +32 -0
  264. package/lib/compact.js +30 -0
  265. package/lib/concatAll.js +40 -0
  266. package/lib/concatRight.js +35 -0
  267. package/lib/contained.js +35 -0
  268. package/lib/curryRight.js +33 -0
  269. package/lib/curryRightN.js +38 -0
  270. package/lib/defaultWhen.js +31 -0
  271. package/lib/delayP.js +54 -0
  272. package/lib/dispatch.js +50 -0
  273. package/lib/divideNum.js +25 -0
  274. package/lib/dropArgs.js +28 -0
  275. package/lib/ensureArray.js +31 -0
  276. package/lib/escapeRegExp.js +29 -0
  277. package/lib/fantasy-land/Identity.js +323 -0
  278. package/lib/fantasy-land/mapping.js +44 -0
  279. package/lib/fantasy-land/traits.js +77 -0
  280. package/lib/fantasy-land/util.js +21 -0
  281. package/lib/filterIndexed.js +33 -0
  282. package/lib/findOr.js +34 -0
  283. package/lib/flattenDepth.js +58 -0
  284. package/lib/flattenPath.js +33 -0
  285. package/lib/flattenProp.js +37 -0
  286. package/lib/floor.js +31 -0
  287. package/lib/fnull.js +47 -0
  288. package/lib/hasPath.js +47 -0
  289. package/lib/inRange.js +37 -0
  290. package/lib/index.js +863 -0
  291. package/lib/internal/ap.js +37 -0
  292. package/lib/internal/compareLength.js +12 -0
  293. package/lib/internal/isOfTypeObject.js +13 -0
  294. package/lib/internal/makeFlat.js +54 -0
  295. package/lib/internal/ponyfills/Array.from.js +52 -0
  296. package/lib/internal/ponyfills/Math.sign.js +11 -0
  297. package/lib/internal/ponyfills/Math.trunc.js +22 -0
  298. package/lib/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +7 -0
  299. package/lib/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +7 -0
  300. package/lib/internal/ponyfills/Number.isFinite.js +15 -0
  301. package/lib/internal/ponyfills/Number.isInteger.js +14 -0
  302. package/lib/internal/ponyfills/Number.isNaN.js +15 -0
  303. package/lib/internal/ponyfills/Number.isSafeInteger.js +18 -0
  304. package/lib/internal/ponyfills/Promise.allSettled.js +48 -0
  305. package/lib/internal/ponyfills/Promise.any.js +89 -0
  306. package/lib/internal/ponyfills/String.padEnd.js +34 -0
  307. package/lib/internal/ponyfills/String.padStart.js +36 -0
  308. package/lib/internal/ponyfills/String.repeat.js +55 -0
  309. package/lib/internal/ponyfills/String.replaceAll.js +44 -0
  310. package/lib/internal/ponyfills/String.trimEnd.js +10 -0
  311. package/lib/internal/ponyfills/String.trimStart.js +10 -0
  312. package/lib/invoke.js +29 -0
  313. package/lib/invokeArgs.js +40 -0
  314. package/lib/isArray.js +31 -0
  315. package/lib/isArrayLike.js +98 -0
  316. package/lib/isAsyncFunction.js +28 -0
  317. package/lib/isBigInt.js +29 -0
  318. package/lib/isBoolean.js +27 -0
  319. package/lib/isDate.js +26 -0
  320. package/lib/isEmptyArray.js +35 -0
  321. package/lib/isEmptyString.js +33 -0
  322. package/lib/isError.js +26 -0
  323. package/lib/isEven.js +39 -0
  324. package/lib/isFalse.js +35 -0
  325. package/lib/isFalsy.js +35 -0
  326. package/lib/isFinite.js +46 -0
  327. package/lib/isFloat.js +44 -0
  328. package/lib/isFunction.js +36 -0
  329. package/lib/isGeneratorFunction.js +40 -0
  330. package/lib/isIndexed.js +31 -0
  331. package/lib/isInteger.js +47 -0
  332. package/lib/isInteger32.js +37 -0
  333. package/lib/isIterable.js +42 -0
  334. package/lib/isMap.js +29 -0
  335. package/lib/isNaN.js +54 -0
  336. package/lib/isNaturalNumber.js +35 -0
  337. package/lib/isNegative.js +34 -0
  338. package/lib/isNegativeZero.js +28 -0
  339. package/lib/isNilOrEmpty.js +31 -0
  340. package/lib/isNonEmptyArray.js +37 -0
  341. package/lib/isNonEmptyString.js +41 -0
  342. package/lib/isNonNegative.js +37 -0
  343. package/lib/isNonPositive.js +37 -0
  344. package/lib/isNotArray.js +31 -0
  345. package/lib/isNotArrayLike.js +33 -0
  346. package/lib/isNotAsyncFunction.js +36 -0
  347. package/lib/isNotBoolean.js +31 -0
  348. package/lib/isNotDate.js +30 -0
  349. package/lib/isNotEmpty.js +31 -0
  350. package/lib/isNotFinite.js +38 -0
  351. package/lib/isNotFloat.js +42 -0
  352. package/lib/isNotFunction.js +38 -0
  353. package/lib/isNotGeneratorFunction.js +36 -0
  354. package/lib/isNotInteger.js +43 -0
  355. package/lib/isNotMap.js +33 -0
  356. package/lib/isNotNaN.js +44 -0
  357. package/lib/isNotNil.js +28 -0
  358. package/lib/isNotNilOrEmpty.js +35 -0
  359. package/lib/isNotNull.js +31 -0
  360. package/lib/isNotNumber.js +32 -0
  361. package/lib/isNotObj.js +38 -0
  362. package/lib/isNotObjLike.js +38 -0
  363. package/lib/isNotPair.js +34 -0
  364. package/lib/isNotPlainObj.js +44 -0
  365. package/lib/isNotPrimitive.js +31 -0
  366. package/lib/isNotRegExp.js +31 -0
  367. package/lib/isNotSet.js +32 -0
  368. package/lib/isNotString.js +30 -0
  369. package/lib/isNotUndefined.js +31 -0
  370. package/lib/isNotValidDate.js +31 -0
  371. package/lib/isNotValidNumber.js +34 -0
  372. package/lib/isNull.js +27 -0
  373. package/lib/isNumber.js +29 -0
  374. package/lib/isObj.js +42 -0
  375. package/lib/isObjLike.js +40 -0
  376. package/lib/isOdd.js +33 -0
  377. package/lib/isPair.js +34 -0
  378. package/lib/isPlainObj.js +64 -0
  379. package/lib/isPositive.js +33 -0
  380. package/lib/isPositiveZero.js +28 -0
  381. package/lib/isPrimitive.js +47 -0
  382. package/lib/isPromise.js +36 -0
  383. package/lib/isPrototypeOf.js +43 -0
  384. package/lib/isRegExp.js +27 -0
  385. package/lib/isSafeInteger.js +46 -0
  386. package/lib/isSentinelValue.js +35 -0
  387. package/lib/isSet.js +28 -0
  388. package/lib/isSparseArray.js +39 -0
  389. package/lib/isString.js +26 -0
  390. package/lib/isSymbol.js +33 -0
  391. package/lib/isThenable.js +35 -0
  392. package/lib/isTrue.js +31 -0
  393. package/lib/isTruthy.js +33 -0
  394. package/lib/isUndefined.js +31 -0
  395. package/lib/isValidDate.js +36 -0
  396. package/lib/isValidNumber.js +36 -0
  397. package/lib/lastP.js +76 -0
  398. package/lib/lengthEq.js +31 -0
  399. package/lib/lengthGt.js +31 -0
  400. package/lib/lengthGte.js +33 -0
  401. package/lib/lengthLt.js +31 -0
  402. package/lib/lengthLte.js +32 -0
  403. package/lib/lengthNotEq.js +31 -0
  404. package/lib/lensEq.js +33 -0
  405. package/lib/lensIso.js +62 -0
  406. package/lib/lensNotEq.js +35 -0
  407. package/lib/lensNotSatisfy.js +37 -0
  408. package/lib/lensSatisfies.js +40 -0
  409. package/lib/lensTraverse.js +51 -0
  410. package/lib/liftF.js +46 -0
  411. package/lib/liftFN.js +56 -0
  412. package/lib/list.js +25 -0
  413. package/lib/mapIndexed.js +32 -0
  414. package/lib/mergePath.js +39 -0
  415. package/lib/mergePaths.js +36 -0
  416. package/lib/mergeProp.js +39 -0
  417. package/lib/mergeProps.js +32 -0
  418. package/lib/mergeRight.js +32 -0
  419. package/lib/move.js +31 -0
  420. package/lib/nand.js +33 -0
  421. package/lib/neither.js +45 -0
  422. package/lib/noneP.js +39 -0
  423. package/lib/nonePass.js +37 -0
  424. package/lib/noop.js +28 -0
  425. package/lib/nor.js +34 -0
  426. package/lib/notAllPass.js +37 -0
  427. package/lib/notAllUnique.js +32 -0
  428. package/lib/notBoth.js +45 -0
  429. package/lib/notEqual.js +36 -0
  430. package/lib/omitBy.js +32 -0
  431. package/lib/omitIndexes.js +34 -0
  432. package/lib/overlaps.js +38 -0
  433. package/lib/padCharsEnd.js +44 -0
  434. package/lib/padCharsStart.js +42 -0
  435. package/lib/padEnd.js +32 -0
  436. package/lib/padStart.js +30 -0
  437. package/lib/pathNotEq.js +38 -0
  438. package/lib/pathOrLazy.js +31 -0
  439. package/lib/paths.js +33 -0
  440. package/lib/pickIndexes.js +37 -0
  441. package/lib/propNotEq.js +35 -0
  442. package/lib/rangeStep.js +45 -0
  443. package/lib/reduceIndexed.js +36 -0
  444. package/lib/reduceP.js +122 -0
  445. package/lib/reduceRightP.js +129 -0
  446. package/lib/rejectP.js +29 -0
  447. package/lib/renameKeyWith.js +37 -0
  448. package/lib/renameKeys.js +51 -0
  449. package/lib/renameKeysWith.js +32 -0
  450. package/lib/repeatStr.js +37 -0
  451. package/lib/replaceAll.js +42 -0
  452. package/lib/resolveP.js +35 -0
  453. package/lib/round.js +30 -0
  454. package/lib/seq.js +50 -0
  455. package/lib/sign.js +39 -0
  456. package/lib/skipTake.js +28 -0
  457. package/lib/sliceFrom.js +28 -0
  458. package/lib/sliceTo.js +28 -0
  459. package/lib/sortByProps.js +58 -0
  460. package/lib/spreadPath.js +31 -0
  461. package/lib/spreadProp.js +34 -0
  462. package/lib/stubArray.js +25 -0
  463. package/lib/stubNull.js +24 -0
  464. package/lib/stubObj.js +26 -0
  465. package/lib/stubString.js +24 -0
  466. package/lib/stubUndefined.js +25 -0
  467. package/lib/subtractNum.js +25 -0
  468. package/lib/thenCatchP.js +33 -0
  469. package/lib/thenP.js +34 -0
  470. package/lib/toArray.js +40 -0
  471. package/lib/toInteger32.js +30 -0
  472. package/lib/toUinteger32.js +32 -0
  473. package/lib/trimCharsEnd.js +31 -0
  474. package/lib/trimCharsStart.js +31 -0
  475. package/lib/trimEnd.js +36 -0
  476. package/lib/trimStart.js +35 -0
  477. package/lib/trunc.js +39 -0
  478. package/lib/unzipObjWith.js +35 -0
  479. package/lib/viewOr.js +36 -0
  480. package/lib/weave.js +42 -0
  481. package/lib/weaveLazy.js +44 -0
  482. package/lib/zipObjWith.js +32 -0
  483. package/package.json +204 -0
  484. package/src/Y.js +32 -0
  485. package/src/allEqual.js +28 -0
  486. package/src/allEqualTo.js +25 -0
  487. package/src/allIdentical.js +26 -0
  488. package/src/allIdenticalTo.js +25 -0
  489. package/src/allP.js +27 -0
  490. package/src/allSettledP.js +34 -0
  491. package/src/allUnique.js +25 -0
  492. package/src/anyP.js +33 -0
  493. package/src/appendFlipped.js +24 -0
  494. package/src/argsPass.js +40 -0
  495. package/src/async.js +60 -0
  496. package/src/cata.js +86 -0
  497. package/src/catchP.js +25 -0
  498. package/src/ceil.js +28 -0
  499. package/src/compact.js +23 -0
  500. package/src/concatAll.js +34 -0
  501. package/src/concatRight.js +30 -0
  502. package/src/contained.js +30 -0
  503. package/src/curryRight.js +26 -0
  504. package/src/curryRightN.js +29 -0
  505. package/src/defaultWhen.js +26 -0
  506. package/src/delayP.js +45 -0
  507. package/src/dispatch.js +74 -0
  508. package/src/divideNum.js +20 -0
  509. package/src/dropArgs.js +23 -0
  510. package/src/ensureArray.js +24 -0
  511. package/src/escapeRegExp.js +22 -0
  512. package/src/fantasy-land/Identity.js +270 -0
  513. package/src/fantasy-land/mapping.js +20 -0
  514. package/src/fantasy-land/traits.js +57 -0
  515. package/src/fantasy-land/util.js +23 -0
  516. package/src/filterIndexed.js +28 -0
  517. package/src/findOr.js +30 -0
  518. package/src/flattenDepth.js +39 -0
  519. package/src/flattenPath.js +26 -0
  520. package/src/flattenProp.js +28 -0
  521. package/src/floor.js +27 -0
  522. package/src/fnull.js +38 -0
  523. package/src/hasPath.js +40 -0
  524. package/src/inRange.js +34 -0
  525. package/src/index.js +241 -0
  526. package/src/internal/ap.js +30 -0
  527. package/src/internal/compareLength.js +7 -0
  528. package/src/internal/isOfTypeObject.js +3 -0
  529. package/src/internal/makeFlat.js +42 -0
  530. package/src/internal/ponyfills/Array.from.js +34 -0
  531. package/src/internal/ponyfills/Math.sign.js +3 -0
  532. package/src/internal/ponyfills/Math.trunc.js +14 -0
  533. package/src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +3 -0
  534. package/src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +3 -0
  535. package/src/internal/ponyfills/Number.isFinite.js +8 -0
  536. package/src/internal/ponyfills/Number.isInteger.js +10 -0
  537. package/src/internal/ponyfills/Number.isNaN.js +8 -0
  538. package/src/internal/ponyfills/Number.isSafeInteger.js +11 -0
  539. package/src/internal/ponyfills/Promise.allSettled.js +18 -0
  540. package/src/internal/ponyfills/Promise.any.js +29 -0
  541. package/src/internal/ponyfills/String.padEnd.js +25 -0
  542. package/src/internal/ponyfills/String.padStart.js +27 -0
  543. package/src/internal/ponyfills/String.repeat.js +49 -0
  544. package/src/internal/ponyfills/String.replaceAll.js +44 -0
  545. package/src/internal/ponyfills/String.trimEnd.js +5 -0
  546. package/src/internal/ponyfills/String.trimStart.js +5 -0
  547. package/src/invoke.js +22 -0
  548. package/src/invokeArgs.js +36 -0
  549. package/src/isArray.js +27 -0
  550. package/src/isArrayLike.js +79 -0
  551. package/src/isAsyncFunction.js +23 -0
  552. package/src/isBigInt.js +24 -0
  553. package/src/isBoolean.js +22 -0
  554. package/src/isDate.js +21 -0
  555. package/src/isEmptyArray.js +28 -0
  556. package/src/isEmptyString.js +28 -0
  557. package/src/isError.js +21 -0
  558. package/src/isEven.js +31 -0
  559. package/src/isFalse.js +31 -0
  560. package/src/isFalsy.js +28 -0
  561. package/src/isFinite.js +37 -0
  562. package/src/isFloat.js +36 -0
  563. package/src/isFunction.js +32 -0
  564. package/src/isGeneratorFunction.js +43 -0
  565. package/src/isIndexed.js +24 -0
  566. package/src/isInteger.js +40 -0
  567. package/src/isInteger32.js +28 -0
  568. package/src/isIterable.js +37 -0
  569. package/src/isMap.js +25 -0
  570. package/src/isNaN.js +45 -0
  571. package/src/isNaturalNumber.js +28 -0
  572. package/src/isNegative.js +27 -0
  573. package/src/isNegativeZero.js +23 -0
  574. package/src/isNilOrEmpty.js +26 -0
  575. package/src/isNonEmptyArray.js +29 -0
  576. package/src/isNonEmptyString.js +32 -0
  577. package/src/isNonNegative.js +30 -0
  578. package/src/isNonPositive.js +30 -0
  579. package/src/isNotArray.js +24 -0
  580. package/src/isNotArrayLike.js +26 -0
  581. package/src/isNotAsyncFunction.js +27 -0
  582. package/src/isNotBoolean.js +24 -0
  583. package/src/isNotDate.js +23 -0
  584. package/src/isNotEmpty.js +26 -0
  585. package/src/isNotFinite.js +31 -0
  586. package/src/isNotFloat.js +35 -0
  587. package/src/isNotFunction.js +29 -0
  588. package/src/isNotGeneratorFunction.js +27 -0
  589. package/src/isNotInteger.js +36 -0
  590. package/src/isNotMap.js +27 -0
  591. package/src/isNotNaN.js +37 -0
  592. package/src/isNotNil.js +23 -0
  593. package/src/isNotNilOrEmpty.js +28 -0
  594. package/src/isNotNull.js +24 -0
  595. package/src/isNotNumber.js +25 -0
  596. package/src/isNotObj.js +29 -0
  597. package/src/isNotObjLike.js +29 -0
  598. package/src/isNotPair.js +27 -0
  599. package/src/isNotPlainObj.js +35 -0
  600. package/src/isNotPrimitive.js +25 -0
  601. package/src/isNotRegExp.js +24 -0
  602. package/src/isNotSet.js +26 -0
  603. package/src/isNotString.js +23 -0
  604. package/src/isNotUndefined.js +24 -0
  605. package/src/isNotValidDate.js +24 -0
  606. package/src/isNotValidNumber.js +27 -0
  607. package/src/isNull.js +22 -0
  608. package/src/isNumber.js +24 -0
  609. package/src/isObj.js +31 -0
  610. package/src/isObjLike.js +30 -0
  611. package/src/isOdd.js +29 -0
  612. package/src/isPair.js +27 -0
  613. package/src/isPlainObj.js +65 -0
  614. package/src/isPositive.js +26 -0
  615. package/src/isPositiveZero.js +23 -0
  616. package/src/isPrimitive.js +45 -0
  617. package/src/isPromise.js +32 -0
  618. package/src/isPrototypeOf.js +36 -0
  619. package/src/isRegExp.js +22 -0
  620. package/src/isSafeInteger.js +40 -0
  621. package/src/isSentinelValue.js +26 -0
  622. package/src/isSet.js +24 -0
  623. package/src/isSparseArray.js +43 -0
  624. package/src/isString.js +21 -0
  625. package/src/isSymbol.js +29 -0
  626. package/src/isThenable.js +28 -0
  627. package/src/isTrue.js +27 -0
  628. package/src/isTruthy.js +28 -0
  629. package/src/isUndefined.js +24 -0
  630. package/src/isValidDate.js +29 -0
  631. package/src/isValidNumber.js +28 -0
  632. package/src/lastP.js +54 -0
  633. package/src/lengthEq.js +24 -0
  634. package/src/lengthGt.js +24 -0
  635. package/src/lengthGte.js +26 -0
  636. package/src/lengthLt.js +24 -0
  637. package/src/lengthLte.js +25 -0
  638. package/src/lengthNotEq.js +24 -0
  639. package/src/lensEq.js +28 -0
  640. package/src/lensIso.js +51 -0
  641. package/src/lensNotEq.js +28 -0
  642. package/src/lensNotSatisfy.js +30 -0
  643. package/src/lensSatisfies.js +33 -0
  644. package/src/lensTraverse.js +44 -0
  645. package/src/liftF.js +37 -0
  646. package/src/liftFN.js +45 -0
  647. package/src/list.js +20 -0
  648. package/src/mapIndexed.js +27 -0
  649. package/src/mergePath.js +32 -0
  650. package/src/mergePaths.js +29 -0
  651. package/src/mergeProp.js +30 -0
  652. package/src/mergeProps.js +27 -0
  653. package/src/mergeRight.js +27 -0
  654. package/src/move.js +26 -0
  655. package/src/nand.js +27 -0
  656. package/src/neither.js +38 -0
  657. package/src/noneP.js +35 -0
  658. package/src/nonePass.js +32 -0
  659. package/src/noop.js +21 -0
  660. package/src/nor.js +28 -0
  661. package/src/notAllPass.js +32 -0
  662. package/src/notAllUnique.js +25 -0
  663. package/src/notBoth.js +38 -0
  664. package/src/notEqual.js +31 -0
  665. package/src/omitBy.js +25 -0
  666. package/src/omitIndexes.js +27 -0
  667. package/src/overlaps.js +32 -0
  668. package/src/padCharsEnd.js +37 -0
  669. package/src/padCharsStart.js +35 -0
  670. package/src/padEnd.js +25 -0
  671. package/src/padStart.js +23 -0
  672. package/src/pathNotEq.js +31 -0
  673. package/src/pathOrLazy.js +30 -0
  674. package/src/paths.js +26 -0
  675. package/src/pickIndexes.js +30 -0
  676. package/src/propNotEq.js +30 -0
  677. package/src/rangeStep.js +37 -0
  678. package/src/reduceIndexed.js +31 -0
  679. package/src/reduceP.js +96 -0
  680. package/src/reduceRightP.js +101 -0
  681. package/src/rejectP.js +24 -0
  682. package/src/renameKeyWith.js +30 -0
  683. package/src/renameKeys.js +40 -0
  684. package/src/renameKeysWith.js +27 -0
  685. package/src/repeatStr.js +30 -0
  686. package/src/replaceAll.js +35 -0
  687. package/src/resolveP.js +28 -0
  688. package/src/round.js +26 -0
  689. package/src/seq.js +38 -0
  690. package/src/sign.js +33 -0
  691. package/src/skipTake.js +33 -0
  692. package/src/sliceFrom.js +23 -0
  693. package/src/sliceTo.js +23 -0
  694. package/src/sortByProps.js +31 -0
  695. package/src/spreadPath.js +26 -0
  696. package/src/spreadProp.js +25 -0
  697. package/src/stubArray.js +18 -0
  698. package/src/stubNull.js +19 -0
  699. package/src/stubObj.js +19 -0
  700. package/src/stubString.js +19 -0
  701. package/src/stubUndefined.js +19 -0
  702. package/src/subtractNum.js +20 -0
  703. package/src/thenCatchP.js +27 -0
  704. package/src/thenP.js +29 -0
  705. package/src/toArray.js +32 -0
  706. package/src/toInteger32.js +22 -0
  707. package/src/toUinteger32.js +26 -0
  708. package/src/trimCharsEnd.js +25 -0
  709. package/src/trimCharsStart.js +25 -0
  710. package/src/trimEnd.js +30 -0
  711. package/src/trimStart.js +29 -0
  712. package/src/trunc.js +33 -0
  713. package/src/unzipObjWith.js +40 -0
  714. package/src/viewOr.js +32 -0
  715. package/src/weave.js +35 -0
  716. package/src/weaveLazy.js +37 -0
  717. package/src/zipObjWith.js +27 -0
  718. package/tonicExample.js +4 -0
  719. package/types/index.d.ts +1553 -0
package/es/argsPass.js ADDED
@@ -0,0 +1,38 @@
1
+ import { useWith, curry, compose } from 'ramda';
2
+ import list from './list';
3
+ import isTruthy from './isTruthy';
4
+ /**
5
+ * Takes a combining predicate and a list of functions and returns a function which will map the
6
+ * arguments it receives to the list of functions and returns the result of passing the values
7
+ * returned from each function to the combining predicate. A combining predicate is a function that
8
+ * combines a list of Boolean values into a single Boolean value, such as `R.any` or `R.all`. It
9
+ * will test each value using `RA.isTruthy`, meaning the functions don't necessarily have to be
10
+ * predicates.
11
+ *
12
+ * The function returned is curried to the number of functions supplied, and if called with more
13
+ * arguments than functions, any remaining arguments are passed in to the combining predicate
14
+ * untouched.
15
+ *
16
+ * @func argsPass
17
+ * @memberOf RA
18
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|v2.7.0}
19
+ * @category Logic
20
+ * @sig ((* -> Boolean) -> [*] -> Boolean) -> [(* -> Boolean), ...] -> (*...) -> Boolean
21
+ * @param {Function} combiningPredicate The predicate used to combine the values returned from the
22
+ * list of functions
23
+ * @param {Array} functions List of functions
24
+ * @return {boolean} Returns the combined result of mapping arguments to functions
25
+ * @example
26
+ *
27
+ * RA.argsPass(R.all, [RA.isArray, RA.isBoolean, RA.isString])([], false, 'abc') //=> true
28
+ * RA.argsPass(R.all, [RA.isArray, RA.isBoolean, RA.isString])([], false, 1) //=> false
29
+ * RA.argsPass(R.any, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, 'abc') //=> true
30
+ * RA.argsPass(R.any, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, false) //=> false
31
+ * RA.argsPass(R.none, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, false) //=> true
32
+ * RA.argsPass(R.none, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, 'abc') //=> false
33
+ */
34
+
35
+ var argsPass = curry(function (combiningPredicate, predicates) {
36
+ return useWith(compose(combiningPredicate(isTruthy), list), predicates);
37
+ });
38
+ export default argsPass;
package/es/async.js ADDED
@@ -0,0 +1,57 @@
1
+ import { curryN, bind } from 'ramda';
2
+ import resolveP from './resolveP';
3
+ import rejectP from './rejectP';
4
+ /**
5
+ * Takes a generator function and returns an async function.
6
+ * The async function returned is a curried function whose arity matches that of the generator function.
7
+ *
8
+ * Note: This function is handy for environments that does support generators but doesn't support async/await.
9
+ *
10
+ * @func async
11
+ * @memberOf RA
12
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.16.0|v2.16.0}
13
+ * @category Function
14
+ * @sig Promise c => (a, b, ...) -> a -> b -> ... -> c
15
+ * @param {Function} generatorFn The generator function
16
+ * @return {Function} Curried async function
17
+ * @see {@link https://www.promisejs.org/generators/}
18
+ * @example
19
+ *
20
+ * const asyncFn = RA.async(function* generator(val1, val2) {
21
+ * const a = yield Promise.resolve(val1);
22
+ * const b = yield Promise.resolve(val2);
23
+ *
24
+ * return a + b;
25
+ * });
26
+ *
27
+ * asyncFn(1, 2); //=> Promise(3)
28
+ *
29
+ */
30
+
31
+ var async = curryN(1, function (generatorFn) {
32
+ function asyncWrapper() {
33
+ var iterator = bind(generatorFn, this).apply(void 0, arguments);
34
+
35
+ var handle = function handle(result) {
36
+ var resolved = resolveP(result.value);
37
+ return result.done ? resolved : resolved.then(function (value) {
38
+ return handle(iterator.next(value));
39
+ }, function (error) {
40
+ return handle(iterator["throw"](error));
41
+ });
42
+ };
43
+
44
+ try {
45
+ return handle(iterator.next());
46
+ } catch (error) {
47
+ return rejectP(error);
48
+ }
49
+ }
50
+
51
+ if (generatorFn.length > 0) {
52
+ return curryN(generatorFn.length, asyncWrapper);
53
+ }
54
+
55
+ return asyncWrapper;
56
+ });
57
+ export default async;
package/es/cata.js ADDED
@@ -0,0 +1,101 @@
1
+ import { curry } from 'ramda';
2
+ import isFunction from './isFunction';
3
+ /**
4
+ * The catamorphism is a way of folding a type into a value.
5
+ *
6
+ * **Either**
7
+ *
8
+ * If the either is right then the right function will be executed with
9
+ * the `right` value and the value of the function returned. Otherwise the left function
10
+ * will be called with the `left` value.
11
+ *
12
+ * **Maybe**
13
+ *
14
+ * If the maybe is Some than the right function will be executed with the `some` value and the value of the function
15
+ * returned. Otherwise the left function with be called without an argument.
16
+ *
17
+ * **Result**
18
+ *
19
+ * If the result is Ok than the right function will be executed with the `Ok` value and the value of the function
20
+ * returned. Otherwise the left function will be called with the `Error` value.
21
+ *
22
+ * **Validation**
23
+ *
24
+ * If the validation is Success than the right function will be executed with the `Success` value and the value of the function
25
+ * returned. Otherwise the left function will be called with the `Failure` value.
26
+ *
27
+ * Supported monadic libraries: {@link https://monet.github.io/monet.js/|monet.js}, {@link https://folktale.origamitower.com/|folktale}, {@link https://github.com/ramda/ramda-fantasy|ramda-fantasy}
28
+ *
29
+ * @func cata
30
+ * @memberOf RA
31
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.4.0|v1.4.0}
32
+ * @category Function
33
+ * @sig (a -> b) -> (a -> c) -> Cata a -> b | c
34
+ * @param {Function} leftFn The left function that consumes the left value
35
+ * @param {Function} rightFn The right function that consumes the right value
36
+ * @param {Cata} catamorphicObj Either, Maybe or any other type with catamorphic capabilities (`cata` or `either` method)
37
+ * @return {*}
38
+ * @see {@link https://monet.github.io/monet.js/#cata|cata explained}
39
+ * @example
40
+ *
41
+ * // Either
42
+ * const eitherR = Either.Right(1);
43
+ * const eitherL = Either.Left(2);
44
+ *
45
+ * RA.cata(identity, identity, eitherR); //=> 1
46
+ * RA.cata(identity, identity, eitherL); //=> 2
47
+ *
48
+ * // Maybe
49
+ * const maybeSome = Maybe.Some(1);
50
+ * const maybeNothing = Maybe.Nothing();
51
+ *
52
+ * RA.cata(identity, identity, maybeSome); //=> 1
53
+ * RA.cata(identity, identity, maybeNothing); //=> undefined
54
+ */
55
+
56
+ var catamorphism = curry(function (leftFn, rightFn, catamorphicObj) {
57
+ // folktale support
58
+ if (isFunction(catamorphicObj.matchWith)) {
59
+ return catamorphicObj.matchWith({
60
+ // Result type
61
+ Ok: function Ok(_ref) {
62
+ var value = _ref.value;
63
+ return rightFn(value);
64
+ },
65
+ Error: function Error(_ref2) {
66
+ var value = _ref2.value;
67
+ return leftFn(value);
68
+ },
69
+ // Maybe type
70
+ Just: function Just(_ref3) {
71
+ var value = _ref3.value;
72
+ return rightFn(value);
73
+ },
74
+ Nothing: function Nothing() {
75
+ return leftFn(undefined);
76
+ },
77
+ // Validation type
78
+ Success: function Success(_ref4) {
79
+ var value = _ref4.value;
80
+ return rightFn(value);
81
+ },
82
+ Failure: function Failure(_ref5) {
83
+ var value = _ref5.value;
84
+ return leftFn(value);
85
+ }
86
+ });
87
+ }
88
+
89
+ if (isFunction(catamorphicObj.cata)) {
90
+ return catamorphicObj.cata(leftFn, rightFn);
91
+ }
92
+
93
+ if (isFunction(catamorphicObj.getOrElse)) {
94
+ var elseValue = "RA.cata".concat(Math.random());
95
+ var value = catamorphicObj.getOrElse(elseValue);
96
+ return value === elseValue ? leftFn() : rightFn(value);
97
+ }
98
+
99
+ return catamorphicObj.either(leftFn, rightFn);
100
+ });
101
+ export default catamorphism;
package/es/catchP.js ADDED
@@ -0,0 +1,24 @@
1
+ import { invoker } from 'ramda';
2
+ /**
3
+ * Composable shortcut for `Promise.catch`.
4
+ * The catchP function returns a Promise. It takes two arguments: a callback function for the failure of the Promise
5
+ * and the promise instance itself.
6
+ *
7
+ * @func catchP
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.29.0|v2.29.0}
10
+ * @category Function
11
+ * @sig (a -> Promise b | b) -> Promise b
12
+ * @param {Function} onRejected A Function called if the Promise is rejected. This function has one argument, the rejection reason.
13
+ * @param {Promise} promise Any Promise
14
+ * @return {Promise} Returns a Promise with dealt rejected cases
15
+ * @see {@link RA.thenP|thenP}, {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}, {@link RA.allP|allP}
16
+ *
17
+ * @example
18
+ *
19
+ * RA.catchP(() => 'b', Promise.resolve('a')); //=> Promise('a')
20
+ * RA.catchP(() => 'b', Promise.reject('a')); //=> Promise('b')
21
+ */
22
+
23
+ var catchP = invoker(1, 'catch');
24
+ export default catchP;
package/es/ceil.js ADDED
@@ -0,0 +1,26 @@
1
+ import { bind, curryN } from 'ramda';
2
+ /**
3
+ * Returns the smallest integer greater than or equal to a given number.
4
+ *
5
+ * Note: ceil(null) returns integer 0 and does not give a NaN error.
6
+ *
7
+ * @func ceil
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}
10
+ * @category Math
11
+ * @sig Number -> Number
12
+ * @param {number} number The number to ceil
13
+ * @return {number} The smallest integer greater than or equal to the given number
14
+ * @example
15
+ *
16
+ * RA.ceil(.95); //=> 1
17
+ * RA.ceil(4); //=> 4
18
+ * RA.ceil(7.004); //=> 8
19
+ * RA.ceil(-0.95); //=> -0
20
+ * RA.ceil(-4); //=> -4
21
+ * RA.ceil(-7.004); //=> -7
22
+ * RA.ceil(null); //=> 0
23
+ */
24
+
25
+ var ceil = curryN(1, bind(Math.ceil, Math));
26
+ export default ceil;
package/es/compact.js ADDED
@@ -0,0 +1,21 @@
1
+ import { reject } from 'ramda';
2
+ import isFalsy from './isFalsy';
3
+ /**
4
+ * Creates an array with all falsy values removed.
5
+ * The values false, null, 0, "", undefined, and NaN are falsy.
6
+ *
7
+ * @func compact
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}
10
+ * @category List
11
+ * @sig Filterable f => f a -> f a
12
+ * @param {Array} list The array to compact
13
+ * @return {Array} Returns the new array of filtered values
14
+ * @see {@link RA.isFalsy|isFalsy}
15
+ * @example
16
+ *
17
+ * RA.compact([0, 1, false, 2, '', 3]); //=> [1, 2, 3]
18
+ */
19
+
20
+ var compact = reject(isFalsy);
21
+ export default compact;
@@ -0,0 +1,30 @@
1
+ import { concat, identical, identity, pipe, reduce, when } from 'ramda';
2
+ import stubUndefined from './stubUndefined';
3
+ var leftIdentitySemigroup = {
4
+ concat: identity
5
+ };
6
+ /**
7
+ * Returns the result of concatenating the given lists or strings.
8
+ * Note: RA.concatAll expects all elements to be of the same type. It will throw an error if you concat an Array with a non-Array value.
9
+ * Dispatches to the concat method of the preceding element, if present. Can also concatenate multiple elements of a [fantasy-land compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).
10
+ * Returns undefined if empty array was passed.
11
+ *
12
+ * @func concatAll
13
+ * @memberOf RA
14
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}
15
+ * @category List
16
+ * @sig [[a]] -> [a] | Undefined
17
+ * @sig [String] -> String | Undefined
18
+ * @sig Semigroup s => Foldable s f => f -> s | Undefined
19
+ * @param {Array.<Array|string>} list List containing elements that will be concatenated
20
+ * @return {Array|string|undefined} Concatenated elements
21
+ * @see {@link http://ramdajs.com/docs/#concat|R.concat}, {@link RA.concatRight|concatRight}, {@link http://ramdajs.com/docs/#unnest|R.unnest}, {@link http://ramdajs.com/docs/#join|R.join}
22
+ * @example
23
+ *
24
+ * concatAll([[1], [2], [3]]); //=> [1, 2, 3]
25
+ * concatAll(['1', '2', '3']); //=> '123'
26
+ * concatAll([]); //=> undefined;
27
+ */
28
+
29
+ var concatAll = pipe(reduce(concat, leftIdentitySemigroup), when(identical(leftIdentitySemigroup), stubUndefined));
30
+ export default concatAll;
@@ -0,0 +1,29 @@
1
+ import { concat, flip } from 'ramda';
2
+ /**
3
+ * Returns the result of concatenating the given lists or strings.
4
+ *
5
+ * Note: R.concat expects both arguments to be of the same type, unlike
6
+ * the native Array.prototype.concat method.
7
+ * It will throw an error if you concat an Array with a non-Array value.
8
+ * Dispatches to the concat method of the second argument, if present.
9
+ *
10
+ * @func concatRight
11
+ * @memberOf RA
12
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.11.0|v1.11.0}
13
+ * @category List
14
+ * @sig [a] -> [a] -> [a]
15
+ * @sig String -> String -> String
16
+ * @param {Array|String} firstList The first list
17
+ * @param {Array|String} secondList The second list
18
+ * @return {Array|String} A list consisting of the elements of `secondList`
19
+ * followed by the elements of `firstList`.
20
+ * @see {@link http://ramdajs.com/docs/#concat|R.concat}
21
+ * @example
22
+ *
23
+ * RA.concatRight('ABC', 'DEF'); //=> 'DEFABC'
24
+ * RA.concatRight([4, 5, 6], [1, 2, 3]); //=> [1, 2, 3, 4, 5, 6]
25
+ * RA.concatRight([], []); //=> []
26
+ */
27
+
28
+ var concatRight = flip(concat);
29
+ export default concatRight;
@@ -0,0 +1,29 @@
1
+ import { flip, contains } from 'ramda';
2
+ /**
3
+ * Returns true if the specified value is equal, in R.equals terms,
4
+ * to at least one element of the given list or false otherwise.
5
+ * Given list can be a string.
6
+ *
7
+ * Like {@link http://ramdajs.com/docs/#contains|R.contains} but with argument order reversed.
8
+ *
9
+ * @func contained
10
+ * @aliases included
11
+ * @memberOf RA
12
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}
13
+ * @deprecated since v2.12.0; please use RA.included alias
14
+ * @category List
15
+ * @sig [a] -> a -> Boolean
16
+ * @param {Array|String} list The list to consider
17
+ * @param {*} a The item to compare against
18
+ * @return {boolean} Returns Boolean `true` if an equivalent item is in the list or `false` otherwise
19
+ * @see {@link http://ramdajs.com/docs/#contains|R.contains}
20
+ * @example
21
+ *
22
+ * RA.contained([1, 2, 3], 3); //=> true
23
+ * RA.contained([1, 2, 3], 4); //=> false
24
+ * RA.contained([{ name: 'Fred' }], { name: 'Fred' }); //=> true
25
+ * RA.contained([[42]], [42]); //=> true
26
+ */
27
+
28
+ var contained = flip(contains);
29
+ export default contained;
@@ -0,0 +1,24 @@
1
+ import { converge, length, identity } from 'ramda';
2
+ import curryRightN from './curryRightN';
3
+ /**
4
+ * Returns a curried equivalent of the provided function.
5
+ * This function is like curry, except that the provided arguments order is reversed.
6
+ *
7
+ * @func curryRight
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.12.0|v1.12.0}
10
+ * @category Function
11
+ * @sig (* -> a) -> (* -> a)
12
+ * @param {Function} fn The function to curry
13
+ * @return {Function} A new, curried function
14
+ * @see {@link http://ramdajs.com/docs/#curry|R.curry}, {@link RA.curryRightN|curryRightN}
15
+ * @example
16
+ *
17
+ * const concatStrings = (a, b, c) => a + b + c;
18
+ * const concatStringsCurried = RA.curryRight(concatStrings);
19
+ *
20
+ * concatStringCurried('a')('b')('c'); // => 'cba'
21
+ */
22
+
23
+ var curryRight = converge(curryRightN, [length, identity]);
24
+ export default curryRight;
@@ -0,0 +1,32 @@
1
+ import { curryN, reverse } from 'ramda';
2
+ /**
3
+ * Returns a curried equivalent of the provided function, with the specified arity.
4
+ * This function is like curryN, except that the provided arguments order is reversed.
5
+ *
6
+ * @func curryRightN
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/1.12.0|v1.12.0}
9
+ * @category Function
10
+ * @sig Number -> (* -> a) -> (* -> a)
11
+ * @param {number} length The arity for the returned function
12
+ * @param {Function} fn The function to curry
13
+ * @return {Function} A new, curried function
14
+ * @see {@link http://ramdajs.com/docs/#curryN|R.curryN}, {@link RA.curryRight|curryRight}
15
+ * @example
16
+ *
17
+ * const concatStrings = (a, b, c) => a + b + c;
18
+ * const concatStringsCurried = RA.curryRightN(3, concatStrings);
19
+ *
20
+ * concatStringCurried('a')('b')('c'); // => 'cba'
21
+ */
22
+
23
+ var curryRightN = curryN(2, function (arity, fn) {
24
+ return curryN(arity, function wrapper() {
25
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
26
+ args[_key] = arguments[_key];
27
+ }
28
+
29
+ return fn.apply(this, reverse(args));
30
+ });
31
+ });
32
+ export default curryRightN;
@@ -0,0 +1,25 @@
1
+ import { curry } from 'ramda';
2
+ /**
3
+ * Returns the second argument if predicate function returns `true`,
4
+ * otherwise the third argument is returned.
5
+ *
6
+ * @func defaultWhen
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}
9
+ * @category Logic
10
+ * @sig (a -> Boolean) -> b -> a -> a | b
11
+ * @param {!function} predicate The predicate function
12
+ * @param {*} defaultVal The default value
13
+ * @param {*} val `val` will be returned instead of `defaultVal` if predicate returns false
14
+ * @return {*} The `val` if predicate returns `false`, otherwise the default value
15
+ * @see {@link http://ramdajs.com/docs/#defaultTo|R.defaultTo}
16
+ * @example
17
+ *
18
+ * RA.defaultWhen(RA.isNull, 1, null); // => 1
19
+ * RA.defaultWhen(RA.isNull, 1, 2); // => 2
20
+ */
21
+
22
+ var defaultWhen = curry(function (predicate, defaultVal, val) {
23
+ return predicate(val) ? defaultVal : val;
24
+ });
25
+ export default defaultWhen;
package/es/delayP.js ADDED
@@ -0,0 +1,44 @@
1
+ import { curry, propOr, partial, nth } from 'ramda';
2
+ import isNonNegative from './isNonNegative';
3
+ import isInteger from './isInteger';
4
+ /**
5
+ * Creates a promise which resolves/rejects after the specified milliseconds.
6
+ *
7
+ * @func delayP
8
+ * @memberOf RA
9
+ * @category Function
10
+ * @sig Number -> Promise Undefined
11
+ * @sig {timeout: Number, value: a} -> Promise a
12
+ * @param {number|Object} milliseconds number of milliseconds or options object
13
+ * @return {Promise} A Promise that is resolved/rejected with the given value (if provided) after the specified delay
14
+ * @example
15
+ *
16
+ * RA.delayP(200); //=> Promise(undefined)
17
+ * RA.delayP({ timeout: 1000, value: 'hello world' }); //=> Promise('hello world')
18
+ * RA.delayP.reject(100); //=> Promise(undefined)
19
+ * RA.delayP.reject({ timeout: 100, value: new Error('error') }); //=> Promise(Error('error'))
20
+ */
21
+
22
+ var makeDelay = curry(function (settleFnPicker, opts) {
23
+ var timeout;
24
+ var value;
25
+
26
+ if (isInteger(opts) && isNonNegative(opts)) {
27
+ timeout = opts;
28
+ } else {
29
+ timeout = propOr(0, 'timeout', opts);
30
+ value = propOr(value, 'value', opts);
31
+ }
32
+
33
+ return new Promise(function () {
34
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
35
+ args[_key] = arguments[_key];
36
+ }
37
+
38
+ var settleFn = settleFnPicker(args);
39
+ setTimeout(partial(settleFn, [value]), timeout);
40
+ });
41
+ });
42
+ var delayP = makeDelay(nth(0));
43
+ delayP.reject = makeDelay(nth(1));
44
+ export default delayP;
package/es/dispatch.js ADDED
@@ -0,0 +1,75 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+
5
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6
+
7
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
8
+
9
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
10
+
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
+
13
+ import { sort, comparator, prop, pipe, head, curryN, reduce, reduced, curry, ifElse } from 'ramda';
14
+ /**
15
+ * Can be used as a way to compose multiple invokers together to form polymorphic functions,
16
+ * or functions that exhibit different behaviors based on their argument(s).
17
+ * Consumes dispatching functions and keep trying to invoke each in turn, until a non-nil value is returned.
18
+ *
19
+ * Accepts a list of dispatching functions and returns a new function.
20
+ * When invoked, this new function is applied to some arguments,
21
+ * each dispatching function is applied to those same arguments until one of the
22
+ * dispatching functions returns a non-nil value.
23
+ *
24
+ * @func dispatch
25
+ * @memberOf RA
26
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}
27
+ * @category Function
28
+ * @sig [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> x1 | x2 | ...
29
+ * @param {!Array} functions A list of functions
30
+ * @return {*|undefined} Returns the first not-nil value, or undefined if either an empty list is provided or none of the dispatching functions returns a non-nil value
31
+ * @see {@link RA.isNotNil}
32
+ * @example
33
+ *
34
+ * // returns first non-nil value
35
+ * const stubNil = () => null;
36
+ * const stubUndefined = () => undefined;
37
+ * const addOne = v => v + 1;
38
+ * const addTwo = v => v + 2;
39
+ *
40
+ * RA.dispatch([stubNil, stubUndefined, addOne, addTwo])(1); //=> 2
41
+ *
42
+ * // acts as a switch
43
+ * const fnSwitch = RA.dispatch([
44
+ * R.ifElse(RA.isString, s => `${s}-join`, RA.stubUndefined),
45
+ * R.ifElse(RA.isNumber, n => n + 1, RA.stubUndefined),
46
+ * R.ifElse(RA.isDate, R.T, RA.stubUndefined),
47
+ * ]);
48
+ * fnSwitch(1); //=> 2
49
+ */
50
+
51
+ import isNotNil from './isNotNil';
52
+ import isNonEmptyArray from './isNonEmptyArray';
53
+ import stubUndefined from './stubUndefined';
54
+ var byArity = comparator(function (a, b) {
55
+ return a.length > b.length;
56
+ });
57
+ var getMaxArity = pipe(sort(byArity), head, prop('length'));
58
+ var iteratorFn = curry(function (args, accumulator, fn) {
59
+ var result = fn.apply(void 0, _toConsumableArray(args));
60
+ return isNotNil(result) ? reduced(result) : accumulator;
61
+ });
62
+
63
+ var dispatchImpl = function dispatchImpl(functions) {
64
+ var arity = getMaxArity(functions);
65
+ return curryN(arity, function () {
66
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
67
+ args[_key] = arguments[_key];
68
+ }
69
+
70
+ return reduce(iteratorFn(args), undefined, functions);
71
+ });
72
+ };
73
+
74
+ var dispatch = ifElse(isNonEmptyArray, dispatchImpl, stubUndefined);
75
+ export default dispatch;
@@ -0,0 +1,19 @@
1
+ import { divide, flip } from 'ramda';
2
+ /**
3
+ * Divides two numbers, where the second number is divided by the first number.
4
+ *
5
+ * @func divideNum
6
+ * @memberOf RA
7
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}
8
+ * @category Math
9
+ * @sig Number -> Number -> Number
10
+ * @param {number} divisor the number to divide by
11
+ * @param {number} dividend the number to divide
12
+ * @return {number} A number representing the quotient of dividing the dividend by the divisor
13
+ * @example
14
+ *
15
+ * RA.divideNum(2, 1); //=> 0.5
16
+ */
17
+
18
+ var divideNum = flip(divide);
19
+ export default divideNum;
package/es/dropArgs.js ADDED
@@ -0,0 +1,22 @@
1
+ import { nAry } from 'ramda';
2
+ /**
3
+ * Accepts a function with any arity and returns a function with arity of zero.
4
+ * The returned function ignores any arguments supplied to it.
5
+ *
6
+ * @func dropArgs
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.10.0|v2.10.0}
9
+ * @category Logic
10
+ * @sig (...a -> b)-> () -> b
11
+ * @param {Function} fn The function with any arity
12
+ * @return {Function} Returns function with arity of zero
13
+ * @see {@link http://ramdajs.com/docs/#nAry|R.nAry}
14
+ * @example
15
+ *
16
+ * const fn = (a = 1, b = 2) => a + b;
17
+ *
18
+ * RA.dropArgs(fn)('ignore1', 'ignore2'); //=> 3
19
+ */
20
+
21
+ var dropArgs = nAry(0);
22
+ export default dropArgs;
@@ -0,0 +1,22 @@
1
+ import { when, of } from 'ramda';
2
+ import isNotArray from './isNotArray';
3
+ /**
4
+ * Returns a singleton array containing the value provided.
5
+ * If value is already an array, it is returned as is.
6
+ *
7
+ * @func ensureArray
8
+ * @memberOf RA
9
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}
10
+ * @category List
11
+ * @sig a | [a] -> [a]
12
+ * @param {*|Array} val the value ensure as Array
13
+ * @return {Array}
14
+ * @see {@link http://ramdajs.com/docs/#of|R.of}
15
+ * @example
16
+ *
17
+ * RA.ensureArray(42); //=> [42]
18
+ * RA.ensureArray([42]); //=> [42]
19
+ */
20
+
21
+ var ensureArray = when(isNotArray, of);
22
+ export default ensureArray;
@@ -0,0 +1,20 @@
1
+ import { when, replace } from 'ramda';
2
+ import isString from './isString';
3
+ /**
4
+ * Escapes the RegExp special characters.
5
+ *
6
+ * @func escapeRegExp
7
+ * @memberOf RA
8
+ * @since {@link https://char0n.github.io/ramda-adjunct/2.21.0|v2.21.0}
9
+ * @category String
10
+ * @sig String -> String
11
+ * @param {string} val the value to escape
12
+ * @return {string}
13
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping|MDN Regular Expressions Escaping}
14
+ * @example
15
+ *
16
+ * RA.escapeRegExp('[ramda-adjunct](https://github.com/char0n/ramda-adjunct)'); //=> '\[ramda\-adjunct\]\(https://github\.com/char0n/ramda\-adjunct\)'
17
+ */
18
+
19
+ var escapeRegExp = when(isString, replace(/[.*+?^${}()|[\]\\-]/g, '\\$&'));
20
+ export default escapeRegExp;