var _objectAssign = /*#__PURE__*/ require("./_objectAssign.js"); var _identity = /*#__PURE__*/ require("./_identity.js"); var _isArrayLike = /*#__PURE__*/ require("./_isArrayLike.js"); var _isTransformer = /*#__PURE__*/ require("./_isTransformer.js"); var objOf = /*#__PURE__*/ require("../objOf.js"); 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;