1 | 'use strict';
|
2 |
|
3 | var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
|
4 |
|
5 | var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
|
6 |
|
7 | var _element = require('vdux/element');
|
8 |
|
9 | var _element2 = _interopRequireDefault(_element);
|
10 |
|
11 | var _reducer = require('./reducer');
|
12 |
|
13 | var _reducer2 = _interopRequireDefault(_reducer);
|
14 |
|
15 | var _dom = require('vdux/dom');
|
16 |
|
17 | var _dom2 = _interopRequireDefault(_dom);
|
18 |
|
19 | var _app = require('./app');
|
20 |
|
21 | var _app2 = _interopRequireDefault(_app);
|
22 |
|
23 | var _reduce = require('@f/reduce');
|
24 |
|
25 | var _reduce2 = _interopRequireDefault(_reduce);
|
26 |
|
27 | var _domready = require('domready');
|
28 |
|
29 | var _domready2 = _interopRequireDefault(_domready);
|
30 |
|
31 | var _reduxFlo = require('redux-flo');
|
32 |
|
33 | var _reduxFlo2 = _interopRequireDefault(_reduxFlo);
|
34 |
|
35 | var _handleSubmit = require('./middleware/handleSubmit');
|
36 |
|
37 | var _handleSubmit2 = _interopRequireDefault(_handleSubmit);
|
38 |
|
39 | var _actions = require('./actions');
|
40 |
|
41 | var _isArray = require('@f/is-array');
|
42 |
|
43 | var _isArray2 = _interopRequireDefault(_isArray);
|
44 |
|
45 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
46 |
|
47 | function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
|
48 |
|
49 | var defaultView = function defaultView(output) {
|
50 | if ((typeof output === 'undefined' ? 'undefined' : _typeof(output)) !== 'object' || output.props) {
|
51 | return output;
|
52 | } else if ((0, _isArray2.default)(output)) {
|
53 | output.join('\n');
|
54 | } else {
|
55 | return (0, _reduce2.default)(function (arr, item, key) {
|
56 | arr.push(key + ': ' + item);
|
57 | return arr;
|
58 | }, [], output).join('\n');
|
59 | }
|
60 | };
|
61 |
|
62 | var defaultOpts = {
|
63 | view: defaultView,
|
64 | initialState: {},
|
65 | middleware: [],
|
66 | welcome: '',
|
67 | title: ''
|
68 | };
|
69 |
|
70 | var cycleShell = function cycleShell(userUpdate) {
|
71 | var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
72 |
|
73 | var _defaultOpts$opts = _extends({}, defaultOpts, opts);
|
74 |
|
75 | var view = _defaultOpts$opts.view;
|
76 | var middleware = _defaultOpts$opts.middleware;
|
77 | var welcome = _defaultOpts$opts.welcome;
|
78 | var title = _defaultOpts$opts.title;
|
79 |
|
80 |
|
81 | var initState = { welcome: welcome, log: {}, user: { title: title } };
|
82 |
|
83 | var _vdux = (0, _dom2.default)({
|
84 | reducer: _reducer2.default,
|
85 | initialState: initState,
|
86 | middleware: [(0, _reduxFlo2.default)(), (0, _handleSubmit2.default)(userUpdate)].concat(_toConsumableArray(middleware))
|
87 | });
|
88 |
|
89 | var subscribe = _vdux.subscribe;
|
90 | var render = _vdux.render;
|
91 |
|
92 | (0, _domready2.default)(function () {
|
93 | subscribe(function (state) {
|
94 | render((0, _element2.default)(_app2.default, { log: state.log, view: view, user: state.user, welcome: state.welcome }));
|
95 | });
|
96 | });
|
97 | return function (fn) {
|
98 | _handleSubmit.countEmitter.on('count', fn);
|
99 | };
|
100 | };
|
101 |
|
102 | module.exports = cycleShell;
|
103 | cycleShell.out = _actions.out; |
\ | No newline at end of file |