source: node_modules/ramda/src/internal/_stepCat.js

main
Last change on this file was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.2 KB
Line 
1var _objectAssign =
2/*#__PURE__*/
3require("./_objectAssign.js");
4
5var _identity =
6/*#__PURE__*/
7require("./_identity.js");
8
9var _isArrayLike =
10/*#__PURE__*/
11require("./_isArrayLike.js");
12
13var _isTransformer =
14/*#__PURE__*/
15require("./_isTransformer.js");
16
17var objOf =
18/*#__PURE__*/
19require("../objOf.js");
20
21var _stepCatArray = {
22 '@@transducer/init': Array,
23 '@@transducer/step': function (xs, x) {
24 xs.push(x);
25 return xs;
26 },
27 '@@transducer/result': _identity
28};
29var _stepCatString = {
30 '@@transducer/init': String,
31 '@@transducer/step': function (a, b) {
32 return a + b;
33 },
34 '@@transducer/result': _identity
35};
36var _stepCatObject = {
37 '@@transducer/init': Object,
38 '@@transducer/step': function (result, input) {
39 return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);
40 },
41 '@@transducer/result': _identity
42};
43
44function _stepCat(obj) {
45 if (_isTransformer(obj)) {
46 return obj;
47 }
48
49 if (_isArrayLike(obj)) {
50 return _stepCatArray;
51 }
52
53 if (typeof obj === 'string') {
54 return _stepCatString;
55 }
56
57 if (typeof obj === 'object') {
58 return _stepCatObject;
59 }
60
61 throw new Error('Cannot create transformer for ' + obj);
62}
63
64module.exports = _stepCat;
Note: See TracBrowser for help on using the repository browser.