ramda-adjunct 5.0.0 → 5.0.1

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 (406) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -1
  3. package/dist/RA.node.js +10444 -452
  4. package/dist/RA.node.min.js +1 -1
  5. package/dist/RA.web.js +10444 -452
  6. package/dist/RA.web.min.js +1 -1
  7. package/dist/RA.web.standalone.js +18665 -447
  8. package/dist/RA.web.standalone.min.js +1 -1
  9. package/dist/package.json +1 -0
  10. package/es/copyKeys.js +1 -1
  11. package/es/dispatch.js +5 -5
  12. package/es/fantasy-land/Identity.js +3 -3
  13. package/es/fantasy-land/traits.js +1 -1
  14. package/es/flattenDepth.js +5 -5
  15. package/es/internal/ponyfills/Array.from.js +5 -5
  16. package/es/internal/ponyfills/Promise.allSettled.js +5 -5
  17. package/es/internal/ponyfills/Promise.any.js +15 -15
  18. package/es/lastP.js +5 -5
  19. package/es/reduceP.js +4 -4
  20. package/es/reduceRightP.js +4 -4
  21. package/es/renameKey.js +1 -1
  22. package/es/sortByProps.js +5 -5
  23. package/lib/allEqual.js +1 -1
  24. package/lib/allIdentical.js +1 -1
  25. package/lib/allSettledP.js +1 -1
  26. package/lib/allUnique.js +1 -1
  27. package/lib/anyP.js +1 -1
  28. package/lib/argsPass.js +1 -1
  29. package/lib/async.js +1 -1
  30. package/lib/cata.js +1 -1
  31. package/lib/compact.js +1 -1
  32. package/lib/concatAll.js +1 -1
  33. package/lib/copyKeys.js +2 -2
  34. package/lib/curryRight.js +1 -1
  35. package/lib/delayP.js +1 -1
  36. package/lib/dispatch.js +6 -6
  37. package/lib/ensureArray.js +1 -1
  38. package/lib/escapeRegExp.js +1 -1
  39. package/lib/fantasy-land/Identity.js +3 -3
  40. package/lib/fantasy-land/traits.js +2 -2
  41. package/lib/flattenDepth.js +6 -6
  42. package/lib/flattenProp.js +1 -1
  43. package/lib/fnull.js +1 -1
  44. package/lib/index.js +1 -1
  45. package/lib/internal/ap.js +1 -1
  46. package/lib/internal/isCoercible.js +1 -1
  47. package/lib/internal/makeFlat.js +1 -1
  48. package/lib/internal/ponyfills/Array.from.js +6 -6
  49. package/lib/internal/ponyfills/Math.trunc.js +1 -1
  50. package/lib/internal/ponyfills/Number.isFinite.js +1 -1
  51. package/lib/internal/ponyfills/Number.isInteger.js +1 -1
  52. package/lib/internal/ponyfills/Number.isNaN.js +1 -1
  53. package/lib/internal/ponyfills/Number.isSafeInteger.js +1 -1
  54. package/lib/internal/ponyfills/Promise.allSettled.js +6 -6
  55. package/lib/internal/ponyfills/Promise.any.js +16 -16
  56. package/lib/internal/ponyfills/String.padEnd.js +1 -1
  57. package/lib/internal/ponyfills/String.padStart.js +1 -1
  58. package/lib/internal/ponyfills/String.repeat.js +1 -1
  59. package/lib/internal/ponyfills/String.replaceAll.js +1 -1
  60. package/lib/invoke.js +1 -1
  61. package/lib/invokeArgs.js +1 -1
  62. package/lib/isArray.js +1 -1
  63. package/lib/isArrayLike.js +1 -1
  64. package/lib/isBlank.js +1 -1
  65. package/lib/isEmptyArray.js +1 -1
  66. package/lib/isEven.js +1 -1
  67. package/lib/isFalsy.js +1 -1
  68. package/lib/isFinite.js +1 -1
  69. package/lib/isFloat.js +1 -1
  70. package/lib/isFunction.js +1 -1
  71. package/lib/isIndexed.js +1 -1
  72. package/lib/isInteger.js +1 -1
  73. package/lib/isInteger32.js +1 -1
  74. package/lib/isIterable.js +1 -1
  75. package/lib/isNaN.js +1 -1
  76. package/lib/isNaturalNumber.js +1 -1
  77. package/lib/isNegative.js +1 -1
  78. package/lib/isNonEmptyArray.js +1 -1
  79. package/lib/isNonEmptyString.js +1 -1
  80. package/lib/isNonNegative.js +1 -1
  81. package/lib/isNonPositive.js +1 -1
  82. package/lib/isNotArray.js +1 -1
  83. package/lib/isNotArrayLike.js +1 -1
  84. package/lib/isNotAsyncFunction.js +1 -1
  85. package/lib/isNotBoolean.js +1 -1
  86. package/lib/isNotDate.js +1 -1
  87. package/lib/isNotFinite.js +1 -1
  88. package/lib/isNotFloat.js +1 -1
  89. package/lib/isNotFunction.js +1 -1
  90. package/lib/isNotGeneratorFunction.js +1 -1
  91. package/lib/isNotInteger.js +1 -1
  92. package/lib/isNotMap.js +1 -1
  93. package/lib/isNotNaN.js +1 -1
  94. package/lib/isNotNilOrEmpty.js +1 -1
  95. package/lib/isNotNull.js +1 -1
  96. package/lib/isNotNumber.js +1 -1
  97. package/lib/isNotObj.js +1 -1
  98. package/lib/isNotObjLike.js +1 -1
  99. package/lib/isNotPair.js +1 -1
  100. package/lib/isNotPlainObj.js +1 -1
  101. package/lib/isNotPrimitive.js +1 -1
  102. package/lib/isNotRegExp.js +1 -1
  103. package/lib/isNotSet.js +1 -1
  104. package/lib/isNotString.js +1 -1
  105. package/lib/isNotUndefined.js +1 -1
  106. package/lib/isNotValidDate.js +1 -1
  107. package/lib/isNotValidNumber.js +1 -1
  108. package/lib/isObj.js +1 -1
  109. package/lib/isObjLike.js +1 -1
  110. package/lib/isOdd.js +1 -1
  111. package/lib/isPair.js +1 -1
  112. package/lib/isPlainObj.js +1 -1
  113. package/lib/isPositive.js +1 -1
  114. package/lib/isPrimitive.js +1 -1
  115. package/lib/isPromise.js +1 -1
  116. package/lib/isPrototypeOf.js +1 -1
  117. package/lib/isSafeInteger.js +1 -1
  118. package/lib/isSentinelValue.js +1 -1
  119. package/lib/isSparseArray.js +1 -1
  120. package/lib/isThenable.js +1 -1
  121. package/lib/isUinteger32.js +1 -1
  122. package/lib/isUndefined.js +1 -1
  123. package/lib/isValidDate.js +1 -1
  124. package/lib/isValidNumber.js +1 -1
  125. package/lib/lastP.js +6 -6
  126. package/lib/lengthEq.js +1 -1
  127. package/lib/lengthGt.js +1 -1
  128. package/lib/lengthGte.js +1 -1
  129. package/lib/lengthLt.js +1 -1
  130. package/lib/lengthLte.js +1 -1
  131. package/lib/lengthNotEq.js +1 -1
  132. package/lib/lensNotEq.js +1 -1
  133. package/lib/lensNotSatisfy.js +1 -1
  134. package/lib/lensSatisfies.js +1 -1
  135. package/lib/lensTraverse.js +1 -1
  136. package/lib/liftF.js +1 -1
  137. package/lib/liftFN.js +1 -1
  138. package/lib/mergePaths.js +1 -1
  139. package/lib/mergeProp.js +1 -1
  140. package/lib/noneP.js +1 -1
  141. package/lib/noop.js +1 -1
  142. package/lib/notAllUnique.js +1 -1
  143. package/lib/padCharsEnd.js +1 -1
  144. package/lib/padCharsStart.js +1 -1
  145. package/lib/padEnd.js +1 -1
  146. package/lib/padStart.js +1 -1
  147. package/lib/rangeStep.js +1 -1
  148. package/lib/reduceP.js +5 -5
  149. package/lib/reduceRightP.js +5 -5
  150. package/lib/renameKey.js +2 -2
  151. package/lib/renameKeyWith.js +1 -1
  152. package/lib/renameKeys.js +1 -1
  153. package/lib/repeatStr.js +1 -1
  154. package/lib/replaceAll.js +1 -1
  155. package/lib/sign.js +1 -1
  156. package/lib/sortByProp.js +1 -1
  157. package/lib/sortByProps.js +5 -5
  158. package/lib/spreadProp.js +1 -1
  159. package/lib/toArray.js +1 -1
  160. package/lib/toNumber.js +1 -1
  161. package/lib/trimCharsEnd.js +1 -1
  162. package/lib/trimCharsStart.js +1 -1
  163. package/lib/trimEnd.js +1 -1
  164. package/lib/trimStart.js +1 -1
  165. package/lib/trunc.js +1 -1
  166. package/lib/unzipObjWith.js +1 -1
  167. package/package.json +22 -19
  168. package/babel.config.cjs +0 -56
  169. package/src/Y.js +0 -32
  170. package/src/allEqual.js +0 -28
  171. package/src/allEqualTo.js +0 -25
  172. package/src/allIdentical.js +0 -26
  173. package/src/allIdenticalTo.js +0 -25
  174. package/src/allP.js +0 -27
  175. package/src/allSettledP.js +0 -34
  176. package/src/allUnique.js +0 -25
  177. package/src/anyP.js +0 -33
  178. package/src/appendFlipped.js +0 -24
  179. package/src/argsPass.js +0 -40
  180. package/src/async.js +0 -60
  181. package/src/cata.js +0 -86
  182. package/src/catchP.js +0 -25
  183. package/src/ceil.js +0 -28
  184. package/src/compact.js +0 -23
  185. package/src/concatAll.js +0 -35
  186. package/src/concatRight.js +0 -30
  187. package/src/copyKeys.js +0 -31
  188. package/src/curryRight.js +0 -26
  189. package/src/curryRightN.js +0 -29
  190. package/src/defaultWhen.js +0 -26
  191. package/src/delayP.js +0 -45
  192. package/src/dispatch.js +0 -74
  193. package/src/divideNum.js +0 -20
  194. package/src/dropArgs.js +0 -23
  195. package/src/ensureArray.js +0 -24
  196. package/src/escapeRegExp.js +0 -22
  197. package/src/fantasy-land/Identity.js +0 -270
  198. package/src/fantasy-land/mapping.js +0 -20
  199. package/src/fantasy-land/traits.js +0 -57
  200. package/src/fantasy-land/util.js +0 -23
  201. package/src/filterIndexed.js +0 -28
  202. package/src/findOr.js +0 -30
  203. package/src/flattenDepth.js +0 -39
  204. package/src/flattenPath.js +0 -28
  205. package/src/flattenProp.js +0 -28
  206. package/src/floor.js +0 -27
  207. package/src/fnull.js +0 -38
  208. package/src/inRange.js +0 -34
  209. package/src/included.js +0 -28
  210. package/src/index.js +0 -241
  211. package/src/internal/ap.js +0 -30
  212. package/src/internal/compareLength.js +0 -7
  213. package/src/internal/isCoercible.js +0 -12
  214. package/src/internal/isOfTypeObject.js +0 -3
  215. package/src/internal/makeFlat.js +0 -42
  216. package/src/internal/ponyfills/Array.from.js +0 -34
  217. package/src/internal/ponyfills/Math.sign.js +0 -3
  218. package/src/internal/ponyfills/Math.trunc.js +0 -14
  219. package/src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +0 -3
  220. package/src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +0 -3
  221. package/src/internal/ponyfills/Number.isFinite.js +0 -8
  222. package/src/internal/ponyfills/Number.isInteger.js +0 -10
  223. package/src/internal/ponyfills/Number.isNaN.js +0 -8
  224. package/src/internal/ponyfills/Number.isSafeInteger.js +0 -11
  225. package/src/internal/ponyfills/Promise.allSettled.js +0 -18
  226. package/src/internal/ponyfills/Promise.any.js +0 -29
  227. package/src/internal/ponyfills/String.padEnd.js +0 -25
  228. package/src/internal/ponyfills/String.padStart.js +0 -27
  229. package/src/internal/ponyfills/String.repeat.js +0 -49
  230. package/src/internal/ponyfills/String.replaceAll.js +0 -44
  231. package/src/internal/ponyfills/String.trimEnd.js +0 -5
  232. package/src/internal/ponyfills/String.trimStart.js +0 -5
  233. package/src/invoke.js +0 -22
  234. package/src/invokeArgs.js +0 -36
  235. package/src/isArray.js +0 -27
  236. package/src/isArrayLike.js +0 -79
  237. package/src/isAsyncFunction.js +0 -23
  238. package/src/isBigInt.js +0 -24
  239. package/src/isBlank.js +0 -33
  240. package/src/isBoolean.js +0 -22
  241. package/src/isDate.js +0 -21
  242. package/src/isEmptyArray.js +0 -28
  243. package/src/isEmptyString.js +0 -28
  244. package/src/isError.js +0 -21
  245. package/src/isEven.js +0 -31
  246. package/src/isFalse.js +0 -31
  247. package/src/isFalsy.js +0 -28
  248. package/src/isFinite.js +0 -37
  249. package/src/isFloat.js +0 -36
  250. package/src/isFunction.js +0 -32
  251. package/src/isGeneratorFunction.js +0 -26
  252. package/src/isIndexed.js +0 -24
  253. package/src/isInteger.js +0 -40
  254. package/src/isInteger32.js +0 -28
  255. package/src/isIterable.js +0 -37
  256. package/src/isMap.js +0 -25
  257. package/src/isNaN.js +0 -45
  258. package/src/isNaturalNumber.js +0 -28
  259. package/src/isNegative.js +0 -27
  260. package/src/isNegativeZero.js +0 -23
  261. package/src/isNilOrEmpty.js +0 -26
  262. package/src/isNonEmptyArray.js +0 -28
  263. package/src/isNonEmptyString.js +0 -31
  264. package/src/isNonNegative.js +0 -30
  265. package/src/isNonPositive.js +0 -30
  266. package/src/isNotArray.js +0 -24
  267. package/src/isNotArrayLike.js +0 -26
  268. package/src/isNotAsyncFunction.js +0 -27
  269. package/src/isNotBoolean.js +0 -24
  270. package/src/isNotDate.js +0 -23
  271. package/src/isNotFinite.js +0 -31
  272. package/src/isNotFloat.js +0 -35
  273. package/src/isNotFunction.js +0 -29
  274. package/src/isNotGeneratorFunction.js +0 -27
  275. package/src/isNotInteger.js +0 -36
  276. package/src/isNotMap.js +0 -27
  277. package/src/isNotNaN.js +0 -37
  278. package/src/isNotNil.js +0 -23
  279. package/src/isNotNilOrEmpty.js +0 -28
  280. package/src/isNotNull.js +0 -24
  281. package/src/isNotNumber.js +0 -25
  282. package/src/isNotObj.js +0 -29
  283. package/src/isNotObjLike.js +0 -29
  284. package/src/isNotPair.js +0 -27
  285. package/src/isNotPlainObj.js +0 -35
  286. package/src/isNotPrimitive.js +0 -26
  287. package/src/isNotRegExp.js +0 -24
  288. package/src/isNotSet.js +0 -26
  289. package/src/isNotString.js +0 -23
  290. package/src/isNotUndefined.js +0 -24
  291. package/src/isNotValidDate.js +0 -24
  292. package/src/isNotValidNumber.js +0 -27
  293. package/src/isNull.js +0 -22
  294. package/src/isNumber.js +0 -24
  295. package/src/isObj.js +0 -31
  296. package/src/isObjLike.js +0 -30
  297. package/src/isOdd.js +0 -29
  298. package/src/isPair.js +0 -27
  299. package/src/isPlainObj.js +0 -65
  300. package/src/isPositive.js +0 -26
  301. package/src/isPositiveZero.js +0 -23
  302. package/src/isPrimitive.js +0 -46
  303. package/src/isPromise.js +0 -32
  304. package/src/isPrototypeOf.js +0 -36
  305. package/src/isRegExp.js +0 -22
  306. package/src/isSafeInteger.js +0 -40
  307. package/src/isSentinelValue.js +0 -26
  308. package/src/isSet.js +0 -24
  309. package/src/isSparseArray.js +0 -43
  310. package/src/isString.js +0 -21
  311. package/src/isSymbol.js +0 -29
  312. package/src/isThenable.js +0 -28
  313. package/src/isTrue.js +0 -27
  314. package/src/isTruthy.js +0 -28
  315. package/src/isUinteger32.js +0 -29
  316. package/src/isUndefined.js +0 -24
  317. package/src/isValidDate.js +0 -29
  318. package/src/isValidNumber.js +0 -28
  319. package/src/lastP.js +0 -54
  320. package/src/lengthEq.js +0 -24
  321. package/src/lengthGt.js +0 -24
  322. package/src/lengthGte.js +0 -26
  323. package/src/lengthLt.js +0 -24
  324. package/src/lengthLte.js +0 -25
  325. package/src/lengthNotEq.js +0 -24
  326. package/src/lensEq.js +0 -28
  327. package/src/lensIso.js +0 -51
  328. package/src/lensNotEq.js +0 -28
  329. package/src/lensNotSatisfy.js +0 -30
  330. package/src/lensSatisfies.js +0 -33
  331. package/src/lensTraverse.js +0 -56
  332. package/src/liftF.js +0 -37
  333. package/src/liftFN.js +0 -45
  334. package/src/list.js +0 -20
  335. package/src/mapIndexed.js +0 -27
  336. package/src/mergePath.js +0 -30
  337. package/src/mergePaths.js +0 -29
  338. package/src/mergeProp.js +0 -30
  339. package/src/mergeProps.js +0 -27
  340. package/src/move.js +0 -26
  341. package/src/nand.js +0 -27
  342. package/src/neither.js +0 -38
  343. package/src/noneP.js +0 -35
  344. package/src/nonePass.js +0 -32
  345. package/src/noop.js +0 -21
  346. package/src/nor.js +0 -28
  347. package/src/notAllPass.js +0 -32
  348. package/src/notAllUnique.js +0 -25
  349. package/src/notBoth.js +0 -38
  350. package/src/notEqual.js +0 -31
  351. package/src/omitBy.js +0 -25
  352. package/src/omitIndexes.js +0 -27
  353. package/src/overlaps.js +0 -30
  354. package/src/padCharsEnd.js +0 -37
  355. package/src/padCharsStart.js +0 -35
  356. package/src/padEnd.js +0 -25
  357. package/src/padStart.js +0 -23
  358. package/src/pathNotEq.js +0 -31
  359. package/src/pathOrLazy.js +0 -30
  360. package/src/paths.js +0 -26
  361. package/src/pickIndexes.js +0 -30
  362. package/src/propNotEq.js +0 -30
  363. package/src/rangeStep.js +0 -37
  364. package/src/reduceIndexed.js +0 -31
  365. package/src/reduceP.js +0 -96
  366. package/src/reduceRightP.js +0 -101
  367. package/src/rejectP.js +0 -24
  368. package/src/renameKey.js +0 -33
  369. package/src/renameKeyWith.js +0 -30
  370. package/src/renameKeys.js +0 -40
  371. package/src/renameKeysWith.js +0 -27
  372. package/src/repeatStr.js +0 -30
  373. package/src/replaceAll.js +0 -35
  374. package/src/resolveP.js +0 -28
  375. package/src/round.js +0 -26
  376. package/src/seq.js +0 -38
  377. package/src/sign.js +0 -33
  378. package/src/skipTake.js +0 -33
  379. package/src/sliceFrom.js +0 -23
  380. package/src/sliceTo.js +0 -23
  381. package/src/sortByPaths.js +0 -55
  382. package/src/sortByProp.js +0 -45
  383. package/src/sortByProps.js +0 -31
  384. package/src/spreadPath.js +0 -26
  385. package/src/spreadProp.js +0 -25
  386. package/src/stubArray.js +0 -18
  387. package/src/stubNull.js +0 -19
  388. package/src/stubObj.js +0 -19
  389. package/src/stubString.js +0 -19
  390. package/src/stubUndefined.js +0 -19
  391. package/src/subtractNum.js +0 -20
  392. package/src/thenCatchP.js +0 -27
  393. package/src/toArray.js +0 -32
  394. package/src/toInteger32.js +0 -22
  395. package/src/toNumber.js +0 -24
  396. package/src/toUinteger32.js +0 -26
  397. package/src/trimCharsEnd.js +0 -25
  398. package/src/trimCharsStart.js +0 -25
  399. package/src/trimEnd.js +0 -30
  400. package/src/trimStart.js +0 -29
  401. package/src/trunc.js +0 -33
  402. package/src/unzipObjWith.js +0 -40
  403. package/src/viewOr.js +0 -32
  404. package/src/weave.js +0 -35
  405. package/src/weaveLazy.js +0 -37
  406. package/src/zipObjWith.js +0 -27
@@ -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;
package/src/sign.js DELETED
@@ -1,33 +0,0 @@
1
- import { bind, curryN } from 'ramda';
2
-
3
- import isFunction from './isFunction.js';
4
- import ponyfill from './internal/ponyfills/Math.sign.js';
5
-
6
- export const signPonyfill = curryN(1, ponyfill);
7
-
8
- /**
9
- * Returns the sign of a number, indicating whether the number is positive, negative or zero.
10
- *
11
- * @func sign
12
- * @memberOf RA
13
- * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}
14
- * @category Math
15
- * @sig Number | String -> Number
16
- * @param {number} number A number
17
- * @return {number} A number representing the sign of the given argument. If the argument is a positive number, negative number, positive zero or negative zero, the function will return 1, -1, 0 or -0 respectively. Otherwise, NaN is returned
18
- * @example
19
- *
20
- * RA.sign(3); // 1
21
- * RA.sign(-3); // -1
22
- * RA.sign('-3'); // -1
23
- * RA.sign(0); // 0
24
- * RA.sign(-0); // -0
25
- * RA.sign(NaN); // NaN
26
- * RA.sign('foo'); // NaN
27
- */
28
-
29
- const sign = isFunction(Math.sign)
30
- ? curryN(1, bind(Math.sign, Math))
31
- : signPonyfill;
32
-
33
- export default sign;
package/src/skipTake.js DELETED
@@ -1,33 +0,0 @@
1
- import {
2
- curry,
3
- addIndex,
4
- filter,
5
- pipe,
6
- modulo,
7
- identical,
8
- nthArg,
9
- __,
10
- } from 'ramda';
11
-
12
- /**
13
- * When given a number n and an array, returns an array containing every nth element.
14
- *
15
- * @func skipTake
16
- * @memberOf RA
17
- * @category List
18
- * @since {@link https://char0n.github.io/ramda-adjunct/2.26.0|v2.26.0}
19
- * @sig Number -> [a] -> [a]
20
- * @param {number} the nth element to extract
21
- * @param {Array} value the input array
22
- * @return {Array} An array containing every nth element
23
- * @example
24
- *
25
- * RA.skipTake(2, [1,2,3,4]) //=> [1, 3]
26
- * RA.skipTake(3, R.range(0, 20)); //=> [0, 3, 6, 9, 12, 15, 18]
27
- */
28
-
29
- const skipTake = curry((n, list) =>
30
- addIndex(filter)(pipe(nthArg(1), modulo(__, n), identical(0)))(list)
31
- );
32
-
33
- export default skipTake;
package/src/sliceFrom.js DELETED
@@ -1,23 +0,0 @@
1
- import { __, slice } from 'ramda';
2
-
3
- /**
4
- * Returns the elements of the given list or string (or object with a slice method)
5
- * from fromIndex (inclusive).
6
- * Dispatches to the slice method of the second argument, if present.
7
- *
8
- * @func sliceFrom
9
- * @memberOf RA
10
- * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}
11
- * @category List
12
- * @sig Number -> [a] -> [a]
13
- * @param {number} fromIndex The start index (inclusive)
14
- * @param {Array|string} list The list or string to slice
15
- * @return {Array|string} The sliced list or string
16
- * @see {@link http://ramdajs.com/docs/#slice|R.slice}, {@link RA.sliceTo|sliceTo}
17
- * @example
18
- *
19
- * RA.sliceFrom(1, [1, 2, 3]); //=> [2, 3]
20
- */
21
- const sliceFrom = slice(__, Infinity);
22
-
23
- export default sliceFrom;
package/src/sliceTo.js DELETED
@@ -1,23 +0,0 @@
1
- import { slice } from 'ramda';
2
-
3
- /**
4
- * Returns the elements of the given list or string (or object with a slice method)
5
- * to toIndex (exclusive).
6
- * Dispatches to the slice method of the second argument, if present.
7
- *
8
- * @func sliceTo
9
- * @memberOf RA
10
- * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}
11
- * @category List
12
- * @sig Number -> [a] -> [a]
13
- * @param {number} toIndex The end index (exclusive)
14
- * @param {Array|string} list The list or string to slice
15
- * @return {Array|string} The sliced list or string
16
- * @see {@link http://ramdajs.com/docs/#slice|R.slice}, {@link RA.sliceFrom|sliceFrom}
17
- * @example
18
- *
19
- * RA.sliceTo(2, [1, 2, 3]); //=> [1, 2]
20
- */
21
- const sliceTo = slice(0);
22
-
23
- export default sliceTo;
@@ -1,55 +0,0 @@
1
- import { ascend, identity, map, path, pipe, sortWith, useWith } from 'ramda';
2
-
3
- const pathToAscendSort = pipe(path, ascend);
4
- const mapPathsToAscendSort = map(pathToAscendSort);
5
-
6
- /**
7
- * Sort a list of objects by a list of paths (if first path value is equivalent, sort by second, etc).
8
- *
9
- * @func sortByPaths
10
- * @memberOf RA
11
- * @since {@link https://char0n.github.io/ramda-adjunct/3.1.0|v3.1.0}
12
- * @category List
13
- * @sig [[k]] -> [{k: v}] -> [{k: v}]
14
- * @param {Array.<Array.<string>>} paths A list of paths in the list param to sort by
15
- * @param {Array.<object>} list A list of objects to be sorted
16
- * @return {Array.<object>} A new list sorted by the paths in the paths param
17
- * @example
18
- *
19
- * const alice = {
20
- * name: 'Alice',
21
- * address: {
22
- * street: 31,
23
- * zipCode: 97777,
24
- * },
25
- * };
26
- * const bob = {
27
- * name: 'Bob',
28
- * address: {
29
- * street: 31,
30
- * zipCode: 55555,
31
- * },
32
- * };
33
- * const clara = {
34
- * name: 'Clara',
35
- * address: {
36
- * street: 32,
37
- * zipCode: 90210,
38
- * },
39
- * };
40
- * const people = [clara, bob, alice]
41
- *
42
- * RA.sortByPaths([
43
- * ['address', 'street'],
44
- * ['address', 'zipCode'],
45
- * ], people); // => [bob, alice, clara]
46
- *
47
- * RA.sortByPaths([
48
- * ['address', 'zipCode'],
49
- * ['address', 'street'],
50
- * ], people); // => [bob, clara, alice]
51
- */
52
-
53
- const sortByPaths = useWith(sortWith, [mapPathsToAscendSort, identity]);
54
-
55
- export default sortByPaths;
package/src/sortByProp.js DELETED
@@ -1,45 +0,0 @@
1
- import { __, append, identity, useWith } from 'ramda';
2
-
3
- import sortByProps from './sortByProps.js';
4
-
5
- /**
6
- * Sort a list of objects by a property.
7
- *
8
- * @func sortByProp
9
- * @memberOf RA
10
- * @since {@link https://char0n.github.io/ramda-adjunct/3.4.0|v3.4.0}
11
- * @category List
12
- * @sig k -> [{k: v}] -> [{k: v}]
13
- * @param {Array.<string>} prop The property in the list param to sort by
14
- * @param {Array.<object>} list A list of objects to be sorted
15
- * @return {Array.<object>} A new list sorted by the property in the prop param
16
- * @example
17
- *
18
- * // sorting list of tuples
19
- * const sortByFirstItem = sortByProp(0);
20
- * const listOfTuples = [[-1, 1], [-2, 2], [-3, 3]];
21
- * sortByFirstItem(listOfTuples); // => [[-3, 3], [-2, 2], [-1, 1]]
22
- *
23
- * // sorting list of objects
24
- * const sortByName = sortByProp('name');
25
- * const alice = {
26
- * name: 'ALICE',
27
- * age: 101,
28
- * };
29
- * const bob = {
30
- * name: 'Bob',
31
- * age: -10,
32
- * };
33
- * const clara = {
34
- * name: 'clara',
35
- * age: 314.159,
36
- * };
37
- * const people = [clara, bob, alice];
38
- * sortByName(people); // => [alice, bob, clara]
39
- */
40
-
41
- const addValueInAnArray = append(__, []);
42
-
43
- const sortByProp = useWith(sortByProps, [addValueInAnArray, identity]);
44
-
45
- export default sortByProp;
@@ -1,31 +0,0 @@
1
- import { comparator, curry, either, lt, map, prop, reduce, sort } from 'ramda';
2
-
3
- /**
4
- * Sort a list of objects by a list of props (if first prop value is equivalent, sort by second, etc).
5
- *
6
- * @func sortByProps
7
- * @memberOf RA
8
- * @since {@link https://char0n.github.io/ramda-adjunct/2.26.0|v2.26.0}
9
- * @category List
10
- * @sig [k] -> [{k: v}] -> [{k: v}]
11
- * @param {Array.<string>} props A list of properties in the list param to sort by
12
- * @param {Array.<object>} list A list of objects to be sorted
13
- * @return {Array.<object>} A new list sorted by the properties in the props param
14
- * @example
15
- *
16
- * sortByProps(['num'], [{num: 3}, {num: 2}, {num: 1}])
17
- * //=> [{num: 1}, {num: 2} {num: 3}]
18
- * sortByProps(['letter', 'num'], [{num: 3, letter: 'a'}, {num: 2, letter: 'a'} {num: 1, letter: 'z'}])
19
- * //=> [ {num: 2, letter: 'a'}, {num: 3, letter: 'a'}, {num: 1, letter: 'z'}]
20
- * sortByProps(['name', 'num'], [{num: 3}, {num: 2}, {num: 1}])
21
- * //=> [{num: 1}, {num: 2}, {num: 3}]
22
- */
23
-
24
- const sortByProps = curry((props, list) => {
25
- const firstTruthy = ([head, ...tail]) => reduce(either, head, tail);
26
- const makeComparator = (propName) =>
27
- comparator((a, b) => lt(prop(propName, a), prop(propName, b)));
28
- return sort(firstTruthy(map(makeComparator, props)), list);
29
- });
30
-
31
- export default sortByProps;