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 | |
---|
1 | var _objectAssign =
|
---|
2 | /*#__PURE__*/
|
---|
3 | require("./_objectAssign.js");
|
---|
4 |
|
---|
5 | var _identity =
|
---|
6 | /*#__PURE__*/
|
---|
7 | require("./_identity.js");
|
---|
8 |
|
---|
9 | var _isArrayLike =
|
---|
10 | /*#__PURE__*/
|
---|
11 | require("./_isArrayLike.js");
|
---|
12 |
|
---|
13 | var _isTransformer =
|
---|
14 | /*#__PURE__*/
|
---|
15 | require("./_isTransformer.js");
|
---|
16 |
|
---|
17 | var objOf =
|
---|
18 | /*#__PURE__*/
|
---|
19 | require("../objOf.js");
|
---|
20 |
|
---|
21 | var _stepCatArray = {
|
---|
22 | '@@transducer/init': Array,
|
---|
23 | '@@transducer/step': function (xs, x) {
|
---|
24 | xs.push(x);
|
---|
25 | return xs;
|
---|
26 | },
|
---|
27 | '@@transducer/result': _identity
|
---|
28 | };
|
---|
29 | var _stepCatString = {
|
---|
30 | '@@transducer/init': String,
|
---|
31 | '@@transducer/step': function (a, b) {
|
---|
32 | return a + b;
|
---|
33 | },
|
---|
34 | '@@transducer/result': _identity
|
---|
35 | };
|
---|
36 | var _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 |
|
---|
44 | function _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 |
|
---|
64 | module.exports = _stepCat; |
---|
Note:
See
TracBrowser
for help on using the repository browser.