| var _objectAssign = /*#__PURE__*/require('./_objectAssign'); |
| |
| var _identity = /*#__PURE__*/require('./_identity'); |
| |
| var _isArrayLike = /*#__PURE__*/require('./_isArrayLike'); |
| |
| var _isTransformer = /*#__PURE__*/require('./_isTransformer'); |
| |
| var objOf = /*#__PURE__*/require('../objOf'); |
| |
| var _stepCatArray = { |
| '@@transducer/init': Array, |
| '@@transducer/step': function (xs, x) { |
| xs.push(x); |
| return xs; |
| }, |
| '@@transducer/result': _identity |
| }; |
| var _stepCatString = { |
| '@@transducer/init': String, |
| '@@transducer/step': function (a, b) { |
| return a + b; |
| }, |
| '@@transducer/result': _identity |
| }; |
| var _stepCatObject = { |
| '@@transducer/init': Object, |
| '@@transducer/step': function (result, input) { |
| return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input); |
| }, |
| '@@transducer/result': _identity |
| }; |
| |
| function _stepCat(obj) { |
| if (_isTransformer(obj)) { |
| return obj; |
| } |
| if (_isArrayLike(obj)) { |
| return _stepCatArray; |
| } |
| if (typeof obj === 'string') { |
| return _stepCatString; |
| } |
| if (typeof obj === 'object') { |
| return _stepCatObject; |
| } |
| throw new Error('Cannot create transformer for ' + obj); |
| } |
| module.exports = _stepCat; |