ramda-adjunct 5.0.0 → 5.1.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 (408) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +1 -1
  3. package/dist/RA.node.js +10440 -452
  4. package/dist/RA.node.min.js +1 -1
  5. package/dist/RA.web.js +10440 -452
  6. package/dist/RA.web.min.js +1 -1
  7. package/dist/RA.web.standalone.js +18646 -447
  8. package/dist/RA.web.standalone.min.js +1 -1
  9. package/dist/package.json +1 -0
  10. package/es/async.js +4 -4
  11. package/es/copyKeys.js +1 -1
  12. package/es/dispatch.js +5 -5
  13. package/es/fantasy-land/Identity.js +3 -3
  14. package/es/fantasy-land/traits.js +1 -1
  15. package/es/flattenDepth.js +5 -5
  16. package/es/internal/ponyfills/Array.from.js +5 -5
  17. package/es/internal/ponyfills/Promise.allSettled.js +5 -5
  18. package/es/internal/ponyfills/Promise.any.js +15 -15
  19. package/es/lastP.js +5 -5
  20. package/es/reduceP.js +4 -4
  21. package/es/reduceRightP.js +4 -4
  22. package/es/renameKey.js +1 -1
  23. package/es/sortByProps.js +5 -5
  24. package/lib/allEqual.js +1 -1
  25. package/lib/allIdentical.js +1 -1
  26. package/lib/allSettledP.js +1 -1
  27. package/lib/allUnique.js +1 -1
  28. package/lib/anyP.js +1 -1
  29. package/lib/argsPass.js +1 -1
  30. package/lib/async.js +5 -5
  31. package/lib/cata.js +1 -1
  32. package/lib/compact.js +1 -1
  33. package/lib/concatAll.js +1 -1
  34. package/lib/copyKeys.js +2 -2
  35. package/lib/curryRight.js +1 -1
  36. package/lib/delayP.js +1 -1
  37. package/lib/dispatch.js +6 -6
  38. package/lib/ensureArray.js +1 -1
  39. package/lib/escapeRegExp.js +1 -1
  40. package/lib/fantasy-land/Identity.js +3 -3
  41. package/lib/fantasy-land/traits.js +2 -2
  42. package/lib/flattenDepth.js +6 -6
  43. package/lib/flattenProp.js +1 -1
  44. package/lib/fnull.js +1 -1
  45. package/lib/index.js +1 -1
  46. package/lib/internal/ap.js +1 -1
  47. package/lib/internal/isCoercible.js +1 -1
  48. package/lib/internal/makeFlat.js +1 -1
  49. package/lib/internal/ponyfills/Array.from.js +6 -6
  50. package/lib/internal/ponyfills/Math.trunc.js +1 -1
  51. package/lib/internal/ponyfills/Number.isFinite.js +1 -1
  52. package/lib/internal/ponyfills/Number.isInteger.js +1 -1
  53. package/lib/internal/ponyfills/Number.isNaN.js +1 -1
  54. package/lib/internal/ponyfills/Number.isSafeInteger.js +1 -1
  55. package/lib/internal/ponyfills/Promise.allSettled.js +6 -6
  56. package/lib/internal/ponyfills/Promise.any.js +16 -16
  57. package/lib/internal/ponyfills/String.padEnd.js +1 -1
  58. package/lib/internal/ponyfills/String.padStart.js +1 -1
  59. package/lib/internal/ponyfills/String.repeat.js +1 -1
  60. package/lib/internal/ponyfills/String.replaceAll.js +1 -1
  61. package/lib/invoke.js +1 -1
  62. package/lib/invokeArgs.js +1 -1
  63. package/lib/isArray.js +1 -1
  64. package/lib/isArrayLike.js +1 -1
  65. package/lib/isBlank.js +1 -1
  66. package/lib/isEmptyArray.js +1 -1
  67. package/lib/isEven.js +1 -1
  68. package/lib/isFalsy.js +1 -1
  69. package/lib/isFinite.js +1 -1
  70. package/lib/isFloat.js +1 -1
  71. package/lib/isFunction.js +1 -1
  72. package/lib/isIndexed.js +1 -1
  73. package/lib/isInteger.js +1 -1
  74. package/lib/isInteger32.js +1 -1
  75. package/lib/isIterable.js +1 -1
  76. package/lib/isNaN.js +1 -1
  77. package/lib/isNaturalNumber.js +1 -1
  78. package/lib/isNegative.js +1 -1
  79. package/lib/isNonEmptyArray.js +1 -1
  80. package/lib/isNonEmptyString.js +1 -1
  81. package/lib/isNonNegative.js +1 -1
  82. package/lib/isNonPositive.js +1 -1
  83. package/lib/isNotArray.js +1 -1
  84. package/lib/isNotArrayLike.js +1 -1
  85. package/lib/isNotAsyncFunction.js +1 -1
  86. package/lib/isNotBoolean.js +1 -1
  87. package/lib/isNotDate.js +1 -1
  88. package/lib/isNotFinite.js +1 -1
  89. package/lib/isNotFloat.js +1 -1
  90. package/lib/isNotFunction.js +1 -1
  91. package/lib/isNotGeneratorFunction.js +1 -1
  92. package/lib/isNotInteger.js +1 -1
  93. package/lib/isNotMap.js +1 -1
  94. package/lib/isNotNaN.js +1 -1
  95. package/lib/isNotNilOrEmpty.js +1 -1
  96. package/lib/isNotNull.js +1 -1
  97. package/lib/isNotNumber.js +1 -1
  98. package/lib/isNotObj.js +1 -1
  99. package/lib/isNotObjLike.js +1 -1
  100. package/lib/isNotPair.js +1 -1
  101. package/lib/isNotPlainObj.js +1 -1
  102. package/lib/isNotPrimitive.js +1 -1
  103. package/lib/isNotRegExp.js +1 -1
  104. package/lib/isNotSet.js +1 -1
  105. package/lib/isNotString.js +1 -1
  106. package/lib/isNotUndefined.js +1 -1
  107. package/lib/isNotValidDate.js +1 -1
  108. package/lib/isNotValidNumber.js +1 -1
  109. package/lib/isObj.js +1 -1
  110. package/lib/isObjLike.js +1 -1
  111. package/lib/isOdd.js +1 -1
  112. package/lib/isPair.js +1 -1
  113. package/lib/isPlainObj.js +1 -1
  114. package/lib/isPositive.js +1 -1
  115. package/lib/isPrimitive.js +1 -1
  116. package/lib/isPromise.js +1 -1
  117. package/lib/isPrototypeOf.js +1 -1
  118. package/lib/isSafeInteger.js +1 -1
  119. package/lib/isSentinelValue.js +1 -1
  120. package/lib/isSparseArray.js +1 -1
  121. package/lib/isThenable.js +1 -1
  122. package/lib/isUinteger32.js +1 -1
  123. package/lib/isUndefined.js +1 -1
  124. package/lib/isValidDate.js +1 -1
  125. package/lib/isValidNumber.js +1 -1
  126. package/lib/lastP.js +6 -6
  127. package/lib/lengthEq.js +1 -1
  128. package/lib/lengthGt.js +1 -1
  129. package/lib/lengthGte.js +1 -1
  130. package/lib/lengthLt.js +1 -1
  131. package/lib/lengthLte.js +1 -1
  132. package/lib/lengthNotEq.js +1 -1
  133. package/lib/lensNotEq.js +1 -1
  134. package/lib/lensNotSatisfy.js +1 -1
  135. package/lib/lensSatisfies.js +1 -1
  136. package/lib/lensTraverse.js +1 -1
  137. package/lib/liftF.js +1 -1
  138. package/lib/liftFN.js +1 -1
  139. package/lib/mergePaths.js +1 -1
  140. package/lib/mergeProp.js +1 -1
  141. package/lib/noneP.js +1 -1
  142. package/lib/noop.js +1 -1
  143. package/lib/notAllUnique.js +1 -1
  144. package/lib/padCharsEnd.js +1 -1
  145. package/lib/padCharsStart.js +1 -1
  146. package/lib/padEnd.js +1 -1
  147. package/lib/padStart.js +1 -1
  148. package/lib/rangeStep.js +1 -1
  149. package/lib/reduceP.js +5 -5
  150. package/lib/reduceRightP.js +5 -5
  151. package/lib/renameKey.js +2 -2
  152. package/lib/renameKeyWith.js +1 -1
  153. package/lib/renameKeys.js +1 -1
  154. package/lib/repeatStr.js +1 -1
  155. package/lib/replaceAll.js +1 -1
  156. package/lib/sign.js +1 -1
  157. package/lib/sortByProp.js +1 -1
  158. package/lib/sortByProps.js +5 -5
  159. package/lib/spreadProp.js +1 -1
  160. package/lib/toArray.js +1 -1
  161. package/lib/toNumber.js +1 -1
  162. package/lib/trimCharsEnd.js +1 -1
  163. package/lib/trimCharsStart.js +1 -1
  164. package/lib/trimEnd.js +1 -1
  165. package/lib/trimStart.js +1 -1
  166. package/lib/trunc.js +1 -1
  167. package/lib/unzipObjWith.js +1 -1
  168. package/package.json +33 -30
  169. package/types/index.d.ts +0 -5
  170. package/babel.config.cjs +0 -56
  171. package/src/Y.js +0 -32
  172. package/src/allEqual.js +0 -28
  173. package/src/allEqualTo.js +0 -25
  174. package/src/allIdentical.js +0 -26
  175. package/src/allIdenticalTo.js +0 -25
  176. package/src/allP.js +0 -27
  177. package/src/allSettledP.js +0 -34
  178. package/src/allUnique.js +0 -25
  179. package/src/anyP.js +0 -33
  180. package/src/appendFlipped.js +0 -24
  181. package/src/argsPass.js +0 -40
  182. package/src/async.js +0 -60
  183. package/src/cata.js +0 -86
  184. package/src/catchP.js +0 -25
  185. package/src/ceil.js +0 -28
  186. package/src/compact.js +0 -23
  187. package/src/concatAll.js +0 -35
  188. package/src/concatRight.js +0 -30
  189. package/src/copyKeys.js +0 -31
  190. package/src/curryRight.js +0 -26
  191. package/src/curryRightN.js +0 -29
  192. package/src/defaultWhen.js +0 -26
  193. package/src/delayP.js +0 -45
  194. package/src/dispatch.js +0 -74
  195. package/src/divideNum.js +0 -20
  196. package/src/dropArgs.js +0 -23
  197. package/src/ensureArray.js +0 -24
  198. package/src/escapeRegExp.js +0 -22
  199. package/src/fantasy-land/Identity.js +0 -270
  200. package/src/fantasy-land/mapping.js +0 -20
  201. package/src/fantasy-land/traits.js +0 -57
  202. package/src/fantasy-land/util.js +0 -23
  203. package/src/filterIndexed.js +0 -28
  204. package/src/findOr.js +0 -30
  205. package/src/flattenDepth.js +0 -39
  206. package/src/flattenPath.js +0 -28
  207. package/src/flattenProp.js +0 -28
  208. package/src/floor.js +0 -27
  209. package/src/fnull.js +0 -38
  210. package/src/inRange.js +0 -34
  211. package/src/included.js +0 -28
  212. package/src/index.js +0 -241
  213. package/src/internal/ap.js +0 -30
  214. package/src/internal/compareLength.js +0 -7
  215. package/src/internal/isCoercible.js +0 -12
  216. package/src/internal/isOfTypeObject.js +0 -3
  217. package/src/internal/makeFlat.js +0 -42
  218. package/src/internal/ponyfills/Array.from.js +0 -34
  219. package/src/internal/ponyfills/Math.sign.js +0 -3
  220. package/src/internal/ponyfills/Math.trunc.js +0 -14
  221. package/src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +0 -3
  222. package/src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +0 -3
  223. package/src/internal/ponyfills/Number.isFinite.js +0 -8
  224. package/src/internal/ponyfills/Number.isInteger.js +0 -10
  225. package/src/internal/ponyfills/Number.isNaN.js +0 -8
  226. package/src/internal/ponyfills/Number.isSafeInteger.js +0 -11
  227. package/src/internal/ponyfills/Promise.allSettled.js +0 -18
  228. package/src/internal/ponyfills/Promise.any.js +0 -29
  229. package/src/internal/ponyfills/String.padEnd.js +0 -25
  230. package/src/internal/ponyfills/String.padStart.js +0 -27
  231. package/src/internal/ponyfills/String.repeat.js +0 -49
  232. package/src/internal/ponyfills/String.replaceAll.js +0 -44
  233. package/src/internal/ponyfills/String.trimEnd.js +0 -5
  234. package/src/internal/ponyfills/String.trimStart.js +0 -5
  235. package/src/invoke.js +0 -22
  236. package/src/invokeArgs.js +0 -36
  237. package/src/isArray.js +0 -27
  238. package/src/isArrayLike.js +0 -79
  239. package/src/isAsyncFunction.js +0 -23
  240. package/src/isBigInt.js +0 -24
  241. package/src/isBlank.js +0 -33
  242. package/src/isBoolean.js +0 -22
  243. package/src/isDate.js +0 -21
  244. package/src/isEmptyArray.js +0 -28
  245. package/src/isEmptyString.js +0 -28
  246. package/src/isError.js +0 -21
  247. package/src/isEven.js +0 -31
  248. package/src/isFalse.js +0 -31
  249. package/src/isFalsy.js +0 -28
  250. package/src/isFinite.js +0 -37
  251. package/src/isFloat.js +0 -36
  252. package/src/isFunction.js +0 -32
  253. package/src/isGeneratorFunction.js +0 -26
  254. package/src/isIndexed.js +0 -24
  255. package/src/isInteger.js +0 -40
  256. package/src/isInteger32.js +0 -28
  257. package/src/isIterable.js +0 -37
  258. package/src/isMap.js +0 -25
  259. package/src/isNaN.js +0 -45
  260. package/src/isNaturalNumber.js +0 -28
  261. package/src/isNegative.js +0 -27
  262. package/src/isNegativeZero.js +0 -23
  263. package/src/isNilOrEmpty.js +0 -26
  264. package/src/isNonEmptyArray.js +0 -28
  265. package/src/isNonEmptyString.js +0 -31
  266. package/src/isNonNegative.js +0 -30
  267. package/src/isNonPositive.js +0 -30
  268. package/src/isNotArray.js +0 -24
  269. package/src/isNotArrayLike.js +0 -26
  270. package/src/isNotAsyncFunction.js +0 -27
  271. package/src/isNotBoolean.js +0 -24
  272. package/src/isNotDate.js +0 -23
  273. package/src/isNotFinite.js +0 -31
  274. package/src/isNotFloat.js +0 -35
  275. package/src/isNotFunction.js +0 -29
  276. package/src/isNotGeneratorFunction.js +0 -27
  277. package/src/isNotInteger.js +0 -36
  278. package/src/isNotMap.js +0 -27
  279. package/src/isNotNaN.js +0 -37
  280. package/src/isNotNil.js +0 -23
  281. package/src/isNotNilOrEmpty.js +0 -28
  282. package/src/isNotNull.js +0 -24
  283. package/src/isNotNumber.js +0 -25
  284. package/src/isNotObj.js +0 -29
  285. package/src/isNotObjLike.js +0 -29
  286. package/src/isNotPair.js +0 -27
  287. package/src/isNotPlainObj.js +0 -35
  288. package/src/isNotPrimitive.js +0 -26
  289. package/src/isNotRegExp.js +0 -24
  290. package/src/isNotSet.js +0 -26
  291. package/src/isNotString.js +0 -23
  292. package/src/isNotUndefined.js +0 -24
  293. package/src/isNotValidDate.js +0 -24
  294. package/src/isNotValidNumber.js +0 -27
  295. package/src/isNull.js +0 -22
  296. package/src/isNumber.js +0 -24
  297. package/src/isObj.js +0 -31
  298. package/src/isObjLike.js +0 -30
  299. package/src/isOdd.js +0 -29
  300. package/src/isPair.js +0 -27
  301. package/src/isPlainObj.js +0 -65
  302. package/src/isPositive.js +0 -26
  303. package/src/isPositiveZero.js +0 -23
  304. package/src/isPrimitive.js +0 -46
  305. package/src/isPromise.js +0 -32
  306. package/src/isPrototypeOf.js +0 -36
  307. package/src/isRegExp.js +0 -22
  308. package/src/isSafeInteger.js +0 -40
  309. package/src/isSentinelValue.js +0 -26
  310. package/src/isSet.js +0 -24
  311. package/src/isSparseArray.js +0 -43
  312. package/src/isString.js +0 -21
  313. package/src/isSymbol.js +0 -29
  314. package/src/isThenable.js +0 -28
  315. package/src/isTrue.js +0 -27
  316. package/src/isTruthy.js +0 -28
  317. package/src/isUinteger32.js +0 -29
  318. package/src/isUndefined.js +0 -24
  319. package/src/isValidDate.js +0 -29
  320. package/src/isValidNumber.js +0 -28
  321. package/src/lastP.js +0 -54
  322. package/src/lengthEq.js +0 -24
  323. package/src/lengthGt.js +0 -24
  324. package/src/lengthGte.js +0 -26
  325. package/src/lengthLt.js +0 -24
  326. package/src/lengthLte.js +0 -25
  327. package/src/lengthNotEq.js +0 -24
  328. package/src/lensEq.js +0 -28
  329. package/src/lensIso.js +0 -51
  330. package/src/lensNotEq.js +0 -28
  331. package/src/lensNotSatisfy.js +0 -30
  332. package/src/lensSatisfies.js +0 -33
  333. package/src/lensTraverse.js +0 -56
  334. package/src/liftF.js +0 -37
  335. package/src/liftFN.js +0 -45
  336. package/src/list.js +0 -20
  337. package/src/mapIndexed.js +0 -27
  338. package/src/mergePath.js +0 -30
  339. package/src/mergePaths.js +0 -29
  340. package/src/mergeProp.js +0 -30
  341. package/src/mergeProps.js +0 -27
  342. package/src/move.js +0 -26
  343. package/src/nand.js +0 -27
  344. package/src/neither.js +0 -38
  345. package/src/noneP.js +0 -35
  346. package/src/nonePass.js +0 -32
  347. package/src/noop.js +0 -21
  348. package/src/nor.js +0 -28
  349. package/src/notAllPass.js +0 -32
  350. package/src/notAllUnique.js +0 -25
  351. package/src/notBoth.js +0 -38
  352. package/src/notEqual.js +0 -31
  353. package/src/omitBy.js +0 -25
  354. package/src/omitIndexes.js +0 -27
  355. package/src/overlaps.js +0 -30
  356. package/src/padCharsEnd.js +0 -37
  357. package/src/padCharsStart.js +0 -35
  358. package/src/padEnd.js +0 -25
  359. package/src/padStart.js +0 -23
  360. package/src/pathNotEq.js +0 -31
  361. package/src/pathOrLazy.js +0 -30
  362. package/src/paths.js +0 -26
  363. package/src/pickIndexes.js +0 -30
  364. package/src/propNotEq.js +0 -30
  365. package/src/rangeStep.js +0 -37
  366. package/src/reduceIndexed.js +0 -31
  367. package/src/reduceP.js +0 -96
  368. package/src/reduceRightP.js +0 -101
  369. package/src/rejectP.js +0 -24
  370. package/src/renameKey.js +0 -33
  371. package/src/renameKeyWith.js +0 -30
  372. package/src/renameKeys.js +0 -40
  373. package/src/renameKeysWith.js +0 -27
  374. package/src/repeatStr.js +0 -30
  375. package/src/replaceAll.js +0 -35
  376. package/src/resolveP.js +0 -28
  377. package/src/round.js +0 -26
  378. package/src/seq.js +0 -38
  379. package/src/sign.js +0 -33
  380. package/src/skipTake.js +0 -33
  381. package/src/sliceFrom.js +0 -23
  382. package/src/sliceTo.js +0 -23
  383. package/src/sortByPaths.js +0 -55
  384. package/src/sortByProp.js +0 -45
  385. package/src/sortByProps.js +0 -31
  386. package/src/spreadPath.js +0 -26
  387. package/src/spreadProp.js +0 -25
  388. package/src/stubArray.js +0 -18
  389. package/src/stubNull.js +0 -19
  390. package/src/stubObj.js +0 -19
  391. package/src/stubString.js +0 -19
  392. package/src/stubUndefined.js +0 -19
  393. package/src/subtractNum.js +0 -20
  394. package/src/thenCatchP.js +0 -27
  395. package/src/toArray.js +0 -32
  396. package/src/toInteger32.js +0 -22
  397. package/src/toNumber.js +0 -24
  398. package/src/toUinteger32.js +0 -26
  399. package/src/trimCharsEnd.js +0 -25
  400. package/src/trimCharsStart.js +0 -25
  401. package/src/trimEnd.js +0 -30
  402. package/src/trimStart.js +0 -29
  403. package/src/trunc.js +0 -33
  404. package/src/unzipObjWith.js +0 -40
  405. package/src/viewOr.js +0 -32
  406. package/src/weave.js +0 -35
  407. package/src/weaveLazy.js +0 -37
  408. package/src/zipObjWith.js +0 -27
@@ -1,30 +0,0 @@
1
- import { filter, addIndex, curry, includes } from 'ramda';
2
-
3
- // helpers
4
- const filterIndexed = addIndex(filter);
5
- const containsIndex = curry((indexes, val, index) => includes(index, indexes));
6
-
7
- /**
8
- * Picks values from list by indexes.
9
- *
10
- * Note: pickIndexes will skip non existing indexes. If you want to include them
11
- * use ramda's `props` function.
12
- *
13
- * @func pickIndexes
14
- * @memberOf RA
15
- * @since {@link https://char0n.github.io/ramda-adjunct/1.1.0|v1.1.0}
16
- * @category List
17
- * @sig [Number] -> [a] -> [a]
18
- * @param {Array} indexes The indexes to pick
19
- * @param {Array} list The list to pick values from
20
- * @return {Array} New array containing only values at `indexes`
21
- * @see {@link http://ramdajs.com/docs/#pick|R.pick}, {@link RA.omitIndexes|omitIndexes}
22
- * @example
23
- *
24
- * RA.pickIndexes([0, 2], ['a', 'b', 'c']); //=> ['a', 'c']
25
- */
26
- const pickIndexes = curry((indexes, list) =>
27
- filterIndexed(containsIndex(indexes), list)
28
- );
29
-
30
- export default pickIndexes;
package/src/propNotEq.js DELETED
@@ -1,30 +0,0 @@
1
- import { propEq, complement } from 'ramda';
2
-
3
- /**
4
- * Returns true if the specified object property is not equal,
5
- * in R.equals terms, to the given value; false otherwise.
6
- *
7
- * @func propNotEq
8
- * @memberOf RA
9
- * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}
10
- * @category Relation
11
- * @sig a -> String -> Object -> Boolean
12
- * @param {a} val The value to compare to
13
- * @param {String} name The property to pick
14
- * @param {Object} object The object, that presumably contains value under the property
15
- * @return {boolean} Comparison result
16
- * @see {@link http://ramdajs.com/docs/#propEq|R.propEq}
17
- * @example
18
- *
19
- * const abby = { name: 'Abby', age: 7, hair: 'blond' };
20
- * const fred = { name: 'Fred', age: 12, hair: 'brown' };
21
- * const rusty = { name: 'Rusty', age: 10, hair: 'brown' };
22
- * const alois = { name: 'Alois', age: 15, disposition: 'surly' };
23
- * const kids = [abby, fred, rusty, alois];
24
- * const hasNotBrownHair = RA.propNotEq('brown', 'hair');
25
- *
26
- * R.filter(hasNotBrownHair, kids); //=> [abby, alois]
27
- */
28
- const propNotEq = complement(propEq);
29
-
30
- export default propNotEq;
package/src/rangeStep.js DELETED
@@ -1,37 +0,0 @@
1
- import { curryN, map, range, always } from 'ramda';
2
-
3
- import floor from './floor.js';
4
-
5
- /**
6
- * Creates an array of numbers (positive and/or negative) progressing from start up to, but not including, end.
7
- *
8
- * `Note`: JavaScript follows the IEEE-754 standard for resolving floating-point values which can produce unexpected results.
9
- *
10
- * @func rangeStep
11
- * @memberOf RA
12
- * @category List
13
- * @since {@link https://char0n.github.io/ramda-adjunct/2.30.0|v2.30.0}
14
- * @sig Number -> Number -> Number -> [Number]
15
- * @param {number} step The value to increment or decrement by
16
- * @param {number} from The start of the range
17
- * @param {number} to The end of the range
18
- * @return {number[]} Returns the range of numbers
19
- * @see {@link http://ramdajs.com/docs/#range|R.range}
20
- * @example
21
- *
22
- * RA.rangeStep(1, 0, 4); // => [0, 1 ,2, 3]
23
- * RA.rangeStep(-1, 0, -4); // => [0, -1, -2, -3]
24
- * RA.rangeStep(1, 1, 5); // => [1, 2, 3, 4]
25
- * RA.rangeStep(5, 0, 20); // => [0, 5, 10, 15]
26
- * RA.rangeStep(-1, 0, -4); // => [0, -1, -2, -3]
27
- * RA.rangeStep(0, 1, 4); // => [1, 1, 1]
28
- * RA.rangeStep(1, 0, 0); // => []
29
- */
30
- const rangeStep = curryN(3, (step, from, to) => {
31
- const callback = step === 0 ? always(from) : (n) => from + step * n;
32
- const rangeEnd = step === 0 ? to - from : floor((to - from) / step);
33
-
34
- return map(callback, range(0, rangeEnd));
35
- });
36
-
37
- export default rangeStep;
@@ -1,31 +0,0 @@
1
- import { addIndex, reduce } from 'ramda';
2
-
3
- /**
4
- * {@link http://ramdajs.com/docs/#reduce|R.reduce} function that more closely resembles Array.prototype.reduce.
5
- * It takes two new parameters to its callback function: the current index, and the entire list.
6
- *
7
- * `reduceIndexed` implementation is simple : `
8
- * const reduceIndexed = R.addIndex(R.reduce);
9
- * `
10
- * @func reduceIndexed
11
- * @memberOf RA
12
- * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}
13
- * @category List
14
- * @typedef Idx = Number
15
- * @sig ((a, b, Idx, [b]) => a) -> a -> [b] -> a
16
- * @param {Function} fn The iterator function. Receives four values,
17
- * the accumulator, the current element from the array, index and the entire list
18
- * @param {*} acc The accumulator value
19
- * @param {Array} list The list to iterate over
20
- * @return {*} The final, accumulated value
21
- * @see {@link http://ramdajs.com/docs/#addIndex|R.addIndex}, {@link http://ramdajs.com/docs/#reduce|R.reduce}
22
- * @example
23
- *
24
- * const initialList = ['f', 'o', 'o', 'b', 'a', 'r'];
25
- *
26
- * reduceIndexed((acc, val, idx, list) => acc + '-' + val + idx, '', initialList);
27
- * //=> "-f0-o1-o2-b3-a4-r5"
28
- */
29
- const reduceIndexed = addIndex(reduce);
30
-
31
- export default reduceIndexed;
package/src/reduceP.js DELETED
@@ -1,96 +0,0 @@
1
- import { curryN, reduce, length } from 'ramda';
2
-
3
- import isUndefined from './isUndefined.js';
4
- import resolveP from './resolveP.js';
5
- import allP from './allP.js';
6
-
7
- /* eslint-disable max-len */
8
- /**
9
- * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,
10
- * which produces promises (or a mix of promises and values),
11
- * iterate over all the values in the `Iterable` into an array and
12
- * reduce the array to a value using the given iterator function.
13
- *
14
- * If the iterator function returns a promise, then the result of the promise is awaited,
15
- * before continuing with next iteration. If any promise in the array is rejected or a promise
16
- * returned by the iterator function is rejected, the result is rejected as well.
17
- *
18
- * If `initialValue` is `undefined` (or a promise that resolves to `undefined`) and
19
- * the `Iterable` contains only 1 item, the callback will not be called and
20
- * the `Iterable's` single item is returned. If the `Iterable` is empty, the callback
21
- * will not be called and `initialValue` is returned (which may be undefined).
22
- *
23
- * This function is basically equivalent to {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}.
24
- *
25
- * @func reduceP
26
- * @memberOf RA
27
- * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}
28
- * @category List
29
- * @typedef MaybePromise = Promise.<*> | *
30
- * @sig ((Promise a, MaybePromise b) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a
31
- * @param {Function} fn The iterator function. Receives two values, the accumulator and the current element from the list
32
- * @param {*|Promise.<*>} acc The accumulator value
33
- * @param {Array.<*>|Promise.<Array<*|Promise.<*>>>} list The list to iterate over
34
- * @return {Promise} The final, accumulated value
35
- * @see {@link http://ramdajs.com/docs/#reduce|R.reduce}, {@link RA.reduceRightP|reduceRightP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}
36
- * @example
37
- *
38
- * RA.reduceP(
39
- * (total, fileName) => fs
40
- * .readFileAsync(fileName, 'utf8')
41
- * .then(contents => total + parseInt(contents, 10)),
42
- * 0,
43
- * ['file1.txt', 'file2.txt', 'file3.txt']
44
- * ); // => Promise(10)
45
- *
46
- * RA.reduceP(
47
- * (total, fileName) => fs
48
- * .readFileAsync(fileName, 'utf8')
49
- * .then(contents => total + parseInt(contents, 10)),
50
- * Promise.resolve(0),
51
- * ['file1.txt', 'file2.txt', 'file3.txt']
52
- * ); // => Promise(10)
53
- *
54
- * RA.reduceP(
55
- * (total, fileName) => fs
56
- * .readFileAsync(fileName, 'utf8')
57
- * .then(contents => total + parseInt(contents, 10)),
58
- * 0,
59
- * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']
60
- * ); // => Promise(10)
61
- *
62
- * RA.reduceP(
63
- * (total, fileName) => fs
64
- * .readFileAsync(fileName, 'utf8')
65
- * .then(contents => total + parseInt(contents, 10)),
66
- * 0,
67
- * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])
68
- * ); // => Promise(10)
69
- *
70
- */
71
- /* esline-enable max-len */
72
- const reduceP = curryN(3, (fn, acc, list) =>
73
- resolveP(list).then((iterable) => {
74
- const listLength = length(iterable);
75
-
76
- if (listLength === 0) {
77
- return acc;
78
- }
79
-
80
- const reducer = reduce((accP, currentValueP) =>
81
- accP
82
- .then((previousValue) => allP([previousValue, currentValueP]))
83
- .then(([previousValue, currentValue]) => {
84
- if (isUndefined(previousValue) && listLength === 1) {
85
- return currentValue;
86
- }
87
-
88
- return fn(previousValue, currentValue);
89
- })
90
- );
91
-
92
- return reducer(resolveP(acc), iterable);
93
- })
94
- );
95
-
96
- export default reduceP;
@@ -1,101 +0,0 @@
1
- import { curryN, pipe, equals, reduceRight, length, concat } from 'ramda';
2
-
3
- import isUndefined from './isUndefined.js';
4
- import resolveP from './resolveP.js';
5
- import allP from './allP.js';
6
-
7
- // in older ramda versions the order of the arguments is flipped
8
- const flipArgs = pipe(reduceRight(concat, ''), equals('ba'))(['a', 'b']);
9
-
10
- /* eslint-disable max-len */
11
- /**
12
- * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,
13
- * which produces promises (or a mix of promises and values),
14
- * iterate over all the values in the `Iterable` into an array and
15
- * reduce the array to a value using the given iterator function.
16
- *
17
- * Similar to {@link RA.reduceP|reduceP} except moves through the input list from the right to the left.
18
- * The iterator function receives two values: (value, acc),
19
- * while the arguments' order of reduceP's iterator function is (acc, value).
20
- *
21
- * @func reduceRightP
22
- * @memberOf RA
23
- * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}
24
- * @category List
25
- * @typedef MaybePromise = Promise.<*> | *
26
- * @sig ((MaybePromise b, Promise a) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a
27
- * @param {Function} fn The iterator function. Receives two values, the current element from the list and the accumulator
28
- * @param {*|Promise.<*>} acc The accumulator value
29
- * @param {Array.<*>|Promise.<Array<*|Promise.<*>>>} list The list to iterate over
30
- * @return {Promise} The final, accumulated value
31
- * @see {@link RA.reduceP|reduceP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}
32
- * @example
33
- *
34
- * RA.reduceRightP(
35
- * (fileName, total) => fs
36
- * .readFileAsync(fileName, 'utf8')
37
- * .then(contents => total + parseInt(contents, 10)),
38
- * 0,
39
- * ['file1.txt', 'file2.txt', 'file3.txt']
40
- * ); // => Promise(10)
41
- *
42
- * RA.reduceRightP(
43
- * (fileName, total) => fs
44
- * .readFileAsync(fileName, 'utf8')
45
- * .then(contents => total + parseInt(contents, 10)),
46
- * Promise.resolve(0),
47
- * ['file1.txt', 'file2.txt', 'file3.txt']
48
- * ); // => Promise(10)
49
- *
50
- * RA.reduceRightP(
51
- * (fileName, total) => fs
52
- * .readFileAsync(fileName, 'utf8')
53
- * .then(contents => total + parseInt(contents, 10)),
54
- * 0,
55
- * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']
56
- * ); // => Promise(10)
57
- *
58
- * RA.reduceRightP(
59
- * (fileName, total) => fs
60
- * .readFileAsync(fileName, 'utf8')
61
- * .then(contents => total + parseInt(contents, 10)),
62
- * 0,
63
- * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])
64
- * ); // => Promise(10)
65
- *
66
- */
67
- /* esline-enable max-len */
68
- const reduceRightP = curryN(3, (fn, acc, list) =>
69
- resolveP(list).then((iterable) => {
70
- const listLength = length(iterable);
71
-
72
- if (listLength === 0) {
73
- return acc;
74
- }
75
-
76
- const reducer = reduceRight((arg1, arg2) => {
77
- let accP;
78
- let currentValueP;
79
-
80
- if (flipArgs) {
81
- [accP, currentValueP] = [arg1, arg2];
82
- } else {
83
- [accP, currentValueP] = [arg2, arg1];
84
- }
85
-
86
- return accP
87
- .then((previousValue) => allP([previousValue, currentValueP]))
88
- .then(([previousValue, currentValue]) => {
89
- if (isUndefined(previousValue) && listLength === 1) {
90
- return currentValue;
91
- }
92
-
93
- return fn(currentValue, previousValue);
94
- });
95
- });
96
-
97
- return reducer(resolveP(acc), iterable);
98
- })
99
- );
100
-
101
- export default reduceRightP;
package/src/rejectP.js DELETED
@@ -1,24 +0,0 @@
1
- import { bind } from 'ramda';
2
-
3
- /**
4
- * Composable shortcut for `Promise.reject`.
5
- *
6
- * Returns a Promise object that is rejected with the given reason.
7
- *
8
- * @func rejectP
9
- * @memberOf RA
10
- * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}
11
- * @category Function
12
- * @sig a -> Promise a
13
- * @param {*} [reason=undefined] Reason why this Promise rejected
14
- * @return {Promise} A Promise that is rejected with the given reason
15
- * @see {@link RA.resolveP|resolveP}
16
- * @example
17
- *
18
- * RA.rejectP(); //=> Promise(undefined)
19
- * RA.rejectP('a'); //=> Promise('a')
20
- * RA.rejectP([1, 2, 3]); //=> Promise([1, 2, 3])
21
- */
22
- const rejectP = bind(Promise.reject, Promise);
23
-
24
- export default rejectP;
package/src/renameKey.js DELETED
@@ -1,33 +0,0 @@
1
- import { curry } from 'ramda';
2
-
3
- import renameKeys from './renameKeys.js';
4
-
5
- /**
6
- * Creates a new object with the own properties of the provided object, but a
7
- * single key is renamed from `oldKey` to `newKey`.
8
- *
9
- * Keep in mind that in the case of keys conflict is behavior undefined and
10
- * the result may vary between various JS engines!
11
- *
12
- * @func renameKey
13
- * @memberOf RA
14
- * @since {@link https://char0n.github.io/ramda-adjunct/4.1.0|v4.1.0}
15
- * @category Object
16
- * @sig (String a, String b) => a -> b -> {a: *} -> {b: *}
17
- * @param {!string} oldKey
18
- * @param {!string} newKey
19
- * @param {!Object} obj
20
- * @return {!Object} New object with renamed key
21
- * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-key-of-an-object|Ramda Cookbook}, {@link RA.renameKeyWith|renameKeyWith}
22
- * @example
23
- *
24
- * const input = { firstName: 'Elisia', age: 22, type: 'human' };
25
- *
26
- * RA.renameKey('firstName', 'name')(input);
27
- * //=> { name: 'Elisia', age: 22, type: 'human' }
28
- */
29
- const renameKey = curry((oldKey, newKey, obj) =>
30
- renameKeys({ [oldKey]: newKey }, obj)
31
- );
32
-
33
- export default renameKey;
@@ -1,30 +0,0 @@
1
- import { curry, equals, when } from 'ramda';
2
-
3
- import renameKeysWith from './renameKeysWith.js';
4
-
5
- /**
6
- * Creates a new object with the own properties of the provided object, but the
7
- * key `key` renamed according to logic of renaming function.
8
- *
9
- * Keep in mind that in case the new key name already existed on the object,
10
- * the behaviour is undefined and the result may vary between various JS engines!
11
- *
12
- * @func renameKeyWith
13
- * @memberOf RA
14
- * @since {@link https://char0n.github.io/ramda-adjunct/2.29.0|v2.29.0}
15
- * @category Object
16
- * @sig (k -> k) -> k -> {k: v} -> {k: v}
17
- * @param {Function} fn Function that renames the keys
18
- * @param {!string} key Key to rename
19
- * @param {!Object} obj Provided object
20
- * @return {!Object} New object with renamed key
21
- * @see {@link RA.renameKeysWith|renameKeysWith}
22
- * @example
23
- *
24
- * RA.renameKeyWith(R.concat('a'), 'A', { A: 1 }) //=> { aA: 1 }
25
- */
26
- const renameKeyWith = curry((fn, key, obj) =>
27
- renameKeysWith(when(equals(key), fn), obj)
28
- );
29
-
30
- export default renameKeyWith;
package/src/renameKeys.js DELETED
@@ -1,40 +0,0 @@
1
- import { curry, has } from 'ramda';
2
-
3
- import renameKeysWith from './renameKeysWith.js';
4
-
5
- const valueOrKey = (keysMap) => (key) => {
6
- if (has(key, keysMap)) {
7
- return keysMap[key];
8
- }
9
- return key;
10
- };
11
-
12
- /**
13
- * Creates a new object with the own properties of the provided object, but the
14
- * keys renamed according to the keysMap object as `{oldKey: newKey}`.
15
- * When some key is not found in the keysMap, then it's passed as-is.
16
- *
17
- * Keep in mind that in the case of keys conflict is behaviour undefined and
18
- * the result may vary between various JS engines!
19
- *
20
- * @func renameKeys
21
- * @memberOf RA
22
- * @since {@link https://char0n.github.io/ramda-adjunct/1.5.0|v1.5.0}
23
- * @category Object
24
- * @sig {a: b} -> {a: *} -> {b: *}
25
- * @param {!Object} keysMap
26
- * @param {!Object} obj
27
- * @return {!Object} New object with renamed keys
28
- * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object|Ramda Cookbook}, {@link RA.renameKeysWith|renameKeysWith}
29
- * @example
30
- *
31
- * const input = { firstName: 'Elisia', age: 22, type: 'human' };
32
- *
33
- * RA.renameKeys({ firstName: 'name', type: 'kind', foo: 'bar' })(input);
34
- * //=> { name: 'Elisia', age: 22, kind: 'human' }
35
- */
36
- const renameKeys = curry((keysMap, obj) =>
37
- renameKeysWith(valueOrKey(keysMap), obj)
38
- );
39
-
40
- export default renameKeys;
@@ -1,27 +0,0 @@
1
- import { curry, toPairs, pipe, map, over, lensIndex, fromPairs } from 'ramda';
2
-
3
- /**
4
- * Creates a new object with the own properties of the provided object, but the
5
- * keys renamed according to logic of renaming function.
6
- *
7
- * Keep in mind that in the case of keys conflict is behaviour undefined and
8
- * the result may vary between various JS engines!
9
- *
10
- * @func renameKeysWith
11
- * @memberOf RA
12
- * @since {@link https://char0n.github.io/ramda-adjunct/1.5.0|v1.5.0}
13
- * @category Object
14
- * @sig (a -> b) -> {a: *} -> {b: *}
15
- * @param {Function} fn Function that renames the keys
16
- * @param {!Object} obj Provided object
17
- * @return {!Object} New object with renamed keys
18
- * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object-by-a-function|Ramda Cookbook}, {@link RA.renameKeys|renameKeys}
19
- * @example
20
- *
21
- * RA.renameKeysWith(R.concat('a'), { A: 1, B: 2, C: 3 }) //=> { aA: 1, aB: 2, aC: 3 }
22
- */
23
- const renameKeysWith = curry((fn, obj) =>
24
- pipe(toPairs, map(over(lensIndex(0), fn)), fromPairs)(obj)
25
- );
26
-
27
- export default renameKeysWith;
package/src/repeatStr.js DELETED
@@ -1,30 +0,0 @@
1
- import { curry, invoker, flip } from 'ramda';
2
-
3
- import ponyfill from './internal/ponyfills/String.repeat.js';
4
- import isFunction from './isFunction.js';
5
-
6
- export const repeatStrPonyfill = curry(ponyfill);
7
-
8
- export const repeatStrInvoker = flip(invoker(1, 'repeat'));
9
-
10
- /**
11
- * Constructs and returns a new string which contains the specified
12
- * number of copies of the string on which it was called, concatenated together.
13
- *
14
- * @func repeatStr
15
- * @memberOf RA
16
- * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}
17
- * @category List
18
- * @sig String -> Number -> String
19
- * @param {string} value String value to be repeated
20
- * @param {number} count An integer between 0 and +∞: [0, +∞), indicating the number of times to repeat the string in the newly-created string that is to be returned
21
- * @return {string} A new string containing the specified number of copies of the given string
22
- * @example
23
- *
24
- * RA.repeatStr('a', 3); //=> 'aaa'
25
- */
26
- const repeatStr = isFunction(String.prototype.repeat)
27
- ? repeatStrInvoker
28
- : repeatStrPonyfill;
29
-
30
- export default repeatStr;
package/src/replaceAll.js DELETED
@@ -1,35 +0,0 @@
1
- import { curryN, invoker } from 'ramda';
2
-
3
- import isFunction from './isFunction.js';
4
- import ponyfill from './internal/ponyfills/String.replaceAll.js';
5
-
6
- export const replaceAllPonyfill = curryN(3, ponyfill);
7
-
8
- export const replaceAllInvoker = invoker(2, 'replaceAll');
9
-
10
- /**
11
- * Replaces all substring matches in a string with a replacement.
12
- *
13
- * @func replaceAll
14
- * @memberOf RA
15
- * @since {@link https://char0n.github.io/ramda-adjunct/2.17.0|v2.17.0}
16
- * @category String
17
- * @sig String -> String -> String -> String
18
- * @param {string} searchValue The substring or a global RegExp to match
19
- * @param {string} replaceValue The string to replace the matches with
20
- * @param {string} str The String to do the search and replacement in
21
- * @return {string} A new string containing all the `searchValue` replaced with the `replaceValue`
22
- * @throws {TypeError} When invalid arguments provided
23
- * @see {@link http://ramdajs.com/docs/#replace|R.replace}, {@link https://github.com/tc39/proposal-string-replaceall|TC39 proposal}
24
- * @example
25
- *
26
- * RA.replaceAll('ac', 'ef', 'ac ab ac ab'); //=> 'ef ab ef ab'
27
- * RA.replaceAll('', '_', 'xxx'); //=> '_x_x_x_'
28
- * RA.replaceAll(/x/g, 'v', 'xxx'); //=> 'vvv'
29
- * RA.replaceAll(/x/, 'v', 'xxx'); //=> TypeError
30
- */
31
- const replaceAll = isFunction(String.prototype.replaceAll)
32
- ? replaceAllInvoker
33
- : replaceAllPonyfill;
34
-
35
- export default replaceAll;
package/src/resolveP.js DELETED
@@ -1,28 +0,0 @@
1
- import { bind } from 'ramda';
2
-
3
- /* eslint-disable max-len */
4
- /**
5
- * Composable shortcut for `Promise.resolve`.
6
- *
7
- * Returns a Promise object that is resolved with the given value.
8
- * If the value is a thenable (i.e. has a "then" method), the returned promise will
9
- * "follow" that thenable, adopting its eventual state.
10
- *
11
- * @func resolveP
12
- * @memberOf RA
13
- * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}
14
- * @category Function
15
- * @sig a -> Promise a
16
- * @param {*} [value=undefined] Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve
17
- * @return {Promise} A Promise that is resolved with the given value, or the promise passed as value, if the value was a promise object
18
- * @see {@link RA.rejectP|rejectP}
19
- * @example
20
- *
21
- * RA.resolveP(); //=> Promise(undefined)
22
- * RA.resolveP('a'); //=> Promise('a')
23
- * RA.resolveP([1, 2, 3]); //=> Promise([1, 2, 3])
24
- */
25
- /* eslint-enable max-len */
26
- const resolveP = bind(Promise.resolve, Promise);
27
-
28
- export default resolveP;
package/src/round.js DELETED
@@ -1,26 +0,0 @@
1
- import { bind, curryN } from 'ramda';
2
-
3
- /**
4
- * Returns the value of a number rounded to the nearest integer.
5
- *
6
- * @func round
7
- * @memberOf RA
8
- * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}
9
- * @category Math
10
- * @sig Number -> Number
11
- * @param {number} number The number to round
12
- * @return {number} The value of the given number rounded to the nearest integer
13
- * @example
14
- *
15
- * RA.round(0.9); //=> 1
16
- * RA.round(5.95); //=> 6
17
- * RA.round(5.5); //=> 6
18
- * RA.round(5.05); //=> 5
19
- * RA.round(-5.05); //=> -5
20
- * RA.round(-5.5); //=> -5
21
- * RA.round(-5.95); //=> -6
22
- */
23
-
24
- const round = curryN(1, bind(Math.round, Math));
25
-
26
- export default round;
package/src/seq.js DELETED
@@ -1,38 +0,0 @@
1
- import { curry, map, tap } from 'ramda';
2
-
3
- /* eslint-disable max-len */
4
- /**
5
- * Runs the given list of functions in order with the supplied object, then returns the object.
6
- * Also known as the normal order sequencing combinator.
7
- *
8
- * Acts as a transducer if a transformer is given as second parameter.
9
- *
10
- * @func seq
11
- * @aliases sequencing
12
- * @memberOf RA
13
- * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}
14
- * @category Function
15
- * @sig [(a -> *), (a -> *), ...] -> a -> a
16
- * @param {Array} fns The list of functions to call in order with `x` whose return values will be thrown away
17
- * @param {*} x
18
- * @return {*} `x`
19
- * @see {@link http://ramdajs.com/docs/#tap|R.tap}, {@link http://www.cs.rpi.edu/academics/courses/spring11/proglang/handouts/lambda-calculus-chapter.pdf|sequencing combinator explained}
20
- * @example
21
- *
22
- * RA.seq([console.info, console.log])('foo'); //=> prints 'foo' via info then log
23
- *
24
- * // usage in composition
25
- * R.pipe(
26
- * R.concat('prefix '),
27
- * RA.seq([
28
- * console.info, //=> prints 'prefix test'
29
- * console.log //=> prints 'prefix test'
30
- * ]),
31
- * R.toUpper
32
- * )('test'); //=> 'PREFIX TEST'
33
- */
34
- /* eslint-enable max-len */
35
-
36
- const seq = curry((fns, x) => tap((tx) => map((fn) => fn(tx))(fns))(x));
37
-
38
- export default seq;