swc/crates/swc_bundler/tests/.cache/deno/2eb2a9bbb4a98bf9058a8541d9e5776223322ead.ts
2021-11-09 20:42:49 +09:00

56 lines
2.1 KiB
TypeScript

// Loaded from https://deno.land/x/ramda@v0.27.2/source/into.js
import _clone from './internal/_clone.js';
import _curry3 from './internal/_curry3.js';
import _isTransformer from './internal/_isTransformer.js';
import _reduce from './internal/_reduce.js';
import _stepCat from './internal/_stepCat.js';
/**
* Transforms the items of the list with the transducer and appends the
* transformed items to the accumulator using an appropriate iterator function
* based on the accumulator type.
*
* The accumulator can be an array, string, object or a transformer. Iterated
* items will be appended to arrays and concatenated to strings. Objects will
* be merged directly or 2-item arrays will be merged as key, value pairs.
*
* The accumulator can also be a transformer object that provides a 2-arity
* reducing iterator function, step, 0-arity initial value function, init, and
* 1-arity result extraction function result. The step function is used as the
* iterator function in reduce. The result function is used to convert the
* final accumulator into the return type and in most cases is R.identity. The
* init function is used to provide the initial accumulator.
*
* The iteration is performed with [`R.reduce`](#reduce) after initializing the
* transducer.
*
* @func
* @memberOf R
* @since v0.12.0
* @category List
* @sig a -> (b -> b) -> [c] -> a
* @param {*} acc The initial accumulator value.
* @param {Function} xf The transducer function. Receives a transformer and returns a transformer.
* @param {Array} list The list to iterate over.
* @return {*} The final, accumulated value.
* @see R.transduce
* @example
*
* const numbers = [1, 2, 3, 4];
* const transducer = R.compose(R.map(R.add(1)), R.take(2));
*
* R.into([], transducer, numbers); //=> [2, 3]
*
* const intoArray = R.into([]);
* intoArray(transducer, numbers); //=> [2, 3]
*/
var into = _curry3(function into(acc, xf, list) {
return _isTransformer(acc) ?
_reduce(xf(acc), acc['@@transducer/init'](), list) :
_reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);
});
export default into;