rambda 9.4.2 → 10.0.0-alpha.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.
- package/CHANGELOG.md +69 -1
- package/README.md +4637 -13433
- package/dist/rambda.esm.js +1487 -0
- package/dist/rambda.js +952 -2113
- package/dist/rambda.umd.js +1595 -1
- package/immutable.d.ts +1066 -1293
- package/index.d.ts +1066 -1293
- package/package.json +95 -94
- package/rambda.js +10 -138
- package/src/_internals/baseSlice.js +5 -7
- package/src/_internals/createPath.js +4 -6
- package/src/_internals/includes.js +8 -4
- package/src/_internals/set.js +11 -11
- package/src/all.js +8 -6
- package/src/allPass.js +4 -4
- package/src/any.js +10 -10
- package/src/anyPass.js +4 -4
- package/src/append.js +4 -6
- package/src/checkObjectWithSpec.js +16 -0
- package/src/complement.js +1 -1
- package/src/concat.js +2 -4
- package/src/count.js +5 -4
- package/src/countBy.js +6 -7
- package/src/defaultTo.js +4 -6
- package/src/drop.js +4 -2
- package/src/dropLast.js +4 -8
- package/src/dropLastWhile.js +17 -26
- package/src/dropWhile.js +14 -22
- package/src/eqBy.js +3 -8
- package/src/eqProps.js +3 -8
- package/src/equals.js +99 -58
- package/src/evolve.js +19 -52
- package/src/excludes.js +5 -0
- package/src/filter.js +10 -40
- package/src/filterObject.js +13 -0
- package/src/find.js +6 -6
- package/src/findIndex.js +5 -5
- package/src/findLast.js +6 -6
- package/src/findLastIndex.js +5 -5
- package/src/flatMap.js +3 -0
- package/src/flatten.js +5 -5
- package/src/groupBy.js +9 -7
- package/src/head.js +5 -3
- package/src/includes.js +10 -7
- package/src/indexOf.js +2 -6
- package/src/init.js +6 -8
- package/src/innerJoin.js +11 -19
- package/src/intersection.js +2 -4
- package/src/intersperse.js +7 -7
- package/src/join.js +2 -4
- package/src/last.js +4 -4
- package/src/lastIndexOf.js +2 -6
- package/src/map.js +9 -49
- package/src/mapAsync.js +11 -0
- package/src/mapObject.js +18 -0
- package/src/mapObjectAsync.js +10 -0
- package/src/match.js +6 -6
- package/src/maxBy.js +2 -8
- package/src/merge.js +4 -1
- package/src/mergeTypes.js +3 -0
- package/src/minBy.js +2 -8
- package/src/modifyPath.js +22 -25
- package/src/none.js +8 -6
- package/src/objOf.js +2 -6
- package/src/omit.js +26 -11
- package/src/partition.js +20 -23
- package/src/path.js +14 -15
- package/src/pick.js +15 -15
- package/src/pipe.js +70 -13
- package/src/pipeAsync.js +10 -0
- package/src/pluck.js +7 -9
- package/src/prepend.js +2 -6
- package/src/prop.js +2 -10
- package/src/propEq.js +8 -10
- package/src/propOr.js +7 -8
- package/src/propSatisfies.js +2 -7
- package/src/range.js +3 -3
- package/src/reduce.js +15 -30
- package/src/reject.js +2 -4
- package/src/replace.js +2 -8
- package/src/replaceItemAtIndex.js +15 -0
- package/src/sort.js +2 -4
- package/src/sortBy.js +3 -3
- package/src/sortWith.js +9 -13
- package/src/split.js +2 -4
- package/src/splitEvery.js +6 -8
- package/src/symmetricDifference.js +5 -8
- package/src/tail.js +2 -2
- package/src/take.js +11 -9
- package/src/takeLast.js +14 -14
- package/src/takeLastWhile.js +19 -20
- package/src/takeWhile.js +12 -21
- package/src/tap.js +3 -3
- package/src/test.js +2 -8
- package/src/tryCatch.js +5 -14
- package/src/type.js +6 -5
- package/src/union.js +10 -8
- package/src/uniq.js +2 -2
- package/src/uniqBy.js +5 -6
- package/src/uniqWith.js +10 -14
- package/src/unless.js +7 -9
- package/src/unwind.js +6 -14
- package/src/update.js +8 -11
- package/src/when.js +7 -9
- package/src/zip.js +8 -8
- package/src/zipWith.js +5 -7
- package/src/F.js +0 -3
- package/src/T.js +0 -3
- package/src/_internals/_arity.js +0 -64
- package/src/_internals/compare.js +0 -3
- package/src/_internals/constants.js +0 -1
- package/src/_internals/createPathInput.js +0 -7
- package/src/_internals/isFalsy.js +0 -13
- package/src/_internals/isInteger.js +0 -10
- package/src/_internals/isIterable.js +0 -5
- package/src/_internals/isObject.js +0 -5
- package/src/_internals/isTruthy.js +0 -13
- package/src/_internals/objectIs.js +0 -9
- package/src/_internals/utils.js +0 -21
- package/src/add.js +0 -5
- package/src/addIndex.js +0 -23
- package/src/addIndexRight.js +0 -9
- package/src/adjust.js +0 -16
- package/src/always.js +0 -3
- package/src/and.js +0 -5
- package/src/ap.js +0 -7
- package/src/aperture.js +0 -15
- package/src/apply.js +0 -7
- package/src/applySpec.js +0 -132
- package/src/applyTo.js +0 -7
- package/src/ascend.js +0 -23
- package/src/assoc.js +0 -11
- package/src/assocPath.js +0 -46
- package/src/binary.js +0 -5
- package/src/bind.js +0 -9
- package/src/both.js +0 -5
- package/src/call.js +0 -1
- package/src/chain.js +0 -7
- package/src/clamp.js +0 -15
- package/src/clone.js +0 -18
- package/src/collectBy.js +0 -27
- package/src/comparator.js +0 -5
- package/src/compose.js +0 -9
- package/src/composeWith.js +0 -33
- package/src/cond.js +0 -14
- package/src/converge.js +0 -18
- package/src/curry.js +0 -7
- package/src/curryN.js +0 -40
- package/src/dec.js +0 -1
- package/src/descend.js +0 -17
- package/src/difference.js +0 -8
- package/src/differenceWith.js +0 -20
- package/src/dissoc.js +0 -13
- package/src/dissocPath.js +0 -47
- package/src/divide.js +0 -5
- package/src/dropRepeats.js +0 -20
- package/src/dropRepeatsBy.js +0 -21
- package/src/dropRepeatsWith.js +0 -28
- package/src/either.js +0 -8
- package/src/empty.js +0 -15
- package/src/endsWith.js +0 -23
- package/src/flip.js +0 -23
- package/src/forEach.js +0 -19
- package/src/forEachObjIndexed.js +0 -24
- package/src/fromPairs.js +0 -6
- package/src/groupWith.js +0 -46
- package/src/gt.js +0 -6
- package/src/gte.js +0 -6
- package/src/has.js +0 -7
- package/src/hasIn.js +0 -9
- package/src/hasPath.js +0 -9
- package/src/identical.js +0 -7
- package/src/identity.js +0 -3
- package/src/ifElse.js +0 -17
- package/src/inc.js +0 -1
- package/src/indexBy.js +0 -29
- package/src/insert.js +0 -11
- package/src/insertAll.js +0 -7
- package/src/is.js +0 -8
- package/src/isEmpty.js +0 -18
- package/src/isNil.js +0 -3
- package/src/isNotEmpty.js +0 -5
- package/src/isNotNil.js +0 -3
- package/src/isPromise.js +0 -5
- package/src/juxt.js +0 -3
- package/src/keys.js +0 -3
- package/src/length.js +0 -8
- package/src/lens.js +0 -7
- package/src/lensIndex.js +0 -7
- package/src/lensPath.js +0 -7
- package/src/lensProp.js +0 -7
- package/src/lt.js +0 -6
- package/src/lte.js +0 -6
- package/src/mathMod.js +0 -8
- package/src/max.js +0 -5
- package/src/maybe.js +0 -13
- package/src/mean.js +0 -5
- package/src/median.js +0 -17
- package/src/mergeAll.js +0 -11
- package/src/mergeDeepLeft.js +0 -5
- package/src/mergeDeepRight.js +0 -24
- package/src/mergeLeft.js +0 -7
- package/src/mergeRight.js +0 -8
- package/src/mergeWith.js +0 -25
- package/src/min.js +0 -5
- package/src/modify.js +0 -23
- package/src/modulo.js +0 -5
- package/src/move.js +0 -19
- package/src/multiply.js +0 -5
- package/src/negate.js +0 -3
- package/src/not.js +0 -3
- package/src/nth.js +0 -9
- package/src/of.js +0 -3
- package/src/on.js +0 -16
- package/src/once.js +0 -24
- package/src/or.js +0 -5
- package/src/over.js +0 -14
- package/src/partial.js +0 -17
- package/src/partialObject.js +0 -5
- package/src/pathEq.js +0 -11
- package/src/pathOr.js +0 -11
- package/src/pathSatisfies.js +0 -9
- package/src/paths.js +0 -9
- package/src/pickAll.js +0 -23
- package/src/pickBy.js +0 -11
- package/src/product.js +0 -4
- package/src/propIs.js +0 -10
- package/src/props.js +0 -13
- package/src/reduceBy.js +0 -29
- package/src/removeIndex.js +0 -7
- package/src/repeat.js +0 -7
- package/src/reverse.js +0 -9
- package/src/set.js +0 -9
- package/src/slice.js +0 -9
- package/src/splitAt.js +0 -21
- package/src/splitWhen.js +0 -25
- package/src/startsWith.js +0 -23
- package/src/subtract.js +0 -5
- package/src/sum.js +0 -3
- package/src/swap.js +0 -42
- package/src/times.js +0 -12
- package/src/toLower.js +0 -3
- package/src/toPairs.js +0 -3
- package/src/toString.js +0 -3
- package/src/toUpper.js +0 -3
- package/src/transpose.js +0 -10
- package/src/trim.js +0 -3
- package/src/unapply.js +0 -5
- package/src/unnest.js +0 -9
- package/src/values.js +0 -6
- package/src/view.js +0 -10
- package/src/where.js +0 -15
- package/src/whereAny.js +0 -12
- package/src/whereEq.js +0 -14
- package/src/without.js +0 -15
- package/src/xor.js +0 -5
- package/src/zipObj.js +0 -13
package/src/endsWith.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { isArray } from './_internals/isArray.js'
|
|
2
|
-
import { equals } from './equals.js'
|
|
3
|
-
|
|
4
|
-
export function endsWith(target, iterable){
|
|
5
|
-
if (arguments.length === 1) return _iterable => endsWith(target, _iterable)
|
|
6
|
-
|
|
7
|
-
if (typeof iterable === 'string'){
|
|
8
|
-
return iterable.endsWith(target)
|
|
9
|
-
}
|
|
10
|
-
if (!isArray(target)) return false
|
|
11
|
-
|
|
12
|
-
const diff = iterable.length - target.length
|
|
13
|
-
let correct = true
|
|
14
|
-
const filtered = target.filter((x, index) => {
|
|
15
|
-
if (!correct) return false
|
|
16
|
-
const result = equals(x, iterable[ index + diff ])
|
|
17
|
-
if (!result) correct = false
|
|
18
|
-
|
|
19
|
-
return result
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
return filtered.length === target.length
|
|
23
|
-
}
|
package/src/flip.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
function flipFn(fn){
|
|
2
|
-
return (...input) => {
|
|
3
|
-
if (input.length === 1){
|
|
4
|
-
return holder => fn(holder, input[ 0 ])
|
|
5
|
-
} else if (input.length === 2){
|
|
6
|
-
return fn(input[ 1 ], input[ 0 ])
|
|
7
|
-
} else if (input.length === 3){
|
|
8
|
-
return fn(
|
|
9
|
-
input[ 1 ], input[ 0 ], input[ 2 ]
|
|
10
|
-
)
|
|
11
|
-
} else if (input.length === 4){
|
|
12
|
-
return fn(
|
|
13
|
-
input[ 1 ], input[ 0 ], input[ 2 ], input[ 3 ]
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
throw new Error('R.flip doesn\'t work with arity > 4')
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export function flip(fn){
|
|
22
|
-
return flipFn(fn)
|
|
23
|
-
}
|
package/src/forEach.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { isArray } from './_internals/isArray.js'
|
|
2
|
-
import { forEachObjIndexedFn } from './forEachObjIndexed.js'
|
|
3
|
-
|
|
4
|
-
export function forEach(fn, iterable){
|
|
5
|
-
if (arguments.length === 1) return _list => forEach(fn, _list)
|
|
6
|
-
if (iterable === undefined) return
|
|
7
|
-
|
|
8
|
-
if (isArray(iterable)){
|
|
9
|
-
let index = 0
|
|
10
|
-
const len = iterable.length
|
|
11
|
-
|
|
12
|
-
while (index < len){
|
|
13
|
-
fn(iterable[ index ])
|
|
14
|
-
index++
|
|
15
|
-
}
|
|
16
|
-
} else return forEachObjIndexedFn(fn, iterable)
|
|
17
|
-
|
|
18
|
-
return iterable
|
|
19
|
-
}
|
package/src/forEachObjIndexed.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { keys } from './_internals/keys.js'
|
|
2
|
-
|
|
3
|
-
export function forEachObjIndexedFn(fn, obj){
|
|
4
|
-
let index = 0
|
|
5
|
-
const listKeys = keys(obj)
|
|
6
|
-
const len = listKeys.length
|
|
7
|
-
|
|
8
|
-
while (index < len){
|
|
9
|
-
const key = listKeys[ index ]
|
|
10
|
-
fn(
|
|
11
|
-
obj[ key ], key, obj
|
|
12
|
-
)
|
|
13
|
-
index++
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return obj
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function forEachObjIndexed(fn, list){
|
|
20
|
-
if (arguments.length === 1) return _list => forEachObjIndexed(fn, _list)
|
|
21
|
-
if (list === undefined) return
|
|
22
|
-
|
|
23
|
-
return forEachObjIndexedFn(fn, list)
|
|
24
|
-
}
|
package/src/fromPairs.js
DELETED
package/src/groupWith.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { cloneList } from './_internals/cloneList.js'
|
|
2
|
-
import { isArray } from './_internals/isArray.js'
|
|
3
|
-
|
|
4
|
-
export function groupWith(compareFn, list){
|
|
5
|
-
if (!isArray(list)) throw new TypeError('list.reduce is not a function')
|
|
6
|
-
|
|
7
|
-
const clone = cloneList(list)
|
|
8
|
-
|
|
9
|
-
if (list.length === 1) return [ clone ]
|
|
10
|
-
|
|
11
|
-
const toReturn = []
|
|
12
|
-
let holder = []
|
|
13
|
-
|
|
14
|
-
clone.reduce((
|
|
15
|
-
prev, current, i
|
|
16
|
-
) => {
|
|
17
|
-
if (i === 0) return current
|
|
18
|
-
|
|
19
|
-
const okCompare = compareFn(prev, current)
|
|
20
|
-
const holderIsEmpty = holder.length === 0
|
|
21
|
-
const lastCall = i === list.length - 1
|
|
22
|
-
|
|
23
|
-
if (okCompare){
|
|
24
|
-
if (holderIsEmpty) holder.push(prev)
|
|
25
|
-
holder.push(current)
|
|
26
|
-
if (lastCall) toReturn.push(holder)
|
|
27
|
-
|
|
28
|
-
return current
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (holderIsEmpty){
|
|
32
|
-
toReturn.push([ prev ])
|
|
33
|
-
if (lastCall) toReturn.push([ current ])
|
|
34
|
-
|
|
35
|
-
return current
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
toReturn.push(holder)
|
|
39
|
-
if (lastCall) toReturn.push([ current ])
|
|
40
|
-
holder = []
|
|
41
|
-
|
|
42
|
-
return current
|
|
43
|
-
}, undefined)
|
|
44
|
-
|
|
45
|
-
return toReturn
|
|
46
|
-
}
|
package/src/gt.js
DELETED
package/src/gte.js
DELETED
package/src/has.js
DELETED
package/src/hasIn.js
DELETED
package/src/hasPath.js
DELETED
package/src/identical.js
DELETED
package/src/identity.js
DELETED
package/src/ifElse.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { curry } from './curry.js'
|
|
2
|
-
|
|
3
|
-
function ifElseFn(
|
|
4
|
-
condition, onTrue, onFalse
|
|
5
|
-
){
|
|
6
|
-
return (...input) => {
|
|
7
|
-
const conditionResult =
|
|
8
|
-
typeof condition === 'boolean' ? condition : condition(...input)
|
|
9
|
-
if (Boolean(conditionResult) ){
|
|
10
|
-
return onTrue(...input)
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
return onFalse(...input)
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const ifElse = curry(ifElseFn)
|
package/src/inc.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const inc = x => x + 1
|
package/src/indexBy.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { path } from './path.js'
|
|
2
|
-
|
|
3
|
-
function indexByPath(pathInput, list){
|
|
4
|
-
const toReturn = {}
|
|
5
|
-
for (let i = 0; i < list.length; i++){
|
|
6
|
-
const item = list[ i ]
|
|
7
|
-
toReturn[ path(pathInput, item) ] = item
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
return toReturn
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export function indexBy(condition, list){
|
|
14
|
-
if (arguments.length === 1){
|
|
15
|
-
return _list => indexBy(condition, _list)
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
if (typeof condition === 'string'){
|
|
19
|
-
return indexByPath(condition, list)
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const toReturn = {}
|
|
23
|
-
for (let i = 0; i < list.length; i++){
|
|
24
|
-
const item = list[ i ]
|
|
25
|
-
toReturn[ condition(item) ] = item
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return toReturn
|
|
29
|
-
}
|
package/src/insert.js
DELETED
package/src/insertAll.js
DELETED
package/src/is.js
DELETED
package/src/isEmpty.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type } from './type.js'
|
|
2
|
-
|
|
3
|
-
export function isEmpty(input){
|
|
4
|
-
const inputType = type(input)
|
|
5
|
-
if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))
|
|
6
|
-
return false
|
|
7
|
-
if (!input) return true
|
|
8
|
-
|
|
9
|
-
if (inputType === 'Object'){
|
|
10
|
-
return Object.keys(input).length === 0
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
if (inputType === 'Array'){
|
|
14
|
-
return input.length === 0
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return false
|
|
18
|
-
}
|
package/src/isNil.js
DELETED
package/src/isNotEmpty.js
DELETED
package/src/isNotNil.js
DELETED
package/src/isPromise.js
DELETED
package/src/juxt.js
DELETED
package/src/keys.js
DELETED
package/src/length.js
DELETED
package/src/lens.js
DELETED
package/src/lensIndex.js
DELETED
package/src/lensPath.js
DELETED
package/src/lensProp.js
DELETED
package/src/lt.js
DELETED
package/src/lte.js
DELETED
package/src/mathMod.js
DELETED
package/src/max.js
DELETED
package/src/maybe.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type } from './type.js'
|
|
2
|
-
|
|
3
|
-
export function maybe(
|
|
4
|
-
ifRule, whenIf, whenElse
|
|
5
|
-
){
|
|
6
|
-
const whenIfInput =
|
|
7
|
-
ifRule && type(whenIf) === 'Function' ? whenIf() : whenIf
|
|
8
|
-
|
|
9
|
-
const whenElseInput =
|
|
10
|
-
!ifRule && type(whenElse) === 'Function' ? whenElse() : whenElse
|
|
11
|
-
|
|
12
|
-
return ifRule ? whenIfInput : whenElseInput
|
|
13
|
-
}
|
package/src/mean.js
DELETED
package/src/median.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { mean } from './mean.js'
|
|
2
|
-
|
|
3
|
-
export function median(list){
|
|
4
|
-
const len = list.length
|
|
5
|
-
if (len === 0) return NaN
|
|
6
|
-
const width = 2 - len % 2
|
|
7
|
-
const idx = (len - width) / 2
|
|
8
|
-
|
|
9
|
-
return mean(Array.prototype.slice
|
|
10
|
-
.call(list, 0)
|
|
11
|
-
.sort((a, b) => {
|
|
12
|
-
if (a === b) return 0
|
|
13
|
-
|
|
14
|
-
return a < b ? -1 : 1
|
|
15
|
-
})
|
|
16
|
-
.slice(idx, idx + width))
|
|
17
|
-
}
|
package/src/mergeAll.js
DELETED
package/src/mergeDeepLeft.js
DELETED
package/src/mergeDeepRight.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { clone } from './clone.js'
|
|
2
|
-
import { type } from './type.js'
|
|
3
|
-
|
|
4
|
-
export function mergeDeepRight(target, source){
|
|
5
|
-
if (arguments.length === 1){
|
|
6
|
-
return sourceHolder => mergeDeepRight(target, sourceHolder)
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
const willReturn = clone(target)
|
|
10
|
-
|
|
11
|
-
Object.keys(source).forEach(key => {
|
|
12
|
-
if (type(source[ key ]) === 'Object'){
|
|
13
|
-
if (type(target[ key ]) === 'Object'){
|
|
14
|
-
willReturn[ key ] = mergeDeepRight(target[ key ], source[ key ])
|
|
15
|
-
} else {
|
|
16
|
-
willReturn[ key ] = source[ key ]
|
|
17
|
-
}
|
|
18
|
-
} else {
|
|
19
|
-
willReturn[ key ] = source[ key ]
|
|
20
|
-
}
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
return willReturn
|
|
24
|
-
}
|
package/src/mergeLeft.js
DELETED
package/src/mergeRight.js
DELETED
package/src/mergeWith.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { curry } from './curry.js'
|
|
2
|
-
|
|
3
|
-
export function mergeWithFn(
|
|
4
|
-
mergeFn, aInput, bInput
|
|
5
|
-
){
|
|
6
|
-
const a = aInput ?? {}
|
|
7
|
-
const b = bInput ?? {}
|
|
8
|
-
const willReturn = {}
|
|
9
|
-
|
|
10
|
-
Object.keys(a).forEach(key => {
|
|
11
|
-
if (b[ key ] === undefined) willReturn[ key ] = a[ key ]
|
|
12
|
-
else willReturn[ key ] = mergeFn(a[ key ], b[ key ])
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
Object.keys(b).forEach(key => {
|
|
16
|
-
if (willReturn[ key ] !== undefined) return
|
|
17
|
-
|
|
18
|
-
if (a[ key ] === undefined) willReturn[ key ] = b[ key ]
|
|
19
|
-
else willReturn[ key ] = mergeFn(a[ key ], b[ key ])
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
return willReturn
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export const mergeWith = curry(mergeWithFn)
|
package/src/min.js
DELETED
package/src/modify.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { isArray } from './_internals/isArray.js'
|
|
2
|
-
import { isIterable } from './_internals/isIterable.js'
|
|
3
|
-
import { curry } from './curry.js'
|
|
4
|
-
import { updateFn } from './update.js'
|
|
5
|
-
|
|
6
|
-
function modifyFn(
|
|
7
|
-
property, fn, iterable
|
|
8
|
-
){
|
|
9
|
-
if (!isIterable(iterable)) return iterable
|
|
10
|
-
if (iterable[ property ] === undefined) return iterable
|
|
11
|
-
if (isArray(iterable)){
|
|
12
|
-
return updateFn(
|
|
13
|
-
property, fn(iterable[ property ]), iterable
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
return {
|
|
18
|
-
...iterable,
|
|
19
|
-
[ property ] : fn(iterable[ property ]),
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export const modify = curry(modifyFn)
|
package/src/modulo.js
DELETED
package/src/move.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { cloneList } from './_internals/cloneList.js'
|
|
2
|
-
import { curry } from './curry.js'
|
|
3
|
-
|
|
4
|
-
function moveFn(
|
|
5
|
-
fromIndex, toIndex, list
|
|
6
|
-
){
|
|
7
|
-
if (fromIndex < 0 || toIndex < 0){
|
|
8
|
-
throw new Error('Rambda.move does not support negative indexes')
|
|
9
|
-
}
|
|
10
|
-
if (fromIndex > list.length - 1 || toIndex > list.length - 1) return list
|
|
11
|
-
|
|
12
|
-
const clone = cloneList(list)
|
|
13
|
-
clone[ fromIndex ] = list[ toIndex ]
|
|
14
|
-
clone[ toIndex ] = list[ fromIndex ]
|
|
15
|
-
|
|
16
|
-
return clone
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export const move = curry(moveFn)
|
package/src/multiply.js
DELETED
package/src/negate.js
DELETED
package/src/not.js
DELETED
package/src/nth.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export function nth(index, input){
|
|
2
|
-
if (arguments.length === 1) return _input => nth(index, _input)
|
|
3
|
-
|
|
4
|
-
const idx = index < 0 ? input.length + index : index
|
|
5
|
-
|
|
6
|
-
return Object.prototype.toString.call(input) === '[object String]' ?
|
|
7
|
-
input.charAt(idx) :
|
|
8
|
-
input[ idx ]
|
|
9
|
-
}
|
package/src/of.js
DELETED
package/src/on.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export function on(
|
|
2
|
-
binaryFn, unaryFn, a, b
|
|
3
|
-
){
|
|
4
|
-
if (arguments.length === 3){
|
|
5
|
-
return _b => on(
|
|
6
|
-
binaryFn, unaryFn, a, _b
|
|
7
|
-
)
|
|
8
|
-
}
|
|
9
|
-
if (arguments.length === 2){
|
|
10
|
-
return (_a, _b) => on(
|
|
11
|
-
binaryFn, unaryFn, _a, _b
|
|
12
|
-
)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return binaryFn(unaryFn(a), unaryFn(b))
|
|
16
|
-
}
|