| 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; |