rambda 9.4.2 → 10.0.0-beta.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 (271) hide show
  1. package/CHANGELOG.md +177 -1
  2. package/README.md +6799 -11799
  3. package/dist/rambda.cjs +1795 -0
  4. package/dist/rambda.js +1162 -2234
  5. package/dist/rambda.umd.js +1801 -1
  6. package/immutable.d.ts +1154 -1403
  7. package/index.d.ts +1154 -1403
  8. package/package.json +102 -94
  9. package/rambda.js +24 -137
  10. package/src/_internals/baseSlice.js +5 -7
  11. package/src/_internals/createPath.js +4 -6
  12. package/src/_internals/includes.js +8 -4
  13. package/src/_internals/set.js +11 -11
  14. package/src/addProp.js +3 -0
  15. package/src/all.js +8 -6
  16. package/src/allPass.js +4 -4
  17. package/src/any.js +10 -10
  18. package/src/anyPass.js +4 -4
  19. package/src/append.js +6 -8
  20. package/src/ascend.js +8 -15
  21. package/src/checkObjectWithSpec.js +16 -0
  22. package/src/compact.js +12 -0
  23. package/src/complement.js +1 -1
  24. package/src/concat.js +2 -4
  25. package/src/count.js +7 -6
  26. package/src/countBy.js +13 -14
  27. package/src/createObjectFromKeys.js +10 -0
  28. package/src/defaultTo.js +4 -6
  29. package/src/descend.js +6 -13
  30. package/src/drop.js +4 -2
  31. package/src/dropLast.js +2 -8
  32. package/src/dropLastWhile.js +17 -26
  33. package/src/dropWhile.js +14 -22
  34. package/src/eqBy.js +3 -8
  35. package/src/eqProps.js +3 -9
  36. package/src/equals.js +99 -58
  37. package/src/evolve.js +3 -57
  38. package/src/excludes.js +5 -0
  39. package/src/filter.js +13 -43
  40. package/src/filterObject.js +13 -0
  41. package/src/find.js +10 -10
  42. package/src/findIndex.js +10 -10
  43. package/src/findLast.js +9 -9
  44. package/src/findLastIndex.js +9 -9
  45. package/src/findNth.js +16 -0
  46. package/src/flatMap.js +3 -0
  47. package/src/flatten.js +5 -5
  48. package/src/groupBy.js +14 -11
  49. package/src/head.js +5 -3
  50. package/src/includes.js +13 -11
  51. package/src/indexOf.js +2 -6
  52. package/src/init.js +6 -8
  53. package/src/innerJoin.js +11 -19
  54. package/src/interpolate.js +29 -0
  55. package/src/intersection.js +2 -4
  56. package/src/intersperse.js +13 -13
  57. package/src/join.js +2 -4
  58. package/src/last.js +4 -4
  59. package/src/lastIndexOf.js +2 -6
  60. package/src/map.js +9 -49
  61. package/src/mapAsync.js +11 -0
  62. package/src/mapKeys.js +11 -0
  63. package/src/mapObject.js +18 -0
  64. package/src/mapObjectAsync.js +10 -0
  65. package/src/mapParallelAsync.js +3 -0
  66. package/src/match.js +5 -5
  67. package/src/maxBy.js +2 -8
  68. package/src/merge.js +4 -1
  69. package/src/mergeTypes.js +3 -0
  70. package/src/minBy.js +2 -8
  71. package/src/modifyProp.js +20 -0
  72. package/src/none.js +8 -6
  73. package/src/objOf.js +2 -6
  74. package/src/objectIncludes.js +12 -0
  75. package/src/omit.js +26 -11
  76. package/src/partition.js +15 -42
  77. package/src/partitionObject.js +15 -0
  78. package/src/path.js +14 -15
  79. package/src/permutations.js +40 -0
  80. package/src/pick.js +15 -15
  81. package/src/pipe.js +70 -13
  82. package/src/pipeAsync.js +11 -0
  83. package/src/pluck.js +12 -14
  84. package/src/prepend.js +2 -6
  85. package/src/prop.js +2 -10
  86. package/src/propEq.js +8 -10
  87. package/src/propOr.js +7 -8
  88. package/src/propSatisfies.js +2 -9
  89. package/src/range.js +34 -11
  90. package/src/reduce.js +15 -30
  91. package/src/reject.js +2 -4
  92. package/src/rejectObject.js +13 -0
  93. package/src/replace.js +2 -8
  94. package/src/replaceItemAtIndex.js +15 -0
  95. package/src/shuffle.js +13 -0
  96. package/src/sort.js +2 -4
  97. package/src/sortBy.js +12 -10
  98. package/src/sortObject.js +15 -0
  99. package/src/sortWith.js +12 -16
  100. package/src/split.js +2 -4
  101. package/src/splitEvery.js +11 -13
  102. package/src/symmetricDifference.js +5 -8
  103. package/src/tail.js +2 -2
  104. package/src/take.js +11 -9
  105. package/src/takeLast.js +14 -14
  106. package/src/takeLastWhile.js +15 -16
  107. package/src/takeWhile.js +12 -21
  108. package/src/tap.js +5 -5
  109. package/src/test.js +2 -8
  110. package/src/tryCatch.js +5 -14
  111. package/src/type.js +6 -5
  112. package/src/union.js +10 -8
  113. package/src/uniq.js +2 -2
  114. package/src/uniqBy.js +5 -6
  115. package/src/uniqWith.js +15 -19
  116. package/src/unless.js +7 -9
  117. package/src/unwind.js +6 -14
  118. package/src/update.js +8 -11
  119. package/src/when.js +7 -9
  120. package/src/zip.js +8 -8
  121. package/src/zipWith.js +5 -7
  122. package/src/F.js +0 -3
  123. package/src/T.js +0 -3
  124. package/src/_internals/_arity.js +0 -64
  125. package/src/_internals/compare.js +0 -3
  126. package/src/_internals/constants.js +0 -1
  127. package/src/_internals/createPathInput.js +0 -7
  128. package/src/_internals/isFalsy.js +0 -13
  129. package/src/_internals/isInteger.js +0 -10
  130. package/src/_internals/isIterable.js +0 -5
  131. package/src/_internals/isObject.js +0 -5
  132. package/src/_internals/isTruthy.js +0 -13
  133. package/src/_internals/objectIs.js +0 -9
  134. package/src/_internals/utils.js +0 -21
  135. package/src/add.js +0 -5
  136. package/src/addIndex.js +0 -23
  137. package/src/addIndexRight.js +0 -9
  138. package/src/adjust.js +0 -16
  139. package/src/always.js +0 -3
  140. package/src/and.js +0 -5
  141. package/src/ap.js +0 -7
  142. package/src/aperture.js +0 -15
  143. package/src/apply.js +0 -7
  144. package/src/applySpec.js +0 -132
  145. package/src/applyTo.js +0 -7
  146. package/src/assoc.js +0 -11
  147. package/src/assocPath.js +0 -46
  148. package/src/binary.js +0 -5
  149. package/src/bind.js +0 -9
  150. package/src/both.js +0 -5
  151. package/src/call.js +0 -1
  152. package/src/chain.js +0 -7
  153. package/src/clamp.js +0 -15
  154. package/src/clone.js +0 -18
  155. package/src/collectBy.js +0 -27
  156. package/src/comparator.js +0 -5
  157. package/src/compose.js +0 -9
  158. package/src/composeWith.js +0 -33
  159. package/src/cond.js +0 -14
  160. package/src/converge.js +0 -18
  161. package/src/curry.js +0 -7
  162. package/src/curryN.js +0 -40
  163. package/src/dec.js +0 -1
  164. package/src/difference.js +0 -8
  165. package/src/differenceWith.js +0 -20
  166. package/src/dissoc.js +0 -13
  167. package/src/dissocPath.js +0 -47
  168. package/src/divide.js +0 -5
  169. package/src/dropRepeats.js +0 -20
  170. package/src/dropRepeatsBy.js +0 -21
  171. package/src/dropRepeatsWith.js +0 -28
  172. package/src/either.js +0 -8
  173. package/src/empty.js +0 -15
  174. package/src/endsWith.js +0 -23
  175. package/src/flip.js +0 -23
  176. package/src/forEach.js +0 -19
  177. package/src/forEachObjIndexed.js +0 -24
  178. package/src/fromPairs.js +0 -6
  179. package/src/groupWith.js +0 -46
  180. package/src/gt.js +0 -6
  181. package/src/gte.js +0 -6
  182. package/src/has.js +0 -7
  183. package/src/hasIn.js +0 -9
  184. package/src/hasPath.js +0 -9
  185. package/src/identical.js +0 -7
  186. package/src/identity.js +0 -3
  187. package/src/ifElse.js +0 -17
  188. package/src/inc.js +0 -1
  189. package/src/indexBy.js +0 -29
  190. package/src/insert.js +0 -11
  191. package/src/insertAll.js +0 -7
  192. package/src/is.js +0 -8
  193. package/src/isEmpty.js +0 -18
  194. package/src/isNil.js +0 -3
  195. package/src/isNotEmpty.js +0 -5
  196. package/src/isNotNil.js +0 -3
  197. package/src/isPromise.js +0 -5
  198. package/src/juxt.js +0 -3
  199. package/src/keys.js +0 -3
  200. package/src/length.js +0 -8
  201. package/src/lens.js +0 -7
  202. package/src/lensIndex.js +0 -7
  203. package/src/lensPath.js +0 -7
  204. package/src/lensProp.js +0 -7
  205. package/src/lt.js +0 -6
  206. package/src/lte.js +0 -6
  207. package/src/mathMod.js +0 -8
  208. package/src/max.js +0 -5
  209. package/src/maybe.js +0 -13
  210. package/src/mean.js +0 -5
  211. package/src/median.js +0 -17
  212. package/src/mergeAll.js +0 -11
  213. package/src/mergeDeepLeft.js +0 -5
  214. package/src/mergeDeepRight.js +0 -24
  215. package/src/mergeLeft.js +0 -7
  216. package/src/mergeRight.js +0 -8
  217. package/src/mergeWith.js +0 -25
  218. package/src/min.js +0 -5
  219. package/src/modify.js +0 -23
  220. package/src/modifyPath.js +0 -33
  221. package/src/modulo.js +0 -5
  222. package/src/move.js +0 -19
  223. package/src/multiply.js +0 -5
  224. package/src/negate.js +0 -3
  225. package/src/not.js +0 -3
  226. package/src/nth.js +0 -9
  227. package/src/of.js +0 -3
  228. package/src/on.js +0 -16
  229. package/src/once.js +0 -24
  230. package/src/or.js +0 -5
  231. package/src/over.js +0 -14
  232. package/src/partial.js +0 -17
  233. package/src/partialObject.js +0 -5
  234. package/src/pathEq.js +0 -11
  235. package/src/pathOr.js +0 -11
  236. package/src/pathSatisfies.js +0 -9
  237. package/src/paths.js +0 -9
  238. package/src/pickAll.js +0 -23
  239. package/src/pickBy.js +0 -11
  240. package/src/product.js +0 -4
  241. package/src/propIs.js +0 -10
  242. package/src/props.js +0 -13
  243. package/src/reduceBy.js +0 -29
  244. package/src/removeIndex.js +0 -7
  245. package/src/repeat.js +0 -7
  246. package/src/reverse.js +0 -9
  247. package/src/set.js +0 -9
  248. package/src/slice.js +0 -9
  249. package/src/splitAt.js +0 -21
  250. package/src/splitWhen.js +0 -25
  251. package/src/startsWith.js +0 -23
  252. package/src/subtract.js +0 -5
  253. package/src/sum.js +0 -3
  254. package/src/swap.js +0 -42
  255. package/src/times.js +0 -12
  256. package/src/toLower.js +0 -3
  257. package/src/toPairs.js +0 -3
  258. package/src/toString.js +0 -3
  259. package/src/toUpper.js +0 -3
  260. package/src/transpose.js +0 -10
  261. package/src/trim.js +0 -3
  262. package/src/unapply.js +0 -5
  263. package/src/unnest.js +0 -9
  264. package/src/values.js +0 -6
  265. package/src/view.js +0 -10
  266. package/src/where.js +0 -15
  267. package/src/whereAny.js +0 -12
  268. package/src/whereEq.js +0 -14
  269. package/src/without.js +0 -15
  270. package/src/xor.js +0 -5
  271. package/src/zipObj.js +0 -13
package/src/splitWhen.js DELETED
@@ -1,25 +0,0 @@
1
- export function splitWhen(predicate, input){
2
- if (arguments.length === 1){
3
- return _input => splitWhen(predicate, _input)
4
- }
5
- if (!input)
6
- throw new TypeError(`Cannot read property 'length' of ${ input }`)
7
-
8
- const preFound = []
9
- const postFound = []
10
- let found = false
11
- let counter = -1
12
-
13
- while (counter++ < input.length - 1){
14
- if (found){
15
- postFound.push(input[ counter ])
16
- } else if (predicate(input[ counter ])){
17
- postFound.push(input[ counter ])
18
- found = true
19
- } else {
20
- preFound.push(input[ counter ])
21
- }
22
- }
23
-
24
- return [ preFound, postFound ]
25
- }
package/src/startsWith.js DELETED
@@ -1,23 +0,0 @@
1
- import { isArray } from './_internals/isArray.js'
2
- import { equals } from './equals.js'
3
-
4
- export function startsWith(question, iterable){
5
- if (arguments.length === 1)
6
- return _iterable => startsWith(question, _iterable)
7
-
8
- if (typeof iterable === 'string'){
9
- return iterable.startsWith(question)
10
- }
11
- if (!isArray(question)) return false
12
-
13
- let correct = true
14
- const filtered = question.filter((x, index) => {
15
- if (!correct) return false
16
- const result = equals(x, iterable[ index ])
17
- if (!result) correct = false
18
-
19
- return result
20
- })
21
-
22
- return filtered.length === question.length
23
- }
package/src/subtract.js DELETED
@@ -1,5 +0,0 @@
1
- export function subtract(a, b){
2
- if (arguments.length === 1) return _b => subtract(a, _b)
3
-
4
- return a - b
5
- }
package/src/sum.js DELETED
@@ -1,3 +0,0 @@
1
- export function sum(list){
2
- return list.reduce((prev, current) => prev + current, 0)
3
- }
package/src/swap.js DELETED
@@ -1,42 +0,0 @@
1
- import { isArray } from './_internals/isArray.js';
2
- import { curry } from './curry.js';
3
-
4
- function swapArrayOrString(indexA, indexB, iterable) {
5
- const actualIndexA = indexA < 0 ? iterable.length + indexA : indexA;
6
- const actualIndexB = indexB < 0 ? iterable.length + indexB : indexB;
7
- if (
8
- actualIndexA === actualIndexB ||
9
- Math.min(actualIndexA, actualIndexB) < 0 ||
10
- Math.max(actualIndexA, actualIndexB) >= iterable.length
11
- )
12
- return iterable;
13
- if (typeof iterable === 'string') {
14
- return (
15
- iterable.slice(0, actualIndexA) +
16
- iterable[actualIndexB] +
17
- iterable.slice(actualIndexA + 1, actualIndexB) +
18
- iterable[actualIndexA] +
19
- iterable.slice(actualIndexB + 1)
20
- );
21
- }
22
- const clone = iterable.slice();
23
- const temp = clone[actualIndexA];
24
- clone[actualIndexA] = clone[actualIndexB];
25
- clone[actualIndexB] = temp;
26
- return clone;
27
- }
28
- function swapFn(indexA, indexB, iterable) {
29
- if (isArray(iterable) || typeof iterable === 'string')
30
- return swapArrayOrString(indexA, indexB, iterable);
31
-
32
- const aVal = iterable[indexA];
33
- const bVal = iterable[indexB];
34
- if (aVal === undefined || bVal === undefined) return iterable;
35
- return {
36
- ...iterable,
37
- [indexA]: iterable[indexB],
38
- [indexB]: iterable[indexA],
39
- };
40
- }
41
-
42
- export const swap = curry(swapFn);
package/src/times.js DELETED
@@ -1,12 +0,0 @@
1
- import { isInteger } from './_internals/isInteger.js'
2
- import { map } from './map.js'
3
- import { range } from './range.js'
4
-
5
- export function times(fn, howMany){
6
- if (arguments.length === 1) return _howMany => times(fn, _howMany)
7
- if (!isInteger(howMany) || howMany < 0){
8
- throw new RangeError('n must be an integer')
9
- }
10
-
11
- return map(fn, range(0, howMany))
12
- }
package/src/toLower.js DELETED
@@ -1,3 +0,0 @@
1
- export function toLower(str){
2
- return str.toLowerCase()
3
- }
package/src/toPairs.js DELETED
@@ -1,3 +0,0 @@
1
- export function toPairs(obj){
2
- return Object.entries(obj)
3
- }
package/src/toString.js DELETED
@@ -1,3 +0,0 @@
1
- export function toString(x){
2
- return x.toString()
3
- }
package/src/toUpper.js DELETED
@@ -1,3 +0,0 @@
1
- export function toUpper(str){
2
- return str.toUpperCase()
3
- }
package/src/transpose.js DELETED
@@ -1,10 +0,0 @@
1
- import { isArray } from './_internals/isArray.js'
2
-
3
- export function transpose(array){
4
- return array.reduce((acc, el) => {
5
- el.forEach((nestedEl, i) =>
6
- isArray(acc[ i ]) ? acc[ i ].push(nestedEl) : acc.push([ nestedEl ]))
7
-
8
- return acc
9
- }, [])
10
- }
package/src/trim.js DELETED
@@ -1,3 +0,0 @@
1
- export function trim(str){
2
- return str.trim()
3
- }
package/src/unapply.js DELETED
@@ -1,5 +0,0 @@
1
- export function unapply(fn){
2
- return function (...args){
3
- return fn.call(this, args)
4
- }
5
- }
package/src/unnest.js DELETED
@@ -1,9 +0,0 @@
1
- export function unnest(list){
2
- return list.reduce((acc, item) => {
3
- if (Array.isArray(item)){
4
- return [ ...acc, ...item ]
5
- }
6
-
7
- return [ ...acc, item ]
8
- }, [])
9
- }
package/src/values.js DELETED
@@ -1,6 +0,0 @@
1
- import { type } from './type.js'
2
-
3
- export function values(obj){
4
- if (type(obj) !== 'Object') return []
5
- return Object.values(obj)
6
- }
package/src/view.js DELETED
@@ -1,10 +0,0 @@
1
- const Const = x => ({
2
- x,
3
- map : fn => Const(x),
4
- })
5
-
6
- export function view(lens, target){
7
- if (arguments.length === 1) return _target => view(lens, _target)
8
-
9
- return lens(Const)(target).x
10
- }
package/src/where.js DELETED
@@ -1,15 +0,0 @@
1
- export function where(conditions, input){
2
- if (input === undefined){
3
- return _input => where(conditions, _input)
4
- }
5
- let flag = true
6
- for (const prop in conditions){
7
- if (!flag) continue
8
- const result = conditions[ prop ](input[ prop ])
9
- if (flag && result === false){
10
- flag = false
11
- }
12
- }
13
-
14
- return flag
15
- }
package/src/whereAny.js DELETED
@@ -1,12 +0,0 @@
1
- export function whereAny(conditions, input){
2
- if (input === undefined){
3
- return _input => whereAny(conditions, _input)
4
- }
5
- for (const prop in conditions){
6
- if (conditions[ prop ](input[ prop ])){
7
- return true
8
- }
9
- }
10
-
11
- return false
12
- }
package/src/whereEq.js DELETED
@@ -1,14 +0,0 @@
1
- import { equals } from './equals.js'
2
- import { filter } from './filter.js'
3
-
4
- export function whereEq(condition, input){
5
- if (arguments.length === 1){
6
- return _input => whereEq(condition, _input)
7
- }
8
-
9
- const result = filter((conditionValue, conditionProp) =>
10
- equals(conditionValue, input[ conditionProp ]),
11
- condition)
12
-
13
- return Object.keys(result).length === Object.keys(condition).length
14
- }
package/src/without.js DELETED
@@ -1,15 +0,0 @@
1
- import { _indexOf } from './equals.js'
2
- import { reduce } from './reduce.js'
3
-
4
- export function without(matchAgainst, source){
5
- if (source === undefined){
6
- return _source => without(matchAgainst, _source)
7
- }
8
-
9
- return reduce(
10
- (prev, current) =>
11
- _indexOf(current, matchAgainst) > -1 ? prev : prev.concat(current),
12
- [],
13
- source
14
- )
15
- }
package/src/xor.js DELETED
@@ -1,5 +0,0 @@
1
- export function xor(a, b){
2
- if (arguments.length === 1) return _b => xor(a, _b)
3
-
4
- return Boolean(a) && !b || Boolean(b) && !a
5
- }
package/src/zipObj.js DELETED
@@ -1,13 +0,0 @@
1
- import { take } from './take.js'
2
-
3
- export function zipObj(keys, values){
4
- if (arguments.length === 1) return yHolder => zipObj(keys, yHolder)
5
-
6
- return take(values.length, keys).reduce((
7
- prev, xInstance, i
8
- ) => {
9
- prev[ xInstance ] = values[ i ]
10
-
11
- return prev
12
- }, {})
13
- }