12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- import _objectAssign from "./_objectAssign.js";
- import _identity from "./_identity.js";
- import _isArrayLike from "./_isArrayLike.js";
- import _isTransformer from "./_isTransformer.js";
- import objOf from "../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
- };
- export default 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);
- }
|