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.
- package/CHANGELOG.md +12 -0
- package/README.md +1 -1
- package/dist/RA.node.js +10440 -452
- package/dist/RA.node.min.js +1 -1
- package/dist/RA.web.js +10440 -452
- package/dist/RA.web.min.js +1 -1
- package/dist/RA.web.standalone.js +18646 -447
- package/dist/RA.web.standalone.min.js +1 -1
- package/dist/package.json +1 -0
- package/es/async.js +4 -4
- package/es/copyKeys.js +1 -1
- package/es/dispatch.js +5 -5
- package/es/fantasy-land/Identity.js +3 -3
- package/es/fantasy-land/traits.js +1 -1
- package/es/flattenDepth.js +5 -5
- package/es/internal/ponyfills/Array.from.js +5 -5
- package/es/internal/ponyfills/Promise.allSettled.js +5 -5
- package/es/internal/ponyfills/Promise.any.js +15 -15
- package/es/lastP.js +5 -5
- package/es/reduceP.js +4 -4
- package/es/reduceRightP.js +4 -4
- package/es/renameKey.js +1 -1
- package/es/sortByProps.js +5 -5
- package/lib/allEqual.js +1 -1
- package/lib/allIdentical.js +1 -1
- package/lib/allSettledP.js +1 -1
- package/lib/allUnique.js +1 -1
- package/lib/anyP.js +1 -1
- package/lib/argsPass.js +1 -1
- package/lib/async.js +5 -5
- package/lib/cata.js +1 -1
- package/lib/compact.js +1 -1
- package/lib/concatAll.js +1 -1
- package/lib/copyKeys.js +2 -2
- package/lib/curryRight.js +1 -1
- package/lib/delayP.js +1 -1
- package/lib/dispatch.js +6 -6
- package/lib/ensureArray.js +1 -1
- package/lib/escapeRegExp.js +1 -1
- package/lib/fantasy-land/Identity.js +3 -3
- package/lib/fantasy-land/traits.js +2 -2
- package/lib/flattenDepth.js +6 -6
- package/lib/flattenProp.js +1 -1
- package/lib/fnull.js +1 -1
- package/lib/index.js +1 -1
- package/lib/internal/ap.js +1 -1
- package/lib/internal/isCoercible.js +1 -1
- package/lib/internal/makeFlat.js +1 -1
- package/lib/internal/ponyfills/Array.from.js +6 -6
- package/lib/internal/ponyfills/Math.trunc.js +1 -1
- package/lib/internal/ponyfills/Number.isFinite.js +1 -1
- package/lib/internal/ponyfills/Number.isInteger.js +1 -1
- package/lib/internal/ponyfills/Number.isNaN.js +1 -1
- package/lib/internal/ponyfills/Number.isSafeInteger.js +1 -1
- package/lib/internal/ponyfills/Promise.allSettled.js +6 -6
- package/lib/internal/ponyfills/Promise.any.js +16 -16
- package/lib/internal/ponyfills/String.padEnd.js +1 -1
- package/lib/internal/ponyfills/String.padStart.js +1 -1
- package/lib/internal/ponyfills/String.repeat.js +1 -1
- package/lib/internal/ponyfills/String.replaceAll.js +1 -1
- package/lib/invoke.js +1 -1
- package/lib/invokeArgs.js +1 -1
- package/lib/isArray.js +1 -1
- package/lib/isArrayLike.js +1 -1
- package/lib/isBlank.js +1 -1
- package/lib/isEmptyArray.js +1 -1
- package/lib/isEven.js +1 -1
- package/lib/isFalsy.js +1 -1
- package/lib/isFinite.js +1 -1
- package/lib/isFloat.js +1 -1
- package/lib/isFunction.js +1 -1
- package/lib/isIndexed.js +1 -1
- package/lib/isInteger.js +1 -1
- package/lib/isInteger32.js +1 -1
- package/lib/isIterable.js +1 -1
- package/lib/isNaN.js +1 -1
- package/lib/isNaturalNumber.js +1 -1
- package/lib/isNegative.js +1 -1
- package/lib/isNonEmptyArray.js +1 -1
- package/lib/isNonEmptyString.js +1 -1
- package/lib/isNonNegative.js +1 -1
- package/lib/isNonPositive.js +1 -1
- package/lib/isNotArray.js +1 -1
- package/lib/isNotArrayLike.js +1 -1
- package/lib/isNotAsyncFunction.js +1 -1
- package/lib/isNotBoolean.js +1 -1
- package/lib/isNotDate.js +1 -1
- package/lib/isNotFinite.js +1 -1
- package/lib/isNotFloat.js +1 -1
- package/lib/isNotFunction.js +1 -1
- package/lib/isNotGeneratorFunction.js +1 -1
- package/lib/isNotInteger.js +1 -1
- package/lib/isNotMap.js +1 -1
- package/lib/isNotNaN.js +1 -1
- package/lib/isNotNilOrEmpty.js +1 -1
- package/lib/isNotNull.js +1 -1
- package/lib/isNotNumber.js +1 -1
- package/lib/isNotObj.js +1 -1
- package/lib/isNotObjLike.js +1 -1
- package/lib/isNotPair.js +1 -1
- package/lib/isNotPlainObj.js +1 -1
- package/lib/isNotPrimitive.js +1 -1
- package/lib/isNotRegExp.js +1 -1
- package/lib/isNotSet.js +1 -1
- package/lib/isNotString.js +1 -1
- package/lib/isNotUndefined.js +1 -1
- package/lib/isNotValidDate.js +1 -1
- package/lib/isNotValidNumber.js +1 -1
- package/lib/isObj.js +1 -1
- package/lib/isObjLike.js +1 -1
- package/lib/isOdd.js +1 -1
- package/lib/isPair.js +1 -1
- package/lib/isPlainObj.js +1 -1
- package/lib/isPositive.js +1 -1
- package/lib/isPrimitive.js +1 -1
- package/lib/isPromise.js +1 -1
- package/lib/isPrototypeOf.js +1 -1
- package/lib/isSafeInteger.js +1 -1
- package/lib/isSentinelValue.js +1 -1
- package/lib/isSparseArray.js +1 -1
- package/lib/isThenable.js +1 -1
- package/lib/isUinteger32.js +1 -1
- package/lib/isUndefined.js +1 -1
- package/lib/isValidDate.js +1 -1
- package/lib/isValidNumber.js +1 -1
- package/lib/lastP.js +6 -6
- package/lib/lengthEq.js +1 -1
- package/lib/lengthGt.js +1 -1
- package/lib/lengthGte.js +1 -1
- package/lib/lengthLt.js +1 -1
- package/lib/lengthLte.js +1 -1
- package/lib/lengthNotEq.js +1 -1
- package/lib/lensNotEq.js +1 -1
- package/lib/lensNotSatisfy.js +1 -1
- package/lib/lensSatisfies.js +1 -1
- package/lib/lensTraverse.js +1 -1
- package/lib/liftF.js +1 -1
- package/lib/liftFN.js +1 -1
- package/lib/mergePaths.js +1 -1
- package/lib/mergeProp.js +1 -1
- package/lib/noneP.js +1 -1
- package/lib/noop.js +1 -1
- package/lib/notAllUnique.js +1 -1
- package/lib/padCharsEnd.js +1 -1
- package/lib/padCharsStart.js +1 -1
- package/lib/padEnd.js +1 -1
- package/lib/padStart.js +1 -1
- package/lib/rangeStep.js +1 -1
- package/lib/reduceP.js +5 -5
- package/lib/reduceRightP.js +5 -5
- package/lib/renameKey.js +2 -2
- package/lib/renameKeyWith.js +1 -1
- package/lib/renameKeys.js +1 -1
- package/lib/repeatStr.js +1 -1
- package/lib/replaceAll.js +1 -1
- package/lib/sign.js +1 -1
- package/lib/sortByProp.js +1 -1
- package/lib/sortByProps.js +5 -5
- package/lib/spreadProp.js +1 -1
- package/lib/toArray.js +1 -1
- package/lib/toNumber.js +1 -1
- package/lib/trimCharsEnd.js +1 -1
- package/lib/trimCharsStart.js +1 -1
- package/lib/trimEnd.js +1 -1
- package/lib/trimStart.js +1 -1
- package/lib/trunc.js +1 -1
- package/lib/unzipObjWith.js +1 -1
- package/package.json +33 -30
- package/types/index.d.ts +0 -5
- package/babel.config.cjs +0 -56
- package/src/Y.js +0 -32
- package/src/allEqual.js +0 -28
- package/src/allEqualTo.js +0 -25
- package/src/allIdentical.js +0 -26
- package/src/allIdenticalTo.js +0 -25
- package/src/allP.js +0 -27
- package/src/allSettledP.js +0 -34
- package/src/allUnique.js +0 -25
- package/src/anyP.js +0 -33
- package/src/appendFlipped.js +0 -24
- package/src/argsPass.js +0 -40
- package/src/async.js +0 -60
- package/src/cata.js +0 -86
- package/src/catchP.js +0 -25
- package/src/ceil.js +0 -28
- package/src/compact.js +0 -23
- package/src/concatAll.js +0 -35
- package/src/concatRight.js +0 -30
- package/src/copyKeys.js +0 -31
- package/src/curryRight.js +0 -26
- package/src/curryRightN.js +0 -29
- package/src/defaultWhen.js +0 -26
- package/src/delayP.js +0 -45
- package/src/dispatch.js +0 -74
- package/src/divideNum.js +0 -20
- package/src/dropArgs.js +0 -23
- package/src/ensureArray.js +0 -24
- package/src/escapeRegExp.js +0 -22
- package/src/fantasy-land/Identity.js +0 -270
- package/src/fantasy-land/mapping.js +0 -20
- package/src/fantasy-land/traits.js +0 -57
- package/src/fantasy-land/util.js +0 -23
- package/src/filterIndexed.js +0 -28
- package/src/findOr.js +0 -30
- package/src/flattenDepth.js +0 -39
- package/src/flattenPath.js +0 -28
- package/src/flattenProp.js +0 -28
- package/src/floor.js +0 -27
- package/src/fnull.js +0 -38
- package/src/inRange.js +0 -34
- package/src/included.js +0 -28
- package/src/index.js +0 -241
- package/src/internal/ap.js +0 -30
- package/src/internal/compareLength.js +0 -7
- package/src/internal/isCoercible.js +0 -12
- package/src/internal/isOfTypeObject.js +0 -3
- package/src/internal/makeFlat.js +0 -42
- package/src/internal/ponyfills/Array.from.js +0 -34
- package/src/internal/ponyfills/Math.sign.js +0 -3
- package/src/internal/ponyfills/Math.trunc.js +0 -14
- package/src/internal/ponyfills/Number.MAX_SAFE_INTEGER.js +0 -3
- package/src/internal/ponyfills/Number.MIN_SAFE_INTEGER.js +0 -3
- package/src/internal/ponyfills/Number.isFinite.js +0 -8
- package/src/internal/ponyfills/Number.isInteger.js +0 -10
- package/src/internal/ponyfills/Number.isNaN.js +0 -8
- package/src/internal/ponyfills/Number.isSafeInteger.js +0 -11
- package/src/internal/ponyfills/Promise.allSettled.js +0 -18
- package/src/internal/ponyfills/Promise.any.js +0 -29
- package/src/internal/ponyfills/String.padEnd.js +0 -25
- package/src/internal/ponyfills/String.padStart.js +0 -27
- package/src/internal/ponyfills/String.repeat.js +0 -49
- package/src/internal/ponyfills/String.replaceAll.js +0 -44
- package/src/internal/ponyfills/String.trimEnd.js +0 -5
- package/src/internal/ponyfills/String.trimStart.js +0 -5
- package/src/invoke.js +0 -22
- package/src/invokeArgs.js +0 -36
- package/src/isArray.js +0 -27
- package/src/isArrayLike.js +0 -79
- package/src/isAsyncFunction.js +0 -23
- package/src/isBigInt.js +0 -24
- package/src/isBlank.js +0 -33
- package/src/isBoolean.js +0 -22
- package/src/isDate.js +0 -21
- package/src/isEmptyArray.js +0 -28
- package/src/isEmptyString.js +0 -28
- package/src/isError.js +0 -21
- package/src/isEven.js +0 -31
- package/src/isFalse.js +0 -31
- package/src/isFalsy.js +0 -28
- package/src/isFinite.js +0 -37
- package/src/isFloat.js +0 -36
- package/src/isFunction.js +0 -32
- package/src/isGeneratorFunction.js +0 -26
- package/src/isIndexed.js +0 -24
- package/src/isInteger.js +0 -40
- package/src/isInteger32.js +0 -28
- package/src/isIterable.js +0 -37
- package/src/isMap.js +0 -25
- package/src/isNaN.js +0 -45
- package/src/isNaturalNumber.js +0 -28
- package/src/isNegative.js +0 -27
- package/src/isNegativeZero.js +0 -23
- package/src/isNilOrEmpty.js +0 -26
- package/src/isNonEmptyArray.js +0 -28
- package/src/isNonEmptyString.js +0 -31
- package/src/isNonNegative.js +0 -30
- package/src/isNonPositive.js +0 -30
- package/src/isNotArray.js +0 -24
- package/src/isNotArrayLike.js +0 -26
- package/src/isNotAsyncFunction.js +0 -27
- package/src/isNotBoolean.js +0 -24
- package/src/isNotDate.js +0 -23
- package/src/isNotFinite.js +0 -31
- package/src/isNotFloat.js +0 -35
- package/src/isNotFunction.js +0 -29
- package/src/isNotGeneratorFunction.js +0 -27
- package/src/isNotInteger.js +0 -36
- package/src/isNotMap.js +0 -27
- package/src/isNotNaN.js +0 -37
- package/src/isNotNil.js +0 -23
- package/src/isNotNilOrEmpty.js +0 -28
- package/src/isNotNull.js +0 -24
- package/src/isNotNumber.js +0 -25
- package/src/isNotObj.js +0 -29
- package/src/isNotObjLike.js +0 -29
- package/src/isNotPair.js +0 -27
- package/src/isNotPlainObj.js +0 -35
- package/src/isNotPrimitive.js +0 -26
- package/src/isNotRegExp.js +0 -24
- package/src/isNotSet.js +0 -26
- package/src/isNotString.js +0 -23
- package/src/isNotUndefined.js +0 -24
- package/src/isNotValidDate.js +0 -24
- package/src/isNotValidNumber.js +0 -27
- package/src/isNull.js +0 -22
- package/src/isNumber.js +0 -24
- package/src/isObj.js +0 -31
- package/src/isObjLike.js +0 -30
- package/src/isOdd.js +0 -29
- package/src/isPair.js +0 -27
- package/src/isPlainObj.js +0 -65
- package/src/isPositive.js +0 -26
- package/src/isPositiveZero.js +0 -23
- package/src/isPrimitive.js +0 -46
- package/src/isPromise.js +0 -32
- package/src/isPrototypeOf.js +0 -36
- package/src/isRegExp.js +0 -22
- package/src/isSafeInteger.js +0 -40
- package/src/isSentinelValue.js +0 -26
- package/src/isSet.js +0 -24
- package/src/isSparseArray.js +0 -43
- package/src/isString.js +0 -21
- package/src/isSymbol.js +0 -29
- package/src/isThenable.js +0 -28
- package/src/isTrue.js +0 -27
- package/src/isTruthy.js +0 -28
- package/src/isUinteger32.js +0 -29
- package/src/isUndefined.js +0 -24
- package/src/isValidDate.js +0 -29
- package/src/isValidNumber.js +0 -28
- package/src/lastP.js +0 -54
- package/src/lengthEq.js +0 -24
- package/src/lengthGt.js +0 -24
- package/src/lengthGte.js +0 -26
- package/src/lengthLt.js +0 -24
- package/src/lengthLte.js +0 -25
- package/src/lengthNotEq.js +0 -24
- package/src/lensEq.js +0 -28
- package/src/lensIso.js +0 -51
- package/src/lensNotEq.js +0 -28
- package/src/lensNotSatisfy.js +0 -30
- package/src/lensSatisfies.js +0 -33
- package/src/lensTraverse.js +0 -56
- package/src/liftF.js +0 -37
- package/src/liftFN.js +0 -45
- package/src/list.js +0 -20
- package/src/mapIndexed.js +0 -27
- package/src/mergePath.js +0 -30
- package/src/mergePaths.js +0 -29
- package/src/mergeProp.js +0 -30
- package/src/mergeProps.js +0 -27
- package/src/move.js +0 -26
- package/src/nand.js +0 -27
- package/src/neither.js +0 -38
- package/src/noneP.js +0 -35
- package/src/nonePass.js +0 -32
- package/src/noop.js +0 -21
- package/src/nor.js +0 -28
- package/src/notAllPass.js +0 -32
- package/src/notAllUnique.js +0 -25
- package/src/notBoth.js +0 -38
- package/src/notEqual.js +0 -31
- package/src/omitBy.js +0 -25
- package/src/omitIndexes.js +0 -27
- package/src/overlaps.js +0 -30
- package/src/padCharsEnd.js +0 -37
- package/src/padCharsStart.js +0 -35
- package/src/padEnd.js +0 -25
- package/src/padStart.js +0 -23
- package/src/pathNotEq.js +0 -31
- package/src/pathOrLazy.js +0 -30
- package/src/paths.js +0 -26
- package/src/pickIndexes.js +0 -30
- package/src/propNotEq.js +0 -30
- package/src/rangeStep.js +0 -37
- package/src/reduceIndexed.js +0 -31
- package/src/reduceP.js +0 -96
- package/src/reduceRightP.js +0 -101
- package/src/rejectP.js +0 -24
- package/src/renameKey.js +0 -33
- package/src/renameKeyWith.js +0 -30
- package/src/renameKeys.js +0 -40
- package/src/renameKeysWith.js +0 -27
- package/src/repeatStr.js +0 -30
- package/src/replaceAll.js +0 -35
- package/src/resolveP.js +0 -28
- package/src/round.js +0 -26
- package/src/seq.js +0 -38
- package/src/sign.js +0 -33
- package/src/skipTake.js +0 -33
- package/src/sliceFrom.js +0 -23
- package/src/sliceTo.js +0 -23
- package/src/sortByPaths.js +0 -55
- package/src/sortByProp.js +0 -45
- package/src/sortByProps.js +0 -31
- package/src/spreadPath.js +0 -26
- package/src/spreadProp.js +0 -25
- package/src/stubArray.js +0 -18
- package/src/stubNull.js +0 -19
- package/src/stubObj.js +0 -19
- package/src/stubString.js +0 -19
- package/src/stubUndefined.js +0 -19
- package/src/subtractNum.js +0 -20
- package/src/thenCatchP.js +0 -27
- package/src/toArray.js +0 -32
- package/src/toInteger32.js +0 -22
- package/src/toNumber.js +0 -24
- package/src/toUinteger32.js +0 -26
- package/src/trimCharsEnd.js +0 -25
- package/src/trimCharsStart.js +0 -25
- package/src/trimEnd.js +0 -30
- package/src/trimStart.js +0 -29
- package/src/trunc.js +0 -33
- package/src/unzipObjWith.js +0 -40
- package/src/viewOr.js +0 -32
- package/src/weave.js +0 -35
- package/src/weaveLazy.js +0 -37
- package/src/zipObjWith.js +0 -27
package/src/pickIndexes.js
DELETED
|
@@ -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;
|
package/src/reduceIndexed.js
DELETED
|
@@ -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;
|
package/src/reduceRightP.js
DELETED
|
@@ -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;
|
package/src/renameKeyWith.js
DELETED
|
@@ -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;
|
package/src/renameKeysWith.js
DELETED
|
@@ -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;
|